发布时间:2023-11-22
浏览次数:0
一、16个数据库的由来
Redis是一个字典结构的存储服务器。 一个Redis实例提供多个字典来存储数据。 客户端可以指定将数据存储在哪个字典中。这类似于关系数据库实例中可以创建多个数据库(如下图所示),因此每个字典可以理解为一个独立的数据库。
以MySQL实例为例
Redis默认支持16个数据库。 您可以通过调整Redis配置文件redis/redis.conf来修改该值。 设置完成后,重启Redis即可完成配置。
客户端与Redis建立连接后,默认会选择0号数据库,但您可以随时使用命令更改数据库。
# 切库
redis> SELECT 1 # 默认0号db,切换为1号db
OK
redis [1] > GET username # 从1号库中获取 username
(nil)
实际项目中,可以通过Redis配置文件的形式指定数据库,如下图
2.正确理解Redis的“数据库”概念
由于Redis不支持自定义数据库名称,因此每个数据库都以数字命名。 开发者需要自己记录存储的数据与数据库的对应关系。 另外,Redis不支持为每个数据库设置不同的访问密码intellij idea 数据库关系图,因此一个客户端要么可以访问所有数据库,要么所有数据库都没有权限访问。 不过,要正确理解Redis的“数据库”概念,这里必须提到一个命令:
# 清空一个Redis实例中所有数据库中的数据
redis 127.0.0.1:6379> FLUSHALL
该命令可以清除实例下的所有数据库数据,这与我们熟悉的关系数据库不同。 关系数据库往往会使用多个库来存储不同应用的数据,没有办法同时清除实例下的所有库数据。 所以对于Redis来说,这些db更像是,不适合存储来自不同应用程序的数据。 例如,您可以使用0号数据库存储应用程序生产环境的数据,使用1号数据库存储测试环境的数据。 但是,使用0号数据库存储应用程序A的数据和使用1号数据库存储应用程序B的数据是不合适的,是不同的。 应用程序应该使用不同的Redis实例来存储数据。 Redis 非常轻量级。 一个空的Redis实例仅占用1M左右,因此无需担心多个Redis实例占用大量额外内存。
3. 集群是否支持一个实例多个DB?
需要说明的是,以上都是基于单个Redis。 在集群情况下,不支持使用命令切换db,因为Redis集群模式下只有一个db0。 展开一下集群和单机Reids的区别,有兴趣的朋友可以查看相关资料进行更深入的了解,这里就不讨论了。
4. 总结
Redis实例默认创建16个db。 由于不支持独立的数据库命名,所以以dbX命名。 可以通过修改配置文件的值来设置默认的数据库数量。 db的正确理解应该是“命名空间”。 多个应用程序不应该使用同一个Redis不同的库,但一个应用程序应该对应一个Redis实例。 不同环境下可以使用不同的数据库来存储数据。 最后请注意,Redis集群中只有db0intellij idea 数据库关系图,不支持多个db。
END好文章推荐
如有侵权请联系删除!
Copyright © 2023 江苏优软数字科技有限公司 All Rights Reserved.正版sublime text、Codejock、IntelliJ IDEA、sketch、Mestrenova、DNAstar服务提供商
13262879759
微信二维码