Redis集群安装(两台服务器4主4从)
系统环境:两台Centos6.9
redis1:10.0.3.143 端口7001-7004
redis2:10.0.3.144 端口7001-7004
以下命令在两台 Redis 服务器上都要执行(除最后创建集群时)
最好关闭防火墙方便进行
1.ruby 环境安装
yum -y install ruby rubygems
2.gcc 环境安装
yum -y install gcc
3.下载 redis 源代码
(若出现 wget 命令找不到 请执行 yum -y install wget后继续执行)
wget https://download.redis.io/releases/redis-3.2.9.tar.gz
4.解压
tar xzf redis-3.2.9.tar.gz
5.进入解压文件夹中
cd redis-3.2.9
6.编译make
若报错 zmalloc.h:50:31: error: jemalloc/jemalloc.h: No such file ordirectory
则执行make MALLOC=libc
7.执行 创建集群代码
请注意打开对应的防火墙 7001-7004 和 17001-17004 的 tcp input
例如:
-A INPUT -p tcp -m state --state NEW -m tcp --dport 7001 -j ACCEPT
8.执行创建文件夹
mkdir -p /redis-cluster/redis{7001,7002,7003,7004}
9.修改原始文件
修改redis-3.2.9 中的 redis.conf 中的 (61 行)
bind 127.0.0.1为监听 ip
例如:bind 10.0.3.143
10.遍历复制redis.conf配置文件
for dir in /redis-cluster/redis*; do cp -v /redis-3.2.9/redis.conf $dir ; done
11.遍历修改全部集群代码
for dir in /root/redis-cluster/redis*; do myport=`basename $dir|sed 's/[a-zA-Z]*//g'`; sed -r -i "s@^\s*port.*@port $myport@;s@^\s*daemonize.*@daemonize yes@;s@^\s*pidfile.*@pidfile /var/run/redis_$myport.pid@;s@^\s*logfile.*@logfile /var/log/redis_$myport.log@;s@^\s*#?\s*cluster-enabled.*@cluster-enabled yes@;s@^\s*#?\s*cluster-config-file.*@cluster-config-file $dir/nodes-$myport.conf@;s@^\s*#?\s*cluster-node-timeout.*@cluster-node-timeout 15000@;s@^\s*dir.*@dir $dir@;" $dir/redis.conf; done
12.遍历执行启动
for dir in /root/redis-cluster/redis700*; do /redis-3.2.9/src/redis-server $dir/redis.conf ; done
13.查看redis启动进程
ps -ef|grep redis,保证7001-7004redis都已经启动再接下来做集群
14.创建集群
此命令只需在一台服务器上执行(任选)
15.执行安装 gem redis 连接环境
wget https://rubygems.global.ssl.fastly.net/gems/redis-3.2.1.gem
gem install -l ./redis-3.2.1.gem
16.执行命令建立集群
/redis-3.2.9/src/redis-trib.rb create --replicas 1 10.0.3.143:7001 10.0.3.143:7002 10.0.3.143:7003 10.0.3.143:7004 10.0.3.144:7001 10.0.3.144:7002 10.0.3.144:7003 10.0.3.144:7004
17.确认创建
8 个节点会自动分配成四主四从,输入 yes 确认操作即可。
18.检查
执行:/redis-3.2.9/src/redis-cli -c -h 10.0.3.143 -p 7001
查看集群信息:cluster info
查看节点信息:cluster nodes
redis配置文件:find / -name '*nodes*.conf*'
参考链接1:https://blog.csdn.net/zh520qx/article/details/54577753
参考链接2:https://lcryblog.lofter.com/post/1e131973_11d65c3c
参考链接3:https://www.w3cschool.cn/redis/
参考链接4:https://blog.csdn.net/zh520qx/article/details/50977678