1 Redis 数据库说明
Redis服务器将所有数据库都保存在服务器状态redis.h/redisServer结构的db数组中,Redis服务器默认会创建16个数据库。
可以通过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客户端都有自己的目标数据库,每当客户端执行数据库读写命令时,目标数据库就会成为这些命令的操作对象。
默认情况下,Redis客户端的目标数据库为0号数据库,但客户端可以通过执行SELECT命令来切换目标数据库。
可以使用info keyspace 查看所有存在key的数据库信息,比如我们这里:
[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个数据库,我们可以修改参数文件,来调整可切换数据库的数量:
[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,以免连接到错误的数据库中。
版权声明:本文为博主原创文章,未经博主允许不得转载。