redis为什么存在16个库?
redis 为什么存在16个库?这个问题在网上搜了一会儿,没有搜到标准答案,很有可能时当时的开发者基于某种情况设置的一个数值,即默认情况下, redis 会生成 0-15号共16个db,以供不同场景的使用需求。不同的 db 下,相同的key各自独立。
而我们可以通过修改 redis 的配置文件(redis.conf)来修改这种默认 db 的配置个数(修改配置文件后需重启才能生效)
# redis 配置文件中
databases 16
在 redis-cli 下,通过 select 命令来切换数据库
127.0.0.1:6379[0]> select 1
OK
127.0.0.1:6379[1]>
通过 CONFIG GET databases 获取当前的db数
127.0.0.1:6379[1]> CONFIG GET databases
1) "databases"
2) "1"
而切换到不存在的 db 会报错
127.0.0.1:6379[1]> SELECT 16
(error) ERR DB index is out of range
要正确地理解 redis 的“数据库”概念,其不同于关系型数据库多个库常用于存储不同应用程序的数据,且没有方式可以同时清空实例下的所有库数据。而 redis 的这些db更像是一种命名空间,且不适宜存储不同应用程序的数据。比如可以使用0号数据库存储某个应用生产环境中的数据,使用1号数据库存储测试环境中的数据,但不适宜使用0号数据库存储A应用的数据而使用1号数据库B应用的数据,不同的应用应该使用不同的Redis实例存储数据。要特别注意的是以下两个命令的使用:
# 清空一个 redis 实例中的当前 db 中的数据
redis 127.0.0.1:6379> FLUSH
# 清空一个 redis 实例中所有数据库中的数据
redis 127.0.0.1:6379> FLUSHALL
作者:夕阳雨晴,欢迎关注我的头条号:偶尔美文,主流Java,为你讲述不一样的码农生活。