淘先锋技术网

首页 1 2 3 4 5 6 7

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,为你讲述不一样的码农生活。

err java,redis为什么存在16个库