Redis为什么默认16个数据库?
在现实项目中Redis常被应用于做缓存,漫衍式锁、动静行列等。可是在搭建设置好Redis处事器后许多伴侣应该会发明和有这样的疑问,为什么Redis默认成立了16个数据库,如下图所示。 一、16个数据库的由来 Redis是一个字典布局的存储处事器,一个Redis实例提供了多个用来存储数据的字典,客户端可以指定将数据存储在哪个字典中。这与在一个相关数据库实例中可以建设多个数据库相同(如下图所示),以是可以将个中的每个字典都领略成一个独立的数据库。 以MySQL实例为例 Redis默认支持16个数据库,可以通过调解Redis的设置文件redis/redis.conf中的databases来修改这一个值,配置完毕后重启Redis便完成设置。 客户端与Redis成立毗连后会默认选择0号数据库,不外可以随时行使SELECT呼吁改换数据库。
在现实项目中则可以通过以Redis设置文件的情势指定命据库,如下图所示 二、正确领略Redis的“数据库”观念 因为Redis不支持自界说数据库的名字,以是每个数据库都以编号定名。开拓者则必要本身记录存储的数据与数据库的对应相关。其它Redis也不支持为每个数据库配置差异的会见暗码,以是一个客户端要么可以会见所稀有据库,要么所稀有据库都没有权限会见。可是,要正确地领略Redis的“数据库”观念这里不得不提到一个呼吁:
该呼吁可以清空实例下的全部数据库数据,这与我们所熟知的相关型数据库所差异。相关型数据库多个库常用于存储差异应用措施的数据 ,且没有方法可以同时清空实例下的全部库数据。以是对付Redis来嗣魅这些db更像是一种定名空间,且不相宜存储差异应用措施的数据。好比可以行使0号数据库存储某个应用出产情形中的数据,行使1号数据库存储测试情形中的数据,但不相宜行使0号数据库存储A应用的数据而行使1号数据库B应用的数据,差异的应用应该行使差异的Redis实例存储数据。Redis很是轻量级,一个空Redis实例占用的内涵只有1M阁下,以是不消担忧多个Redis实例会特殊占用许多内存。 三、集群环境下是否支持一个实例多个db? 要留意以上所说的都是基于单体Redis的环境。而在集群的环境下不支持行使select呼吁劳迫椿db,由于Redis集群模式下只有一个db0。再扩展一些集群与单机Reids的区别,感乐趣的伴侣可以去查阅相干的资料深入领略,这里就不做接头了。
四、总结 Redis实例默认成立了16个db,因为不支持自主举办数据库定名以是以dbX的方法定名。默认数据库数目可以修改设置文件的database值来设定。对付db正确的领略应为“定名空间”,多个应用措施不该行使统一个Redis差异库,而应一个应用措施对应一个Redis实例,差异的数据库可用于存储差异情形的数据。最后要留意,Redis集群下只有db0,不支持多db。 【编辑保举】
点赞 0 (编辑:河北网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |