redis集群
Redis集群
1.为什么需要集群:
(1)解决单点故障
(2)处理高并发
(3)处理大数据(高并发) --解决存储问题
集群方案的选择:
(1)主从复制 (读写分离 主从同步)
优点:
支持主从复制,主机会自动将数据同步到从机,可以进行读写分离
缺点:
Redis不具备自动容错和恢复功能,如果想具备自动重起 ,需要安装插件
## (2)哨兵模式
自动化的系统监控和故障恢复功能
![image-20191220101826403](C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20191220101826403.png)
优点缺点:
主从复制优点都在, 通过哨兵自动恢复
缺点:比较难扩容,服务占用空间比较多
## (3)Redis-Cluster集群
redis的分布式存储,也就是说每台redis节点上存储不同的内容。
优点:
上面有都有,解决分布式存储问题 ,容错问题
# 4 搭建redis-cluster(了解)
所需软件
(1)
要让集群正常运作至少需要3个主节点,建议配置3个主节点,其余3个作为各个主节点的从节点(也是官网推荐的模式)。
同一台电脑,不同端口模拟安装并拷贝6个服务器
(2) 修改配置
port 6379
cluster-enabled yes
cluster-config-file nodes-6379.conf
cluster-node-timeout 15000
appendonly yes
(3) 每个redis服务 写一个startup.bat启动文件
title redis-6379
redis-server.exe redis.windows.conf
(4)安装ruby环境
傻瓜式安装
(5)安装Redis的Ruby驱动 rubygems-3.0.6
a)解压
b)D:\Program Files\Redis_cluster\rubygems-2.7.7 然后命令行执行 ruby setup.rb
(6)通过驱动安装的redis
a)进入6379的目录
b)执行gem install redis
(7) 启动 6379-6384服务
创建集群
拷贝redis-trib.rb到6379的redis节点
redis-trib.rb create --replicas 1 127.0.0.1:6379 127.0.0.1:6380 127.0.0.1:6381 127.0.0.1:6382 127.0.0.1:6383 127.0.0.1:6384
Redis集群数据分配策略:
采用一种叫做哈希槽 (hash slot)的方式来分配数据,redis cluster 默认分配了 16384 个slot,当我们set一个key 时,会用CRC16算法来取模得到所属的slot,然后将这个key分到哈希槽区间的节点上,具体算法就是:CRC16(key) % 16384
注意的是:必须要3个以上的主节点,否则在创建集群时会失败,三个节点分别承担的slot 区间是:
节点A覆盖0-5460;
节点B覆盖5461-10922;
节点C覆盖10923-16383