`

Redis 3.0 cluster 集群

 
阅读更多

参考资料:

吴水成老师的<<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)原忘记配置文件了

    windows一键Redis-Cluster集群工具(32位Redis-v3.0.504),资源包括:ruby安装包,rubygem,32位Redis-v3.0.504,一键Redis-Cluster集群工具等,64位请自行替换相关资源包即可,相关文章见:...

    redis3.0.集群环境安装手册

    Redis 3.0 集群环境安装手册 Redis 3.0 集群环境安装手册是指在 Linux 操作系统中安装和配置 Redis 3.0 集群的步骤指南。Redis 是一个开源、基于内存的数据结构存储系统,可以用作数据库、消息队列、缓存层等。 ...

    redis3.0-集群部署文档

    cp /usr/local/redis3.0/redis.conf /usr/local/cluster/ vi redis.conf ``` - 修改以下配置项: - `port`: 设置为节点对应的端口号(例如7000) - `daemonize yes`: 后台运行 - `cluster-enabled yes`: 开启...

    windows一键Redis-Cluster集群工具(支持Redis3.0.504,Redis3.2.100的x86,x64版本)

    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 编译过后的exe

    在Windows环境下编译Redis3.0,可以让你在本地系统上测试和开发基于Redis的应用,尤其是利用其新特性——Cluster。 **Redis3.0的新特性:** 1. **Cluster支持**:Redis 3.0引入了Cluster功能,这是一个分布式解决...

    redis3.0 demo

    通过这个“redis3.0 demo”,我们可以学习如何配置和使用Redis集群,如何编写和执行LUA脚本,以及如何利用其他新特性来优化应用性能。同时,它也将演示如何处理复制、连接管理和安全性等核心问题。通过实践,你可以...

    windows一键Redis-Cluster集群工具(32位Redis-v3.0.504)

    windows一键Redis-Cluster集群工具(32位Redis-v3.0.504),资源包括:ruby安装包,rubygem,32位Redis-v3.0.504,一键Redis-Cluster集群工具等,64位请自行替换相关资源包即可,相关文章见:

    Redis 3.0.pdf

    4. **Cluster改进**:集群功能更加稳定,支持更多节点和更大的数据量。 5. **性能优化**:包括更快的键空间通知、更好的内存管理等。 Redis 3.0版本的发布,不仅带来了新的数据类型和特性,还优化了性能和稳定性,...

    redis3.0 windows 版

    - 集群功能(Redis Cluster)在更高版本中引入,3.0版本可能不支持或功能有限。 9. **安全与性能优化** - 设置访问密码,通过`requirepass`配置项。 - 调整内存限制,避免内存溢出。 - 优化网络I/O,如调整TCP...

    redis3.0 server+client

    - **Redis Cluster**:自包含的分片解决方案,提供数据分区和容错能力。 7. **安全性**: - **访问控制**:通过requirepass配置密码保护,限制非法访问。 - **SSL连接**:启用SSL加密通信,保障数据传输安全。 ...

    redis3.0-windows

    1. **Cluster支持**:Redis 3.0引入了集群功能,允许在多台机器上分布式存储数据,提供高可用性和水平扩展能力。通过一致性哈希算法,可以将数据自动分片到不同的节点,实现数据的分散和冗余。 2. **Streams数据...

    redis3.0集群安装

    ### Redis 3.0 集群安装及配置详解 #### 一、概述 Redis(Remote Dictionary Server)是一款开源的键值存储系统,以其高性能、低延迟的特点在缓存领域有着广泛的应用。随着数据量的增长,单一Redis实例往往难以满足...

    Redis Cluster集群模式学习

    Redis Cluster 是 Redis 3.0 开始推出的无中心结构集群模式,每个节点保存数据和整个集群状态,每个节点都和其他所有节点连接,官方向要求至少 6 个节点才可以保证高可用,即 3 主 3 从。扩展性强、更好做到高可用...

    redis3.0和redis-desktop-manager

    3. **Cluster 集群**:Redis 3.0 引入了官方的集群支持,允许用户在多个节点间分配数据,提供水平扩展和故障转移能力。通过命令`CLUSTER`系列,用户可以管理集群,实现数据的自动路由和故障恢复。 4. **lua脚本增强...

    Redis Cluster集群部署搭建详解附件

    本文将详细解析如何搭建Redis Cluster集群,包括集群的基本概念、配置、节点间通信以及常见问题处理。 一、Redis Cluster基础概念 1. 节点:每个运行Redis服务的实例称为一个节点,至少需要3个节点才能创建一个基本...

Global site tag (gtag.js) - Google Analytics