Redis数据库有16个,分别是0-15,每个数据库用数字命名,而且每个数据库的连接密码都一样,redis只允许一个密码。数据库之间不能共享,并且基于单机才有,如果是集群,就没有数据库的概念了。

redis之所以分这么多个数据库,也是为了区分业务,不同的业务存放在不同的库,但是一个redis,一般是给一个项目用,项目内的不同业务,单独用一个库,这样不会相互有数据交叉。现在很多微服务项目,一个项目里有多个微服务,redis统一由团队管理,每个服务连接自己的库就可以了。

可以通过select num,来切换数据库

redis 持的数据库 16 redis有16个数据库_Redis

redis的数据库个数,也是可以修改的,redis.conf里面设置了databases 16,默认是16个,0-15,如果要修改数据库个数,可以修改这个配置。

redis 持的数据库 16 redis有16个数据库_redis 16个数据库有什么不一样_02

 

Redis是字典结构的存储方式,采用key-value存储,和memcache很像,所以这两者经常拿来比较。如果要存储大数据量,可以采用mongodb,毕竟Redis的存储容量不是那么大,很多项目的方案都是采用mysql为主,redis为辅的存储方式,把一些冷数据放到mysql,热数据放到redis里,redis数据存放在内存里,读写速度很快,一般用于高速缓存,避免对数据库的频繁操作。

Redis不支持自定义数据库的名字,每个数据库都以编号命名,开发者必须自己记录哪些数据库存储了哪些数据。另外Redis也不支持为每个数据库设置不同的访问密码,所以一个客户端要么可以访问全部数据库,要么连一个数据库也没有权限访问。

最重要的一点是多个数据库之间并不是完全隔离的,比如FLUSHALL命令可以清空一个Redis实例中所有数据库中的数据。综上所述,这些数据库更像是一种命名空间,而不适宜存储不同应用程序的数据。比如可以使用0号数据库存储某个应用生产环境中的数据,使用1号数据库存储测试环境中的数据,但不适宜使用0号数据库存储A应用的数据而使用1号数据库B应用的数据,不同的应用应该使用不同的Redis实例存储数据。由于Redis非常轻量级,一个空Redis实例占用的内在只有1M左右,所以不用担心多个Redis实例会额外占用很多内存。 

flushdb:清空当前数据库的所有数据

flushall:清空整个实例的数据

redis 持的数据库 16 redis有16个数据库_redis 持的数据库 16_03