计划部署三个虚拟机 三个master节点 三个slave节点: html
IP:192.168.26.133 port:7133(master) port:8133(slave) node
IP:192.168.26.134 port:7134(master) port:8134(slave) redis
IP:192.168.26.135 port:7135(master) port:8135(slave)
ruby
统一安装目录: /home/develop/redis app
安装须要的包 gcc tcl 测试
sudo apt-get install gcc ui
sudo apt-get install tcl spa
建立目录 redis-master redis-slave .net
mkdir redis-master 翻译
mkdir redis-slave
下载redis-3.0.3
wget http://download.redis.io/releases/redis-3.0.3.tar.gz
tar -zxvf redis-3.0.3.tar.gz
192.168.26.133:
mkdir -p /home/develop/redis/cluster/7133
mkdir -p /home/develop/redis/cluster/8133
192.168.26.134:
mkdir -p /home/develop/redis/cluster/7134
mkdir -p /home/develop/redis/cluster/8134
192.168.26.135:
mkdir -p /home/develop/redis/cluster/7135
mkdir -p /home/develop/redis/cluster/8135
cd redis-3.0.3/
三个虚拟机分别执行:
make PREFIX=/home/develop/redis/redis-master install
make PREFIX=/home/develop/redis/redis-slave install
192.168.26.133:
cp redis-3.0.3/redis.conf cluster/7133/redis-7133.conf192.168.26.134:
cp redis-3.0.3/redis.conf cluster/7134/redis-7134.conf192.168.26.135:
cp redis-3.0.3/redis.conf cluster/7135/redis-7135.conf
修改redis-xxxx.conf配置文件
demonize yes 是否做为守护进程运行
pidfile /var/run/redis-7133.pid 其余相应修改成各自端口的
port 7133 监听端口,默认为 6379。 其余节点相应修改成各自端口 8133 7134 8134 7135 8135
cluster-enabled yes 打开集群
cluster-config-flie /home/develop/redis/cluster/7133/nodes.conf 集群配置文件(启动自动生成),不用人为干涉
cluster-node-timeout 15000 节点互连超时时间,毫秒
cluster-migration-bareier 1 数据迁移的副本临界数,这个参数表示的是,一个主节 点在拥有多少个好的从节点的时候就要割让一个从节 点出来给另外一个没有任何从节点的主节点。
cluster-require-full-coverage yes 若是某一些 key space 没有被集群中任何节点覆盖,集 群将中止接受写入。
appendonly yes 启用 aof 持久化方式,由于 redis 自己同步数据文件是按上面 save 条件来同 步的,因此有的数据会在一段时间内只存在于内存中。 默认值为 no
192.168.26.133:
redis-master/bin/redis-server cluster/7133/redis-7133.conf
redis-slave/bin/redis-server cluster/8133/redis-8133.conf
192.168.26.134:
redis-master/bin/redis-server cluster/7134/redis-7134.conf
redis-slave/bin/redis-server cluster/8134/redis-8134.conf
192.168.26.135:
redis-master/bin/redis-server cluster/7135/redis-7135.conf
redis-slave/bin/redis-server cluster/8135/redis-8135.conf
ps -ef | grep redis
安装ruby rubygems
sudo apt-get install ruby
cd ..
wget http://production.cf.rubygems.org/rubygems/rubygems-2.0.3.tgz
tar -zxvf rubygems-2.0.3.tgz
cd rubygems-2.0.3/
sudo ruby setup.rb
sudo gem install redis
执行 Redis 集群建立命令(只须要在其中一个节点上执行一次则可)
cp redis-trib.rb /home/develop/redis/redis-master/bin/redis-trib
cd /home/develop/redis/redis-master/bin/
redis-trib create --replicas 1 192.168.26.133:7133 92.168.26.134:7134 192.168.26.135:7135 192.168.26.133:8133 192.168.26.134:8134 192.168.26.135:8135
中间输入 yes
正常状况提示 All 16384 slots covered.说明集群中的 16384 个槽都有至少一个主节点在处理, 集群运做正常。
集群建立过程说明:
(1) 给定 redis-trib 程序的命令是 create , 这表示咱们但愿建立一个新的集群;
(2) 这里的 --replicas 1 表示每一个主节点下有一个从节点;
(3) 以后跟着的其它参数则是实例的地址列表,程序使用这些地址所指示的实例来建立新集群; 总的来讲,以上命令的意思就是让 redis-trib 程序建立一个包含三个主节点和三个从节点的集群。 接着,redis-trib 会打印出一份预想中的配置给你看,若是你以为没问题的话(注意核对主从关系是不是 你想要的),就能够输入 yes , redis-trib 就会将这份配置应用到集群当中
集群简单测试
127.0.0.1:7113>set name zhangsan
-> Redirected to slot [8559] located at 192.168.26.134:7134 OK
./redis-cli -h 192.168.26.133 -p 8133
127.0.0.1:8113>get name
-> Redirected to slot [8559] located at 192.168.26.134:7134 "zhangsan"
./redis-cli -h 192.168.26.133 -p 7133 cluster nodes
系统列出三个master 三个slave 节点。
OK,配置成功。
参考文档
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 3.0 集群搭建测试(一):http://blog.csdn.net/zhu_tianwei/article/details/44928779
Redis 3.0 集群搭建测试(二):http://blog.csdn.net/zhu_tianwei/article/details/45009647
Redis 集群要点:http://5i.io/redis-3-0-cluster-configuration/