1、概述java
Redis3.0版本以后支持Cluster.node
2、redis cluster安装redis
一、下载和解包vim
cd /usr/local/ wget http://download.redis.io/releases/redis-5.0.5.tar.gz tar -zxvf redis-5.0.5.tar.gz
二、 编译安装ruby
cd redis-5.0.5 make && make install
三、建立redis节点bash
测试咱们选择2台服务器,分别为:192.168.1.237,192.168.1.238.每分服务器有3个节点。服务器
我先在192.168.1.237建立3个节点:app
cd /usr/local/ mkdir redis_cluster //建立集群目录
cd /usr/local/redis_cluster
mkdir 7000 7001 7002 //分别表明三个节点 其对应端口 7000 7001 7002
//建立7000节点为例,拷贝到7000目录 cp /usr/local/redis-5.0.5/redis.conf ./redis_cluster/7000/ //拷贝到7001目录 cp /usr/local/redis-5.0.5/redis.conf ./redis_cluster/7001/ //拷贝到7002目录 cp /usr/local/redis-5.0.5/redis.conf ./redis_cluster/7002/
分别对7001,700二、7003文件夹中的3个文件修改对应的配置post
bind ...//机器ip地址
port 7000 //端口7000,7002,7003
daemonize yes //redis后台运行 pidfile /var/run/redis_7000.pid //pidfile文件对应7000,7002,7003 appendonly yes //aof日志开启 有须要就开启,它会每次写操做都记录一条日志 cluster-enabled yes //开启集群 把注释#去掉 cluster-config-file nodes_7000.conf //集群的配置 配置文件首次启动自动生成 7000,7001,7002 cluster-node-timeout 5000 //请求超时 设置5秒够了
在192.168.1.238建立3个节点:对应的端口改成7003,7004,7005.配置对应的改一下就能够了。测试
把修改后的配置文件,copy到8002-8006,修改第二、三、5项里的端口号,能够用批量替换:
vim redis.config
文件中使用 esc:
:%s/源字符串/目的字符串/g
四、两台机启动各节点(两台服务器方式同样)
cd /usr/local redis-server redis_cluster/7000/redis.conf redis-server redis_cluster/7001/redis.conf redis-server redis_cluster/7002/redis.conf redis-server redis_cluster/7003/redis.conf redis-server redis_cluster/7004/redis.conf redis-server redis_cluster/7005/redis.conf
-bash: redis-server: command not found:
ln -s /usr/local/redis-5.0.5/src/redis-server /usr/bin/redis-server
重启命令:
/usr/local/redis-5.0.5/src/redis-cli -c -h 127.0.0.1 -p 7002 shutdown
五、查看服务
ps -ef | grep redis #查看是否启动成功
netstat -tnlp | grep redis #能够看到redis监听端口
3、建立集群(redis5之前的版本集群是依靠ruby脚本redis-trib.rb实现)
注意防火墙,能够相互访问
redis-5.0.5/src/redis-cli --cluster create --cluster-replicas 1 172.10.0.121:7000 172.10.0.121:7001 172.10.0.121:7002 172.10.0.123:7003 172.10.0.123:7004 172.10.0.123:7005
解释下, --replicas 1 表示 自动为每个master节点分配一个slave节点 上面有6个节点,程序会按照必定规则生成 3个master(主)3个slave(从)
前面已经提醒过的 防火墙必定要开放监听的端口,不然会建立失败。
运行中,提示Can I set the above configuration? (type 'yes' to accept): yes //输入yes
接下来 提示 Waiting for the cluster to join.......... 安装的时候在这里就一直等等等,没反应,傻傻等半天,看这句提示上面一句,Sending Cluster Meet Message to join the Cluster.
这下明白了,我刚开始在一台Server上去配,也是不须要等的,这里还须要跑到Server2上作一些这样的操做。
在127.0.0.1, redis-cli -c -p 700* 分别进入redis各节点的客户端命令窗口, 依次输入 cluster meet 192.168.1.238 7000……
回到Server1,已经建立完毕了。
查看一下 /usr/local/redis/src/redis-cli check 127.0.0.1:7000
到这里集群已经初步搭建好了。
4、测试
1)链接任意一个客户端便可: