redis主从,哨兵以及集群的简单理解
一:redis是什么
in-memory database:内存数据库 supported:Strings, Lists, Sets, Sorted Sets, Hashes, HyperLogLogs, Bitmaps
Redis is an in-memory database that persists on disk. The data model is key-value, but many different kind of values are supported: Strings, Lists, Sets, Sorted Sets, Hashes, HyperLogLogs, Bitmaps.
二:redis的主从
假如生产环境就使用了一台redis,如果挂了只能等运维重启redis,中间可能用很长时间.所以做了主从,主库挂了之后,运维让从库接管,那么服务可以继续运行
三:哨兵模式sentinel
redis sentinel:翻译成哨兵,主要是监控主从节点的健康情况.客户端连接redis先连接sentinel,会告诉redis主的地址是多少,最后客户端连接redis进行操作.假如主redis挂了,自动筛选从库变成主的,客户端重新向sentinel询问主master的地址,然后客户端得到了新选举出来的主redis,就可以继续操作.
四:reids集群
redis的主从,高可用的sentinel哨兵模式,只是保证了数据备份和高可用性,目前这些都是向1台redis写数据,其他的redis都是备份而已.但缺点:
(1)单个redis并发有限
(2)单个redis会逐渐导致内存变大,进而导致同步恢复数据都会很慢
此时就需要redis集群:redis集群就是一个提供在多个Redis间节点共享数据的程序集,优势:
(1)自动分割数据到不同的节点上
(2)整个集群的部分节点失败或者不可达的情况下能够继续处理命令
注意点:为了配置一个redis cluster,我们需要准备至少6台redis