Redis系列学习(四)Redis Cluster搭建
来源:互联网 发布:java工程师面试题大全 编辑:程序博客网 时间:2024/06/14 21:28
Redis Cluster搭建
- 准备redis节点
- 节点之间关联
- 分配数据槽
准备redis节点
Redis下载并解压
redis是在3.0以后才支持集群部署,所以我这就简单了直接下载最新的版本来使用:http://download.redis.io/releases/redis-4.0.6.tar.gz(截止2017-12-18)。
tar zxf redis-4.0.6.tar.gz
- Redis编译安装
cd redis-4.0.6
make & make install
- Redis Cluster 配置
集群一般会有多个节点组成,节点数量一般会设置成6个才能确保高复用,
在redis.conf文件中修改如下:
port 6379
daemonize yes (设置是否后台启动,默认为no)
cluster-enabled yes
cluster-config-file nodes-6379.conf
cluster-node-timeout 15000
其他配置和单机版的一致。
为了目录结构明了,我搭建的6个节点分别使用端口作为目录名,所以如下:
mv redis-4.0.6 6379cp -r 6379 6380cp -r 6379 6381cp -r 6379 6382cp -r 6379 6383cp -r 6379 6384
各自修改redis.conf文件的信息,所不同的是port和nodes-6379.conf,都修改为一致的端口号即可。
- 启动6个Redis
我们可以创建一个start-all.sh脚本用来启动所有redis服务器
redis-server 6379/redis.confredis-server 6380/redis.confredis-server 6381/redis.confredis-server 6382/redis.confredis-server 6383/redis.confredis-server 6384/redis.conf
可以通过查看日志看是否启动完成。
节点之间关联(meet)
节点之间关联是集群之间通信的第一步,可以使用命令发起: cluster meet ip port
127.0.0.1:6379> cluster meet 127.0.0.1 6380OK
然后可以让所有的节点互相连接:
127.0.0.1:6379> cluster meet 127.0.0.1 6381OK127.0.0.1:6379> cluster meet 127.0.0.1 6382OK127.0.0.1:6379> cluster meet 127.0.0.1 6383OK127.0.0.1:6379> cluster meet 127.0.0.1 6384OK
用 cluster nodes命令可以查看所有集群已连接的节点
127.0.0.1:6379> cluster nodesa81a469e72e5287e371245d4c447032280a43985 127.0.0.1:6380@16380 master - 0 1513590576000 3 connectede330c5ee3fca8529b7a1a4b6b90e0681a5d94aba 127.0.0.1:6382@16382 master - 0 1513590576000 0 connected6830059fe7cd9b0f485935b9675c7b99f0ea5ed5 127.0.0.1:6384@16384 master - 0 1513590577486 0 connected288a76e10524bf1f8605ee25403b25f32a41357e 127.0.0.1:6379@16379 myself,master - 0 1513590576000 1 connected492f1b479e90cd96c4428f7e847405f9e4432822 127.0.0.1:6383@16383 master - 0 1513590576477 4 connected872c0fbc8945e1a598a03674bea2a8c978d1969e 127.0.0.1:6381@16381 master - 0 1513590576000 2 connected
这样集群就搭建完成,但是还无法进行工作。需要为节点分配槽后就可以工作了。
分配数据槽
先用cluster info查看下slots的情况
127.0.0.1:6379> cluster infocluster_state:fail(不可用)cluster_slots_assigned:0(暂无slot)cluster_slots_ok:0cluster_slots_pfail:0cluster_slots_fail:0cluster_known_nodes:6cluster_size:0cluster_current_epoch:5cluster_my_epoch:1cluster_stats_messages_ping_sent:23cluster_stats_messages_pong_sent:34cluster_stats_messages_meet_sent:5cluster_stats_messages_sent:62cluster_stats_messages_ping_received:34cluster_stats_messages_pong_received:28cluster_stats_messages_received:62
分配槽空间,可以使用cluster addslots命令,我们按以下数据
redis-cli -p 6379 cluster addslots {0..5461}OKredis-cli -p 6380 cluster addslots {5462..10922}OKredis-cli -p 6381 cluster addslots {10923..16383}OK
再通过 cluster info查看集群状态
127.0.0.1:6379> cluster infocluster_state:okcluster_slots_assigned:16384cluster_slots_ok:16384cluster_slots_pfail:0cluster_slots_fail:0cluster_known_nodes:6cluster_size:3cluster_current_epoch:5cluster_my_epoch:1cluster_stats_messages_ping_sent:5037cluster_stats_messages_pong_sent:5092cluster_stats_messages_meet_sent:5cluster_stats_messages_publish_sent:45cluster_stats_messages_sent:10179cluster_stats_messages_ping_received:5092cluster_stats_messages_pong_received:5042cluster_stats_messages_publish_received:11cluster_stats_messages_received:10145
127.0.0.1:6379> cluster nodesa81a469e72e5287e371245d4c447032280a43985 127.0.0.1:6380@16380 master - 0 1513595690817 3 connected 5462-10922e330c5ee3fca8529b7a1a4b6b90e0681a5d94aba 127.0.0.1:6382@16382 slave 288a76e10524bf1f8605ee25403b25f32a41357e 0 1513595691000 1 connected6830059fe7cd9b0f485935b9675c7b99f0ea5ed5 127.0.0.1:6384@16384 slave 872c0fbc8945e1a598a03674bea2a8c978d1969e 0 1513595689808 5 connected288a76e10524bf1f8605ee25403b25f32a41357e 127.0.0.1:6379@16379 myself,master - 0 1513595689000 1 connected 0-5461492f1b479e90cd96c4428f7e847405f9e4432822 127.0.0.1:6383@16383 slave a81a469e72e5287e371245d4c447032280a43985 0 1513595691825 4 connected872c0fbc8945e1a598a03674bea2a8c978d1969e 127.0.0.1:6381@16381 master - 0 1513595689000 2 connected 10923-16383
还有3个节点没有使用,之前设置的3个为主节点,所以剩下的3个设置为从节点,确保主节点异常时,从节点可以继续使用,确保功能正常。使用命令cluster replicate nodeid在从节点上执行即可。
localhost:~/Server/redis-cluster$ redis-cli -h 127.0.0.1 -p 6382 cluster replicate 288a76e10524bf1f8605ee25403b25f32a41357eOKlocalhost:~/Server/redis-cluster$ redis-cli -p 6383 cluster replicate a81a469e72e5287e371245d4c447032280a43985OKlocalhost:~/Server/redis-cluster$ redis-cli -p 6384 cluster replicate 872c0fbc8945e1a598a03674bea2a8c978d1969e
再使用cluster nodes可查看集群状态,这样3主3从的redis集群就搭建完成了。
Redis Cluster关闭
使用redis-cli shuwdown命令即可,但是需要添加-p来指定端口,如果集群是部署在不同机子上且使用默认端口6379,那就无需添加此参数。
redis-cli -p 6379 shuwdown save
- Redis系列学习(四)Redis Cluster搭建
- Redis 学习笔记(十四)Redis Cluster介绍与搭建
- Redis 学习笔记(十四)Redis Cluster介绍与搭建
- Redis专题-- redis cluster搭建
- redis 学习笔记(6)-cluster集群搭建
- redis-cluster的搭建
- redis cluster搭建
- redis cluster 搭建
- redis cluster集群搭建
- Linux 搭建redis-cluster
- Redis cluster搭建
- redis-cluster 集群搭建
- redis cluster集群搭建
- redis cluster搭建
- redis cluster 搭建
- redis-cluster集群搭建
- redis cluster 集群搭建
- 搭建Redis-Cluster集群
- 缺省配置Springboot Web应用运行中DispatchServlet的初始化
- 语音信号处理之动态时间规整(DTW)
- 通过kettle 的gpload 插件和greenplum-loaders实现批量并行加载
- 【AKKA 官方文档翻译】第四部分:使用设备组
- 第一章 02节 ROS文件系统
- Redis系列学习(四)Redis Cluster搭建
- 【微信小程序】异步请求,权重,自适应宽度并折行,颜色渐变,绝对定位
- tomcat8性能优化参考
- Java连接MySQL实现流水号自动增长
- Mac OS 终端命令行执行总是出现 command not found
- Hadoop 生态圈介绍
- Spring aop最简形式
- myeclipse的JS出现红叉叉解决方法
- kindle 资源汇总