redis集群

Posted 19930909a

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了redis集群相关的知识,希望对你有一定的参考价值。


 Redis集群
1.为什么需要集群:
?    (1)解决单点故障

?    (2)处理高并发

?    (3)处理大数据(高并发) --解决存储问题

集群方案的选择:

    (1)主从复制 (读写分离 主从同步)

?            优点:

?                    支持主从复制,主机会自动将数据同步到从机,可以进行读写分离

?            缺点:

?                    Redis不具备自动容错和恢复功能,如果想具备自动重起 ,需要安装插件



## (2)哨兵模式

自动化的系统监控和故障恢复功能

![image-20191220101826403](C:UsersAdministratorAppDataRoamingTypora ypora-user-imagesimage-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 FilesRedis_cluster ubygems-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

 

技术图片

以上是关于redis集群的主要内容,如果未能解决你的问题,请参考以下文章

redis集群为啥要ruby

如何安装Redis集群

分布式缓存技术redis学习系列——redis高级应用(集群搭建集群分区原理集群操作)

redis集群介绍redis集群搭建配置redis集群操作

Redis集群模式

redis高级应用(集群搭建集群分区原理集群操作)