Redis的集群搭建(四)
1.redis-cluster架构图
2.redis-cluster投票:容错
架构细节:
(1)所有的redis节点彼此互联(PING-PONG机制),内部使用二进制协议优化传输速度和带宽.
(2)节点的fail是通过集群中超过半数的节点检测失效时才生效.
(3)客户端与redis节点直连,不需要中间proxy层.客户端不需要连接集群所有节点,连接集群中任何一个可用节点即可
(4)redis-cluster把所有的物理节点映射到[0-16383]slot上,cluster 负责维护node<->slot<->value
Redis 集群中内置了 16384 个哈希槽,当需要在 Redis 集群中放置一个 key-value 时,redis 先对 key 使用 crc16 算法算出一个结果,然后把结果对 16384 求余数,这样每个 key 都会对应一个编号在 0-16383 之间的哈希槽,redis 会根据节点数量大致均等的将哈希槽映射到不同的节点.
3.Redis集群的搭建
Redis集群中至少应该有三个节点。要保证集群的高可用,需要每个节点有一个备份机。
Redis集群至少需要6台服务器。
搭建伪分布式。可以使用一台虚拟机运行6个redis实例。需要修改redis的端口号7001-7006
--复制六份bin目录,然后把每个bin目录下的redis.conf文件的端口修改一下,还需要把cluster-enabled yes前的注释去掉。
集群搭建环境
1、使用ruby脚本搭建集群。需要ruby的运行环境。
安装ruby
yum install ruby
yum install rubygems
2.安装ruby脚本运行使用的包。
gem install redis-3.0.0.gem --gem包下载
[root@localhost src]# ll redis-trib.rb
3.启动每个redis实例。
4.使用ruby脚本搭建集群。
./redis-trib.rb create --replicas 1 localhost:7001 localhost:7002 localhost:7003 localhost:7004 localhost:7005 localhost:7006 |
创建关闭集群的脚本:
[root@localhost redis-cluster]# vim shutdow-all.sh
redis01/redis-cli -p 7001 shutdown
redis01/redis-cli -p 7002 shutdown
redis01/redis-cli -p 7003 shutdown
redis01/redis-cli -p 7004 shutdown
redis01/redis-cli -p 7005 shutdown
redis01/redis-cli -p 7006 shutdown
[root@localhost redis-cluster]# chmod u+x shutdow-all.sh
3.集群的使用方法
Redis-cli连接集群。
[root@localhost redis-cluster]# redis01/redis-cli -p 7002 -c
-c:代表连接的是redis集群
最新文章
- Java中List根据对象的属性值进行数据库group by功能的操作
- Oracle系列教程
- android 点九PNG技术 适应不同分辨率 完美显示效果
- Swift之基础知识
- spark向量、矩阵类型
- Linux grep 命令中的正则表达式详解
- IOS 创建一张有颜色的UIImage
- 虚拟机ping不通主机
- leetcode125. Valid Palindrome
- 五种IO模型透彻分析
- Python-wxpy信息爬取发送至微信(小白级)
- Linux 下挂载新硬盘方法
- Python爬虫框架Scrapy教程(1)—入门
- Servlet的请求转发和重定向
- spring mvc:复选框(多选)
- Mac OS X 安装教程
- java——io、字节流缓冲区拷贝文件、字节缓冲流
- mongoose添加属性问题
- java基础不牢固容易踩的坑
- Spring Cloud之Swagger2 API接口管理
热门文章
- 渗透测试工程师认证 | CISP-PTE证书含金量
- [题解]UVA10986 Sending email
- 前端提升生产力系列三(vant3 vue3 移动端H5下拉刷新,上拉加载组件的封装)
- 【windows 操作系统】【CPU】用户模式和内核模式(用户层和内核层)
- 《手把手教你》系列基础篇(七十三)-java+ selenium自动化测试-框架设计基础-TestNG实现启动不同浏览器(详解教程)
- 递归——深度优先搜索(DFS)——以滑雪问题为例(自顶而下)
- C# form捕捉方向键事件
- ob-页面静态化(1)
- PHP message:filesize(): stat failed for 错误
- 6. 堪比JMeter的.Net压测工具 - Crank 实战篇 - 收集诊断跟踪信息与如何分析瓶颈