Redis3.2.4 Cluster集群搭建
服务器环境:
192.168.1.105
192.168.1.160
每台服务器搭建3个节点,组成3个主节点,3个从节点的redis集群。
注意:防火墙一定要开放监听的redis端口,否则会创建失败。
一、redis cluster安装
1、下载和编译安装
cd /home/xm6f/dev
wget http://download.redis.io/releases/redis-3.2.4.tar.gz
tar -zxvf redis-3.2..tar.gz
cd redis-3.2./
make && make install
2、创建redis节点
选择2台服务器,分别为:192.168.1.105,192.168.1.160,每台服务器有3个节点,组成3个主节点,3个从节点的redis集群。
a、首先在192.168.1.105创建3个节点:
cd /home/xm6f/dev
mkdir redis_cluster #创建集群目录
cd redis_cluster/
mkdir #分别代表三个节点,对应端口分别为7000、、 #redis.conf拷贝到7000目录
cp redis-3.2./redis.conf redis_cluster//
#redis.conf拷贝到7001目录
cp redis-3.2./redis.conf redis_cluster//
#redis.conf拷贝到7002目录
cp redis-3.2./redis.conf redis_cluster//
b、分别对7000、7001,7002文件夹中的3个redis.conf文件修改对应的配置:
daemonize yes #redis后台运行
pidfile /var/run/redis_7000.pid #pidfile文件对应7000, ,
port #端口7000, ,
cluster-enabled yes #开启集群 把注释#去掉
cluster-config-file nodes_7000.conf #集群的配置 配置文件首次启动自动生成 ,,7002,存在/home/xm6f/dev/redis-3.2.4/src目录
cluster-node-timeout #请求超时,设置5秒即可
appendonly yes #aof日志开启,有需要就开启,它会每次写操作都记录一条日志
logfile "/home/xm6f/dev/redis_cluster/7000/logs/redis.log"
bind 192.168.1.105 #绑定当前服务器的IP,否则的话在集群通信的时候会出现:[ERR] Sorry, can't connect to node 192.168.200.140:7001
dbfilename dump_7000.rdb #存在/home/xm6f/dev/redis-3.2.4/src目录
appendfilename "appendonly_7000.aof" #存在/home/xm6f/dev/redis-3.2.4/src目录
requirepass 123456 #设置密码,每个节点的密码都必须一致的
masterauth 123456
在192.168.1.160创建3个节点:对应的端口改为7003,7004,7005.配置对应的改一下就可以了。
3、两台机器启动各节点(两台服务器方式一样)
cd /home/xm6f/dev/redis-3.2./src
./redis-server ../../redis_cluster//redis.conf &
./redis-server ../../redis_cluster//redis.conf &
./redis-server ../../redis_cluster//redis.conf &
./redis-server ../../redis_cluster//redis.conf &
./redis-server ../../redis_cluster//redis.conf &
./redis-server ../../redis_cluster//redis.conf &
4、查看服务
ps -ef | grep redis #查看是否启动成功
netstat -tnlp | grep redis #可以看到redis监听端口
5、杀死所有redis进程
pkill - redis
二、创建集群
前面已经准备好了搭建集群的redis节点,接下来我们要把这些节点都串连起来搭建集群。官方提供了一个工具:redis-trib.rb(/home/xm6f/dev/redis-3.2.4/src/redis-trib.rb) 看后缀就知道这东西不能直接执行,它是用ruby写的一个程序,所以我们还得安装ruby.
yum -y install ruby ruby-devel rubygems rpm-build
再用 gem 这个命令来安装 redis 接口,gem是ruby的一个工具包。
gem install redis //等一会儿就好了
当然,方便操作,两台Server都要安装。
注意:在执行gem install redis时,报ERROR:Error installing redis:redis requires Ruby version >= 2.2.2异常。
点击此处查看解决方案
上面的步骤完事了,接下来运行一下redis-trib.rb
cd /home/xm6f/dev/redis-3.2./src
./redis-trib.rb
看到这,应该明白了吧,就是靠上面这些操作完成redis集群搭建。
确认所有的节点都启动,接下来使用参数 create 创建 (在192.168.1.160中来创建)
./redis-trib.rb create --replicas 192.168.1.105: 192.168.1.105: 192.168.1.105: 192.168.1.160: 192.168.1.160: 192.168.1.160:
注意:
a、--replicas 1参数表示为每个主节点创建一个从节点,其他参数是实例的地址集合。
b、防火墙一定要开放监听的端口,否则会创建失败。
[root@localhost redis-cluster]#./redis-trib.rb create --replicas 1 192.168.1.105:7000 192.168.1.105:7001 192.168.1.105:7002 192.168.1.160:7003 192.168.1.160:7004 192.168.1.160:7005
>>> Creating cluster
>>> Performing hash slots allocation on 6 nodes...
Using 3 masters:
127.0.0.1:7001
127.0.0.1:7002
127.0.0.1:7003
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
Adding replica 127.0.0.1:7006 to 127.0.0.1:7003
M: dfd510594da614469a93a0a70767ec9145aefb1a 127.0.0.1:7001
slots:0-5460 (5461 slots) master
M: e02eac35110bbf44c61ff90175e04d55cca097ff 127.0.0.1:7002
slots:5461-10922 (5462 slots) master
M: 4385809e6f4952ecb122dbfedbee29109d6bb234 127.0.0.1:7003
slots:10923-16383 (5461 slots) master
S: ec02c9ef3acee069e8849f143a492db18d4bb06c 127.0.0.1:7004
replicates dfd510594da614469a93a0a70767ec9145aefb1a
S: 83e5a8bb94fb5aaa892cd2f6216604e03e4a6c75 127.0.0.1:7005
replicates e02eac35110bbf44c61ff90175e04d55cca097ff
S: 10c097c429ca24f8720986c6b66f0688bfb901ee 127.0.0.1:7006
replicates 4385809e6f4952ecb122dbfedbee29109d6bb234
Can I set the above configuration? (type 'yes' to accept): 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:7001)
M: dfd510594da614469a93a0a70767ec9145aefb1a 127.0.0.1:7001
slots:0-5460 (5461 slots) master
M: e02eac35110bbf44c61ff90175e04d55cca097ff 127.0.0.1:7002
slots:5461-10922 (5462 slots) master
M: 4385809e6f4952ecb122dbfedbee29109d6bb234 127.0.0.1:7003
slots:10923-16383 (5461 slots) master
M: ec02c9ef3acee069e8849f143a492db18d4bb06c 127.0.0.1:7004
slots: (0 slots) master
replicates dfd510594da614469a93a0a70767ec9145aefb1a
M: 83e5a8bb94fb5aaa892cd2f6216604e03e4a6c75 127.0.0.1:7005
slots: (0 slots) master
replicates e02eac35110bbf44c61ff90175e04d55cca097ff
M: 10c097c429ca24f8720986c6b66f0688bfb901ee 127.0.0.1:7006
slots: (0 slots) master
replicates 4385809e6f4952ecb122dbfedbee29109d6bb234
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.
上面显示创建成功,有3个主节点,3个从节点,每个节点都是成功连接状态。
查看集群节点信息:./redis-trib.rb check 192.168.1.105:7002 #任意一个节点即可
[root@localhost src]# ./redis-trib.rb check 192.168.1.105:7002
>>> Performing Cluster Check (using node 192.168.1.105:7002)
S: 910e14d9655a1e6e7fc007e799006d3f0d1cebe5 192.168.1.105:7002
slots: (0 slots) slave
replicates 94f51658302cb5f1d178f14caaa79f27a9ac3703
M: 94f51658302cb5f1d178f14caaa79f27a9ac3703 192.168.1.160:7003
slots:5461-10922 (5462 slots) master
1 additional replica(s)
M: 28a51a8e34920e2d48fc1650a9c9753ff73dad5d 192.168.1.105:7000
slots:0-5460 (5461 slots) master
1 additional replica(s)
M: 6befec567ca7090eb3731e48fd5275a9853fb394 192.168.1.105:7001
slots:10923-16383 (5461 slots) master
1 additional replica(s)
S: 54ca4fbc71257fd1be5b58d0f545b95d65f8f6b8 192.168.1.160:7005
slots: (0 slots) slave
replicates 6befec567ca7090eb3731e48fd5275a9853fb394
S: cf02aa3d58d48215d9d61121eedd194dc5c50eeb 192.168.1.160:7004
slots: (0 slots) slave
replicates 28a51a8e34920e2d48fc1650a9c9753ff73dad5d
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.
以上集群安装成功了。
./redis-trib.rb create --replicas 10.104.111.174: 10.104.111.174: 10.104.111.174: 10.135.172.233: 10.135.172.233: 10.135.172.233:
执行该命令一直出现:Waiting for the cluster to join 一直等待
用 redis-trib.rb check 192.168.18.111:6379 检查,提示 [ERR] Not all 16384 slots are covered by nodes。
解决办法:把创建节点位置换下即可。
./redis-trib.rb create --replicas 10.135.172.233: 10.135.172.233: 10.135.172.233: 10.104.111.174: 10.104.111.174: 10.104.111.174:
执行通过。
Redis3.2.4 Cluster集群搭建的更多相关文章
- Redis Cluster集群搭建与应用
1.redis-cluster设计 Redis集群搭建的方式有多种,例如使用zookeeper,但从redis 3.0之后版本支持redis-cluster集群,redis-cluster采用无中心结 ...
- 重要参考步骤---ProxySQL Cluster 集群搭建步骤
环境 proxysql-1:192.168.20.202 proxysql-2:192.168.20.203 均采用yum方式安装 # cat <<EOF | tee /etc/yum.r ...
- redis 学习笔记(6)-cluster集群搭建
上次写redis的学习笔记还是2014年,一转眼已经快2年过去了,在段时间里,redis最大的变化之一就是cluster功能的正式发布,以前要搞redis集群,得借助一致性hash来自己搞shardi ...
- Redis Cluster集群搭建与配置
Redis Cluster是一种服务器sharding分片技术,关于Redis的集群方案应该怎么做,请参考我的另一篇博客http://www.cnblogs.com/xckk/p/6134655.ht ...
- 【Redis】Redis cluster集群搭建
Redis集群基本介绍 Redis 集群是一个可以在多个 Redis 节点之间进行数据共享的设施installation. Redis 集群不支持那些需要同时处理多个键的 Redis 命令, 因为执行 ...
- Redis Cluster集群搭建<原>
一.环境配置 一台window 7上安装虚拟机,虚拟机中安装的是centos系统. 二.目标 Redis集群搭建的方式有多种,根据集群逻辑的位置,大致可以分为三大类:基于客户端分片的Redis ...
- Ubuntu 16.04下Redis Cluster集群搭建(官方原始方案)
前提:先安装好Redis,参考:http://www.cnblogs.com/EasonJim/p/7599941.html 说明:Redis Cluster集群模式可以做到动态增加节点和下线节点,使 ...
- Redis进阶实践之十一 Redis的Cluster集群搭建
一.引言 本文档只对Redis的Cluster集群做简单的介绍,并没有对分布式系统的详细概念做深入的探讨.本文只是提供了有关如何设置集群.测试和操作集群的说明,而不涉及Redis集群规范中涵 ...
- redis 学习笔记-cluster集群搭建
一.下载最新版redis 编译 目前最新版是3.0.7,下载地址:http://www.redis.io/download 编译很简单,一个make命令即可,不清楚的同学,可参考我之前的笔记: red ...
随机推荐
- C#-VS远程通信
上下文 应用程序内的一套规则.例如使用了begentransaction,就建立了一个规则:再如把synchronization特性应用到某个对象,是多个线程轮流访问这个对象,这也在当前应用产生了一个 ...
- PAT甲级 1130. Infix Expression (25)
1130. Infix Expression (25) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue Give ...
- set_error_handler
set_error_handler这个函数的作用是为了防止错误路径泄露 何为错误路径泄露呢? 我们写程序,难免会有问题,而PHP遇到错误时,就会给出出错脚本的位置.行数和原因 有很多人说,这并没有什么 ...
- Python自动化开发 - 生成器、迭代器
本节内容 1.列表生成式 2.生成器 3.迭代器 一.列表生成式 需求:把列表[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]里,每个元素都加1 # 复制版,重新绑定 a = [0, 1, ...
- 利用Delphi编程控制摄像头(图)
你的电脑有没有摄像头?看到别人用QQ玩视屏你会不会去想怎么实现的?这里介绍使用DELPHI使用MS的 AVICAP32.DLL就可轻松的实现对摄像头编程,如果再加上你的网络编程水平,实现一个视屏聊天就 ...
- 【xcode中添加pch全局引用文件】
前沿:xcode6中去掉了pch,为了一些琐碎的头文件引用,加快了 编译速度! xcode6之前的版本建项目就自动添加了是这样的: xcode6后的版本要自己手动的添加步骤如下: 1) 2) 3) ...
- [ASE][Daily Scrum]11.11
各位1111快乐,不知道大家的卡上还剩多少钱啊~~~ TCP server目前遇到一点小瓶颈,不过server的两个人承诺说明天就可以搞定,给他们加油!~! 今天的plan~ View Shilin ...
- [转载]WIKI MVC模式
MVC模式(Model-View-Controller)是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model).视图(View)和控制器(Controller). MVC模式最 ...
- Rabbit MQ 入门指南
rabbitMQ是一个在AMQP协议标准基础上完整的,可服用的企业消息系统.他遵循Mozilla Public License开源协议.采用 Erlang 实现的工业级的消息队列(MQ)服务器. Ra ...
- AngularJs的MVC模式
在AngularJs也有带有MVC模式.此时你完全可以把html的js中的Controller写到一个外部的js文件中. Ok,在ASP.NET MVC项目,打开Content目录,创建一个新文件夹A ...