redis 有了集群还需要主从哨兵吗
答案:2 悬赏:0 手机版
解决时间 2021-02-28 17:53
- 提问者网友:听门外雪花风
- 2021-02-27 17:17
redis 有了集群还需要主从哨兵吗
最佳答案
- 五星知识达人网友:话散在刀尖上
- 2021-02-27 17:54
即使使用哨兵,redis每个实例也是全量存储,每个redis存储的内容都是完整的数据,浪费内存且有木桶效应。为了最大化利用内存,可以采用集群,就是分布式存储。即每台redis存储不同的内容,
共有16384个slot。每个redis分得一些slot,hash_slot = crc16(key) mod 16384 找到对应slot,键是可用键,如果有{}则取{}内的作为可用键,否则整个键是可用键
集群至少需要3主3从,且每个实例使用不同的配置文件,主从不用配置,集群会自己选。
所以还是需要的,因为redis的集群是把内容存储到各个节点上,而哨兵的作用就是监控redis主、从数据库是否正常运行,主出现故障自动将从数据库转换为主数据库。
共有16384个slot。每个redis分得一些slot,hash_slot = crc16(key) mod 16384 找到对应slot,键是可用键,如果有{}则取{}内的作为可用键,否则整个键是可用键
集群至少需要3主3从,且每个实例使用不同的配置文件,主从不用配置,集群会自己选。
所以还是需要的,因为redis的集群是把内容存储到各个节点上,而哨兵的作用就是监控redis主、从数据库是否正常运行,主出现故障自动将从数据库转换为主数据库。
全部回答
- 1楼网友:慢性怪人
- 2021-02-27 18:33
您好,brpop命令接收两个参数,第一个是键名,第二个是超时时间,单位是秒。当超过了此时间仍然没有获得新元素的话就会返回nil。上例中超时时间为"0",表示不限制等待的时间,即如果没有新元素加入列表就会永远阻塞下去。 当获得一个元素后brpop命令返回两个值,分别是键名和元素值。为了测试brpop命令,我们可以打开两个redis-cli实例,在实例a中: redis a> brpop queue 0 键入回车后实例1会处于阻塞状态,这时在实例b中向queue中加入一个元素: redis b> lpush queue task 敞鸡搬课植酒邦旬鲍莫 (integer) 1 在lpush命令执行后实例a马上就返回了结果: 1) "queue" 2) "task" 同时会发现queue中的元素已经被取走: redis> llen queue (integer) 0 除了brpop命令外,redis还提供了blpop,和brpop的区别在与从队列取元素时blpop会从队列左边取。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯