redis-cluster集群单机搭建
闲来无事自己做的关于redis-cluster集群的测试
redis的安装
下载安装包(这里使用的版本是:redis-3.2.9.tar.gz)
cd /home/download
tar -zxvf redis-3.2.9.tar.gz
mv redis-3.2.9 redis
创建所需要的以端口为区别的文件夹
mkdir cluster
cd cluster && mkdir 7000 7001 7002 7003 7004 7005
cd /home/download/redis
cp redis.conf /home/download/cluster/7000
修改7000里面的配置文件
vim /home/download/cluster/7000/redis.conf
修改以下几项
port 7000
daemonize yes
cluster-enabled yes
cluster-config-file nodes-7000.conf
cluster-node-timeout 5000
appendonly yes
分别复制到其余的文件夹下面,修改端口号和文件名称一样
安装集群管理插件
redis-3.2.1.gem 网上下载一个 我这不是最新版本的
yum install ruby rubygems -y
gem install -l redis-3.2.1.gem
分别启动6个redis
cd /home/download/redis/src
./redis-server /home/download/cluster/7000/redis.conf
./redis-server /home/download/cluster/7001/redis.conf
./redis-server /home/download/cluster/7002/redis.conf
./redis-server /home/download/cluster/7003/redis.conf
./redis-server /home/download/cluster/7004/redis.conf
./redis-server /home/download/cluster/7005/redis.conf
检查启动情况
pa-ef | grep redis
root 49131 1 0 Jul29 ? 00:01:03 ./redis-server 127.0.0.1:7000 [cluster]
root 49136 1 0 Jul29 ? 00:01:03 ./redis-server 127.0.0.1:7001 [cluster]
root 49140 1 0 Jul29 ? 00:01:03 ./redis-server 127.0.0.1:7002 [cluster]
root 49257 1 0 Jul29 ? 00:01:03 ./redis-server 127.0.0.1:7003 [cluster]
root 49261 1 0 Jul29 ? 00:01:03 ./redis-server 127.0.0.1:7004 [cluster]
root 49265 1 0 Jul29 ? 00:01:03 ./redis-server 127.0.0.1:7005 [cluster]
root 76733 75739 0 20:49 pts/2 00:00:00 grep --color=auto redis-server
创建集群
./redis-trib.rb create --replicas 1 127.0.0.1:7000 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005
(上面的‘1’表示为主的创建一个slave的)
>>> Creating cluster
>>> Performing hash slots allocation on 6 nodes...
Using 3 masters:
127.0.0.1:7000
127.0.0.1:7001
127.0.0.1:7002
Adding replica 127.0.0.1:7003 to 127.0.0.1:7000
Adding replica 127.0.0.1:7004 to 127.0.0.1:7001
Adding replica 127.0.0.1:7005 to 127.0.0.1:7002
M: a08504e2272ddcb9383baf4258bd016d2161d260 127.0.0.1:7000
slots:0-5460 (5461 slots) master
M: c5ec423721e193f1abb5926194189068d71f2966 127.0.0.1:7001
slots:5461-10922 (5462 slots) master
M: e5db2e4845b7869dcbfbbc45bdf6ef22f1187867 127.0.0.1:7002
slots:10923-16383 (5461 slots) master
S: 37e0303c6eb605df80c10de82c4bd8d2f85ae80f 127.0.0.1:7003
replicates a08504e2272ddcb9383baf4258bd016d2161d260
S: 71518be19ddd2a2ae53fe0f88112897654eb56de 127.0.0.1:7004
replicates c5ec423721e193f1abb5926194189068d71f2966
S: a46dd45983767cc4e50d60baf99e2a9f304d740f 127.0.0.1:7005
replicates e5db2e4845b7869dcbfbbc45bdf6ef22f1187867
Can I set the above configuration? (type 'yes' to accept): yes
会打印出以上内容,输入yes
>>> Nodes configuration updated
>>> Assign a different config epoch to each node
>>> Sending CLUSTER MEET messages to join the cluster
Waiting for the cluster to join....
>>> Performing Cluster Check (using node 127.0.0.1:7000)
M: a08504e2272ddcb9383baf4258bd016d2161d260 127.0.0.1:7000
slots:0-5460 (5461 slots) master
1 additional replica(s)
M: c5ec423721e193f1abb5926194189068d71f2966 127.0.0.1:7001
slots:5461-10922 (5462 slots) master
1 additional replica(s)
S: 71518be19ddd2a2ae53fe0f88112897654eb56de 127.0.0.1:7004
slots: (0 slots) slave
replicates c5ec423721e193f1abb5926194189068d71f2966
S: a46dd45983767cc4e50d60baf99e2a9f304d740f 127.0.0.1:7005
slots: (0 slots) slave
replicates e5db2e4845b7869dcbfbbc45bdf6ef22f1187867
M: e5db2e4845b7869dcbfbbc45bdf6ef22f1187867 127.0.0.1:7002
slots:10923-16383 (5461 slots) master
1 additional replica(s)
S: 37e0303c6eb605df80c10de82c4bd8d2f85ae80f 127.0.0.1:7003
slots: (0 slots) slave
replicates a08504e2272ddcb9383baf4258bd016d2161d260
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.
致此,搭建成功
测试可用redis-cli -c -p 7001
127.0.0.1:7001> set name ceshi
OK
127.0.0.1:7001> get name
"ceshi"
查看主从信息
[root@localhost src]# redis-cli -p 7000 cluster nodes
c5ec423721e193f1abb5926194189068d71f2966 127.0.0.1:7001 master - 0 1501473285629 2 connected 5461-10922
71518be19ddd2a2ae53fe0f88112897654eb56de 127.0.0.1:7004 slave c5ec423721e193f1abb5926194189068d71f2966 0 1501473285120 5 connected
a08504e2272ddcb9383baf4258bd016d2161d260 127.0.0.1:7000 myself,master - 0 0 1 connected 0-5460
a46dd45983767cc4e50d60baf99e2a9f304d740f 127.0.0.1:7005 slave e5db2e4845b7869dcbfbbc45bdf6ef22f1187867 0 1501473284107 6 connected
e5db2e4845b7869dcbfbbc45bdf6ef22f1187867 127.0.0.1:7002 master - 0 1501473282077 3 connected 10923-16383
37e0303c6eb605df80c10de82c4bd8d2f85ae80f 127.0.0.1:7003 slave a08504e2272ddcb9383baf4258bd016d2161d260 0 1501473283091 4 connected
[root@localhost src]# redis-cli -c -p 7005
127.0.0.1:7005> get name
-> Redirected to slot [5798] located at 127.0.0.1:7001
"ceshi"
127.0.0.1:7001> exit
[root@localhost src]# redis-cli -c -p 7002
127.0.0.1:7002> get name
-> Redirected to slot [5798] located at 127.0.0.1:7001
"ceshi"
127.0.0.1:7001> exit
[root@localhost src]#
断点测试
去掉7000redis
[root@localhost src]# ./redis-cli -c -p 7004
127.0.0.1:7004> get name
"ceshi"
127.0.0.1:7004>
可以取到值,再次查看状态信息
[root@localhost src]# ./redis-cli -p 7004 cluster nodes
71518be19ddd2a2ae53fe0f88112897654eb56de 127.0.0.1:7004 myself,master - 0 0 7 connected 5461-10922
c5ec423721e193f1abb5926194189068d71f2966 127.0.0.1:7001 slave 71518be19ddd2a2ae53fe0f88112897654eb56de 0 1501473934812 7 connected
37e0303c6eb605df80c10de82c4bd8d2f85ae80f 127.0.0.1:7003 master - 0 1501473937837 8 connected 0-5460
e5db2e4845b7869dcbfbbc45bdf6ef22f1187867 127.0.0.1:7002 master - 0 1501473936828 3 connected 10923-16383
a08504e2272ddcb9383baf4258bd016d2161d260 127.0.0.1:7000 master,fail - 1501473837708 1501473836698 1 disconnected
a46dd45983767cc4e50d60baf99e2a9f304d740f 127.0.0.1:7005 slave e5db2e4845b7869dcbfbbc45bdf6ef22f1187867 0 1501473938843 6 connected
再次启动7000redis
./redis-server /usr/local/src/cluster/7000/redis.conf
[root@localhost src]# ./redis-cli -p 7004 cluster nodes
71518be19ddd2a2ae53fe0f88112897654eb56de 127.0.0.1:7004 myself,master - 0 0 7 connected 5461-10922
c5ec423721e193f1abb5926194189068d71f2966 127.0.0.1:7001 slave 71518be19ddd2a2ae53fe0f88112897654eb56de 0 1501474156543 7 connected
37e0303c6eb605df80c10de82c4bd8d2f85ae80f 127.0.0.1:7003 master - 0 1501474159068 8 connected 0-5460
e5db2e4845b7869dcbfbbc45bdf6ef22f1187867 127.0.0.1:7002 master - 0 1501474156038 3 connected 10923-16383
a08504e2272ddcb9383baf4258bd016d2161d260 127.0.0.1:7000 slave 37e0303c6eb605df80c10de82c4bd8d2f85ae80f 0 1501474157049 8 connected
a46dd45983767cc4e50d60baf99e2a9f304d740f 127.0.0.1:7005 slave e5db2e4845b7869dcbfbbc45bdf6ef22f1187867 0 1501474158057 6 connected
可以看到已经自动成为slave了
转载于:https://blog.51cto.com/11432799/1968421
redis-cluster集群单机搭建相关推荐
- Redis Cluster集群的搭建与实践[转]
Redis Cluster集群的搭建与实践 Redis Cluster集群 一.redis-cluster设计 Redis集群搭建的方式有多种,例如使用zookeeper等,但从redis 3.0之后 ...
- Redis Cluster集群的搭建与实践
Redis Cluster集群 一.redis-cluster设计 Redis集群搭建的方式有多种,例如使用zookeeper等,但从redis 3.0之后版本支持redis-cluster集群,Re ...
- Docker redis cluster集群的搭建
首先选择redis版本,目前最新是5.0, 5.0版本集群的创建工具是c语言写的,直接用redis-cli命令,不依赖于ruby, 如果是4.0版本,创建集群需要用到ruby脚本:redis-trib ...
- Ubuntu 16.04下Redis Cluster集群搭建(官方原始方案)
前提:先安装好Redis,参考:http://www.cnblogs.com/EasonJim/p/7599941.html 说明:Redis Cluster集群模式可以做到动态增加节点和下线节点,使 ...
- centos7 docker-compose安装_Docker Compose 搭建 Redis Cluster 集群环境
在前文<Docker 搭建 Redis Cluster 集群环境>中我已经教过大家如何搭建了,本文使用 Docker Compose 再带大家搭建一遍,其目的主要是为了让大家感受 Dock ...
- redis映射的概念_搭建分布式Redis Cluster集群与Redis入门
目录 Redis 集群搭建Redis 是啥集群(Cluster)Redis Cluster 说明Redis Cluster 节点Redis Cluster 集群模式不能保证一致性创建和使用 Redis ...
- Docker搭建3主3从Redis Cluster集群
本文使用镜像由慕课网的神思者老师提供 本文使用镜像是已经配置好了的Redis镜像, 如果需要自定义可修改配置文件或用官方Redis镜像进行部署 1. 拉取配置好的Redis镜像 docker pull ...
- redis集群扩容和缩容_深入理解Redis Cluster集群
一.背景 前面的文章<深入理解Redis哨兵机制>一文中介绍了Redis哨兵集群的工作原理,哨兵集群虽然满足了高可用的特性,但是依然存在这样的问题:即数据只能往一个主节点上进行写入. 只能 ...
- Redis Cluster 集群扩容与收缩
2019独角兽企业重金招聘Python工程师标准>>> Redis Cluster 集群伸缩 1. 伸缩原理 Redis提供了灵活的节点扩容和收缩方案.在不影响集群对外服务的情况下, ...
- redis cluster 集群 HA 原理和实操(史上最全、面试必备)
文章很长,建议收藏起来慢慢读!疯狂创客圈总目录 语雀版 | 总目录 码云版| 总目录 博客园版 为您奉上珍贵的学习资源 : 免费赠送 经典图书:<Java高并发核心编程(卷1)> 面试必备 ...
最新文章
- 94年出生,如今985高校博士生导师!
- 面试官问:请拿出一段体现你水平的代码,我该如何回答?
- c 反编译工具_App安全检测实践基础——工具篇
- golang 标准库间依赖的可视化展示
- 省编码市编码区县编码_无浪费编码
- Spark Streaming ReceiverTracker架构设计
- C# 英文系统上中文 string 显示乱码
- zTree动态添加节点
- 苹果x人脸识别突然失灵_iPhone手机触摸屏失灵怎么办?成都苹果维修点教你轻松解决...
- 甘超波:NLP信念系统
- 易简无人机巡检照片处理系统(一) —— 巡检作业流程
- 【EXLIBRIS】随笔记 004
- VAE 中后验坍塌问题
- 菜鸟之如何让项目跑起来(适合小白看,不是小白的不要进来看了,浪费时间)
- Python爬取猪八戒网站
- Discuz! X搬家说明
- 【python实现网络爬虫(4)】实习僧网站信息爬取(字体反爬虫破解)
- 三种方法求递归算法的时间复杂度(递推,master定理,递归树)
- 开发通用资料——英文缩写
- Macbook Pro睡眠后频繁唤醒