概述
redis cluster大家喜欢叫它redis集群,也有人喜欢叫分片集群。总结下来,redis有三种模式,分别是单机,哨兵模式,分片集群。从表面上看使用的机器越来越多了,其实确实是随着数据量读写的变化,需要不断升级三种部署模式,我们下面来看看区别,以及分别适用场景。
分片集群原理图
说明:如图,分片集群的含义的一目了然,数据分布存储在不同节点。首先客户端会对key进行CRC16计算,计算出来得到一个slot号,然后数据读写就在对应的redis实例上。和哨兵模式对比,分片集群不仅保证了高可用,同时还可以分片存储数据,真正做到了分摊读写压力的作用。
分片集群应用场景
1.在存储数据很大的时候,单机肯定不行的。容易频繁触发淘汰策略,缓存缺失频繁,造成雪崩,击穿,穿透,同时
RDB fork子进程容易阻塞主线程
2.在存储数据很大的时候,哨兵模式也不行(可以分单读压力)。除了单机存在的问题,还会引发主从同步数据不一致问题,环形缓冲区
写满,脑裂问题。
3.分布式集群情况下,单台redis实例只存储部分数据,RDB也快,主从同步也快,读写压力还能分担,可以很好解决
大数据量,读写压力都大的场景
分片集群部署
1.准备6个节点,分别下载好redis
2.配置集群一些配置:port 6379(端口改成不同),cluster-enabled yes(开启集群模式),
cluster-config-file nodes-6379.conf(每个节点单独开启一个文件)
3. 创建集群 ./src/redis-cli -h host --cluster create 172.24.55.121:6379
172.24.55.121:6380 172.24.55.121:6381 --cluster-replicas 1
4.使用客户端操作redis集群 ./src/redis-cli -h host -c(集群模式客户端)