参考资料:
吴水成老师的<<Redis集群的安装(Redis3+CentOS)>> 见附件
Redis 官方集群指南:http://redis.io/topics/cluster-tutorial
Redis 官方集群规范:http://redis.io/topics/cluster-spec
Redis 集群指南(中文翻译,紧供参考):http://redisdoc.com/topic/cluster-tutorial.html
Redis 集群规范(中文翻译,紧供参考): http://redisdoc.com/topic/cluster-spec.html
实践:结合自身的实践
一.Redis Cluster介绍
Redis集群是一个无中心的分布式redis存储架构,可以在多个节点之间进行数据共享,解决了redis高可用、可扩展等问题,redis集群提供了以下两个好处
(1) 将数据自动切分(split)到多个节点
(2) 当集群中的某一个节点故障时,redis还可以继续处理客户端的请求。
一个 Redis 集群包含 16384 个哈希槽(hash slot),数据库中的每个数据都属于这16384个哈希槽中的一个。集群使用公式 CRC16(key) % 16384 来计算键 key 属于哪个槽。集群中的每一个节点负责处理一部分哈希槽。集群中的每个节点都有1个至N个复制品,其中一个为主节点,其余的为从节点,如果主节点下线了,集群就会把这个主节点的一个从节点设置为新的主节点,继续工作。这样集群就不会因为一个主节点的下线而无法正常工作
详尽内容,请参考:http://www.cnblogs.com/wjoyxt/p/4242184.html http://blog.csdn.net/a67474506/article/details/50435498
二.安装配置
1.环境介绍
Redis 集 群的安装( Redis3.0.3 + CentOS 6.6 _x64 )要让 Redis3.0 集群正常工作至少需要 3 个 Master 节点,要想实现高可用,每个 Master 节点要配备至少 1 个 Slave 节点。根据以上特点和要求,进行如下的集群实施规划:
使用 6 台服务器(物理机或虚拟机)部署 3 个 Master + 3 个 Slave;
我的环境设置:
机器:虚拟机
O S: CentOS 6.6 _x64
IP:
192.168.1.121:7111 192.168.1.121:7112 192.168.1.121:7113
192.168.1.122:7114 192.168.1.124:7116 192.168.1.123:7115
2.Redis安装配置
Redis介绍,安装使用及集群介绍
3.Redis集群的安装
3.1 剩余内容参考:Redis集群的安装(Redis3+CentOS)即可
3.2.安装过程中问题小结
(1) redis-trib create --replicas 1 192.168.1.107:7114 192.168.1.108:7115 192.168.1.109:7116 192.168.1.104:7111 192.168.1.105:7112 192.168.1.106:7113
注:(1)不满足可换位置再试 (2)当存在伪节点时,当主从在一台,机器出问题就都有问题了; 因为节点主从不可控
(2)报错:[ERR] Node 172.168.63.202:7001 is not empty. Either the nodealready knows other nodes (check with CLUSTER NODES) or contains some key
1)将每个节点下aof、rdb、nodes.conf本地备份文件删除;
2)172.168.63.201:7001> flushdb #清空当前数据库(可省略)
3)之后再执行脚本,成功执行;
参考:http://blog.csdn.net/vtopqx/article/details/50235737
4.Redis集群高可用测试
5.Redis集群的扩展测试
5.1 遵从文件<<redis集群的扩展性测试>>
5.2 以下是自身的实践及问题总结
1.新增节点到集群内:在新节点机器上执行
/usr/local/src/redis3.0/src/redis-trib.rb add-node 192.168.1.111:7117 192.168.1.121:7111
2.为新节点分配哈希槽(slot) :
你只需要指定集群中其中一个节点的地址, redis-trib 就会自动找到集群中的其他节点。 目前 redis-trib只能在管理员的协助下完成重新分片的工作,命令如下:
# /usr/local/src/redis3.0/src/redis-trib.rb reshard 192.168.1.121:7111
3.移动完成查看节点是否正常
/usr/local/src/redis3.0/src/redis-trib.rb check 192.168.1.121:7111
4.添加从节点
#/usr/local/src/redis3.0/src/redis-trib.rb add-node 192.168.1.111:7118 192.168.1.121:7111
5.redis-cli 连接上新节点 shell,输入命令:cluster replicate 对应 master 的 node-id
127.0.0.1:7118>cluster replicate ab31611b3424990e2b9bbe73135cb4cb0ace394f
ab31611b3424990e2b9bbe73135cb4cb0ace394f位7117的nodeId
6.删除一个 slave 节点
# cd /usr/local/src/redis-3.0.3/src/
# ./redis-trib.rb del-node 172.21.10.203:7118 7f868a38a90acfdf40121613bfed1a089b7db028
删除一个 master 节点
删除 master 节点之前首先要使用 reshard 移除该 master 的全部 slot,然后再删除当前节点(目前只能把被
删除 master 的 slot 迁移到一个节点上),操作和分配 slot 类似,指定具体的 Source node 即可。
# /usr/local/src/redis-3.0.3/src/redis-trib.rb reshard 172.21.10.203:7117
确认已清空该 Master 节点的所有 slot 后就可以删除该节点了(命令与删除 slave 节点一样) :
# cd /usr/local/src/redis-3.0.3/src/
# ./redis-trib.rb del-node 172.21.10.203:7117 93c4477e5d23db7fc17fc4c15ec72595b52d25e7
相关推荐
windows一键Redis-Cluster集群工具(32位Redis-v3.0.504),资源包括:ruby安装包,rubygem,32位Redis-v3.0.504,一键Redis-Cluster集群工具等,64位请自行替换相关资源包即可,相关文章见:...
Redis 3.0 集群环境安装手册 Redis 3.0 集群环境安装手册是指在 Linux 操作系统中安装和配置 Redis 3.0 集群的步骤指南。Redis 是一个开源、基于内存的数据结构存储系统,可以用作数据库、消息队列、缓存层等。 ...
cp /usr/local/redis3.0/redis.conf /usr/local/cluster/ vi redis.conf ``` - 修改以下配置项: - `port`: 设置为节点对应的端口号(例如7000) - `daemonize yes`: 后台运行 - `cluster-enabled yes`: 开启...
windows一键Redis-Cluster集群工具(32位和64位Redis-v3.0.504,以及64位Redis-v3.2.100),资源包括:ruby安装包,rubygem,32位Redis-v3.0.504,64位Redis-v3.0.504,64位Redis-v3.2.100,一键Redis-Cluster集群...
在Windows环境下编译Redis3.0,可以让你在本地系统上测试和开发基于Redis的应用,尤其是利用其新特性——Cluster。 **Redis3.0的新特性:** 1. **Cluster支持**:Redis 3.0引入了Cluster功能,这是一个分布式解决...
通过这个“redis3.0 demo”,我们可以学习如何配置和使用Redis集群,如何编写和执行LUA脚本,以及如何利用其他新特性来优化应用性能。同时,它也将演示如何处理复制、连接管理和安全性等核心问题。通过实践,你可以...
windows一键Redis-Cluster集群工具(32位Redis-v3.0.504),资源包括:ruby安装包,rubygem,32位Redis-v3.0.504,一键Redis-Cluster集群工具等,64位请自行替换相关资源包即可,相关文章见:
4. **Cluster改进**:集群功能更加稳定,支持更多节点和更大的数据量。 5. **性能优化**:包括更快的键空间通知、更好的内存管理等。 Redis 3.0版本的发布,不仅带来了新的数据类型和特性,还优化了性能和稳定性,...
- 集群功能(Redis Cluster)在更高版本中引入,3.0版本可能不支持或功能有限。 9. **安全与性能优化** - 设置访问密码,通过`requirepass`配置项。 - 调整内存限制,避免内存溢出。 - 优化网络I/O,如调整TCP...
- **Redis Cluster**:自包含的分片解决方案,提供数据分区和容错能力。 7. **安全性**: - **访问控制**:通过requirepass配置密码保护,限制非法访问。 - **SSL连接**:启用SSL加密通信,保障数据传输安全。 ...
1. **Cluster支持**:Redis 3.0引入了集群功能,允许在多台机器上分布式存储数据,提供高可用性和水平扩展能力。通过一致性哈希算法,可以将数据自动分片到不同的节点,实现数据的分散和冗余。 2. **Streams数据...
### Redis 3.0 集群安装及配置详解 #### 一、概述 Redis(Remote Dictionary Server)是一款开源的键值存储系统,以其高性能、低延迟的特点在缓存领域有着广泛的应用。随着数据量的增长,单一Redis实例往往难以满足...
Redis Cluster 是 Redis 3.0 开始推出的无中心结构集群模式,每个节点保存数据和整个集群状态,每个节点都和其他所有节点连接,官方向要求至少 6 个节点才可以保证高可用,即 3 主 3 从。扩展性强、更好做到高可用...
3. **Cluster 集群**:Redis 3.0 引入了官方的集群支持,允许用户在多个节点间分配数据,提供水平扩展和故障转移能力。通过命令`CLUSTER`系列,用户可以管理集群,实现数据的自动路由和故障恢复。 4. **lua脚本增强...
本文将详细解析如何搭建Redis Cluster集群,包括集群的基本概念、配置、节点间通信以及常见问题处理。 一、Redis Cluster基础概念 1. 节点:每个运行Redis服务的实例称为一个节点,至少需要3个节点才能创建一个基本...