Redis入门到超神 - 02 Redis为什么默认16个数据库

关注微信公众号【Java之言】,更多干货文章学习资料,助你放弃编程之路!


通过Redis客户端连接工具可以看到,Redis默认有16个数据库。由于Redis不支持自定义数据库的名字,所以每个数据库都以编号命名。
Redis入门到超神 - 02 Redis为什么默认16个数据库_第1张图片
其实通过redis配置文件 redis.conf 也可以看出默认是16个数据库。我们连接redis默认使用的是0号数据库,可以通过命令 select dbid 进行切换,编号是 0 至 databases-1。
在这里插入图片描述
在这里插入图片描述

如果我们将配置文件中的 databases 16 改为 databases 10 ,则会变成只有10个数据库。
Redis入门到超神 - 02 Redis为什么默认16个数据库_第2张图片

Redis不支持为每个数据库设置不同的访问密码,Redis只有一个密码,一个客户端要么可以访问全部数据库,要么全部数据库都没有权限。

平常开发中,我们一般默认使用0号数据库,当然你也可以选择其他编号的数据库来进行数据存储。但是不同数据库的数据是不共享的,同一个数据库内的键不可以重复,但是不同数据库的键可以重复。

例如我们在Springboot项目的配置文件中,配置使用1号数据库,当然默认是0号。

spring.redis.host=192.168.111.131
spring.redis.port=6379
spring.redis.password=123456
spring.redis.database=1

在关系型数据库(例如Mysql)中,我们一般用不同的数据库存储不同应用程序的数据,但是对于Redis的数据库,它更像是一种命名空间,不推荐用不同数据库来存储区分不同应用程序的数据。

比如我们可以用0号数据库存储生产环境中的数据,使用1号数据库存储测试环境中的数据,但不适宜使用0号数据库存储应用A的数据,而使用1号数据库应用B的数据。我们更推荐的是不同的应用使用不同的Redis实例存储数据。因为Redis极其轻量级,一个空Redis实例占用的内存只有几M左右,所以不用担心多个Redis实例会额外占用很多内存。

例如我这显示的是才占用7MB左右,很轻量级。
Redis入门到超神 - 02 Redis为什么默认16个数据库_第3张图片

清空当前数据库所有数据命令为 FLUSHDB ,清空所有数据库的所有数据命令为 FLUSHALL

请注意以上所说的都是基于单机Redis的情况。在集群的情况下不支持使用select命令来切换db,因为Redis集群模式下只有一个db0。

关注微信公众号【Java之言】,更多干货文章学习资料,助你放弃编程之路!
在这里插入图片描述

你可能感兴趣的:(Redis,数据库,redis)