签到成功

知道了

CNDBA社区CNDBA社区

Redis 7 支持的 数据库数量 说明

2022-06-12 18:56 2039 0 原创 Redis
作者: dave

1 Redis 数据库说明


Redis服务器将所有数据库都保存在服务器状态redis.h/redisServer结构的db数组中,Redis服务器默认会创建16个数据库。http://www.cndba.cn/dave/article/108062

可以通过redis 的配置文件来修改默认数据库的数量:

[dave@www.cndba.cn ~]# cat /etc/redis.conf |grep databases
# Set the number of databases. The default database is DB 0, you can select
# dbid is a number between 0 and 'databases'-1
databases 16
# Compress string objects using LZF when dump .rdb databases?
# * keyspace - Writing or reading from keys, databases, or their metadata
[dave@www.cndba.cn ~]#

每个Redis客户端都有自己的目标数据库,每当客户端执行数据库读写命令时,目标数据库就会成为这些命令的操作对象。http://www.cndba.cn/dave/article/108062http://www.cndba.cn/dave/article/108062

默认情况下,Redis客户端的目标数据库为0号数据库,但客户端可以通过执行SELECT命令来切换目标数据库。http://www.cndba.cn/dave/article/108062

可以使用info keyspace 查看所有存在key的数据库信息,比如我们这里:

http://www.cndba.cn/dave/article/108062
http://www.cndba.cn/dave/article/108062

[dave@www.cndba.cn ~]# redis-cli
127.0.0.1:6379> auth redis
OK
127.0.0.1:6379> info keyspace
# Keyspace
db0:keys=2,expires=0,avg_ttl=0
127.0.0.1:6379> keys *
1) "dave"
2) "cndba"
127.0.0.1:6379>
127.0.0.1:6379> get dave
"ustc"
127.0.0.1:6379> get cndba
"dave"
127.0.0.1:6379>

我们这里db0 里面有2个key: dave 和 cndba。

可以也可以切换到其他数据库:

127.0.0.1:6379> select 16
(error) ERR DB index is out of range
127.0.0.1:6379> select 15
OK
127.0.0.1:6379[15]> set cndba "https://www.cndba.cn"
OK
127.0.0.1:6379[15]> info keyspace
# Keyspace
db0:keys=2,expires=0,avg_ttl=0
db15:keys=1,expires=0,avg_ttl=0
127.0.0.1:6379[15]> keys *
1) "cndba"
127.0.0.1:6379[15]>

这里我们可以看到数据库的选择范围是0-15,每个库单独存在自己的keys。

2 修改Redis 数据库个数


默认情况下是16个数据库,我们可以修改参数文件,来调整可切换数据库的数量:http://www.cndba.cn/dave/article/108062http://www.cndba.cn/dave/article/108062

[dave@www.cndba.cn ~]# redis-cli
127.0.0.1:6379> auth redis
OK
127.0.0.1:6379> config get *database*
1) "databases"
2) "16"
127.0.0.1:6379> config set databases 64
(error) ERR CONFIG SET failed (possibly related to argument 'databases') - can't set immutable config

我们这里直接在客户端中修改,提示该参数不能修改。 所以只能修改配置文件,并重启Redis 实例。

[dave@www.cndba.cn ~]# cat /etc/redis.conf |grep databases
# Set the number of databases. The default database is DB 0, you can select
# dbid is a number between 0 and 'databases'-1
databases 64
# Compress string objects using LZF when dump .rdb databases?
# * keyspace - Writing or reading from keys, databases, or their metadata
[dave@www.cndba.cn ~]#

[dave@www.cndba.cn ~]# systemctl restart redis

[dave@www.cndba.cn ~]# redis-cli
127.0.0.1:6379> auth redis
OK
127.0.0.1:6379> config get *database*
1) "databases"
2) "64"
127.0.0.1:6379>

3 小结


这里只是说明Redis 数据库中也有多数据库的概念,也可以进行切换,但实际中,一般不建议这么操作,因为很难定义具体操作的数据库序号。 如果使用了多数据库,那么建议在每次连接之前都进行一次select,以免连接到错误的数据库中。 http://www.cndba.cn/dave/article/108062http://www.cndba.cn/dave/article/108062

版权声明:本文为博主原创文章,未经博主允许不得转载。

用户评论
* 以下用户言论只代表其个人观点,不代表CNDBA社区的观点或立场
dave

dave

关注

人的一生应该是这样度过的:当他回首往事的时候,他不会因为虚度年华而悔恨,也不会因为碌碌无为而羞耻;这样,在临死的时候,他就能够说:“我的整个生命和全部精力,都已经献给世界上最壮丽的事业....."

  • 2261
    原创
  • 3
    翻译
  • 578
    转载
  • 191
    评论
  • 访问:7966615次
  • 积分:4346
  • 等级:核心会员
  • 排名:第1名
精华文章
    最新问题
    查看更多+
    热门文章
      热门用户
      推荐用户
        Copyright © 2016 All Rights Reserved. Powered by CNDBA · 皖ICP备2022006297号-1·

        QQ交流群

        注册联系QQ