myJavaSE

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

 

posted on 2019-12-20 19:59  myJavaSE  阅读(142)  评论(0编辑  收藏  举报

导航