Redis集群(新)

1.什么是集群

        Redis集群实现了对Redis的水平扩容,可实现并发写操作,启动n个redis节点,将数据分别存储在不同的节点中,每块节点负责不同区域的插槽,所以Redis集群通过分区来提供一定程度的可用性。

        Redis集群现采用的是无中心集群配置,注意我们不要单独进入某个节点客户端中操作,命令应添加-c采用集群策略连接设置数据会自动切换到对应的写主机

Redis集群(新)_第1张图片

2.什么是Slots(卡槽)

一个Redis集群包含16384个插槽,数据库中的每个键都存在于这16384个插槽的其中一个,计算方式为:key的循环冗余校验值%16384,集群中的每个节点负责管理一部分插槽。如果我们要一次性添加多个key,但是这些key又位于不同的插槽,我们就可以通过{}来定义的概念,{}中相同的键会放入同一个插槽中。

3.故障恢复

如果某一段主节点挂掉,会有15s的检测时间,15s后其从节点会自动升级为主节点,挂掉的主节点恢复后,会成为从机。

3.1如果所有某一段插槽的主从节点都宕掉,redis服务是否还能继续?

根据配置文件中的cluster require full coverage(集群需要全覆盖)来决定:

  • 如果为yes,某一段插槽的主从都挂掉,那么整个集群都会挂掉。

  • 如果为no,某一段插槽的主从都挂掉,只是插槽数据全都不能使用,也无法存储。

4.Redis集群的优劣分析

4.1优点

  • 实现扩容。

  • 分担压力。

4.2缺点

  • 不支持lua脚本。

  • 迁移成本较高,复杂度大。

 

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