redis集群搭建
因为环境的问题,我这里仅仅是一台虚拟机。搭建一个3主3从的redis集群
一:下载最新版redis https://redis.io/download
二:将redis-x.x.x.tar.gz 解压至自己目录下。 tar -xf redis-x.x.x.tar.gz
编译源码,进入redis根目录。 make编译源码,make install(make PREFIX=/usr/local/redis install)安装服务,安装完成后 出现 redis-server操作;
三:进入redis目录下,修改配置文件
- bind 192.168.13.128 //此配置绑定redis服务器(其实就是访问地址) ,可配置多个 如 bind 192.168.13.128 127.0.0.1,若开启集群模式,则bind 的配置必须按照 bind 机器ip 127.0.0.1,不能改成 bind 127.0.0.1 机器Ip,这是一个坑
- port 7000 //redis的访问端口
- timeout 60 //客户端等待60秒无响应后自动断开,0表示永不关闭
- tcp-keepalive 0 //每隔多长时间检测客户端的状态,若客户端挂掉,则断开次客户端
- daemonize yes //此项开启后,可以通过后台的形式,启动redis,启动方式不变,仍是 redis-server redis.conf; 若值设置为no,则执行redis-server redis.conf时,控制台会卡住不动,不方便后续操作;
- pidfile /home/songxiaohu/tools/7000/redis_7000.pid //进程文件路径
- logfile "/home/songxiaohu/tools/7000/log_7000.log" //redis活动日志文件,包括启动,关闭,主从信息的同步信息,活动过程异常信息都会存在于此
- save 900 1 //快照同步频率;若设置为 save "" ,则关闭快照
- dir "/home/songxiaohu/tools/7000/" //redis的持久化文件所在路径
- masterauth xxxxx //redis主节点密码
- requirepass xxxxx //redis访问节点,masterauth和requirepass密码需保持一致
- appendonly yes //开启aof的持久化模式
- appendfsync always //redis缓冲区和aof持久化文件实时同步,每次写入都会讲缓冲区数据同步到aof持久化文件中
- cluster-enabled yes //开启集群模式,搭建redis集群这个必须设置yes
- cluster-config-file nodes-7000.conf//节点的一些信息
- cluster-node-timeout 5000
- protected-mode no //是否允许外网访问,no是不允许
以上是redis集群的相关配置。更详细的参数说明,参考 https://www.jianshu.com/p/797099257c30
做好配置文件后,将配置文件在copy出来5分,共有6份配置,注意修改配置中带有7000的配置,改成 7000,7001,7002,7003,7004,7005,7006.注意mkdir 相应的目录。
新版本的集群构建使用redis-cli,语法如:
./redis-cli --cluster create 192.168.101.186:7000 192.168.101.186:7001 192.168.101.187:7002 192.168.101.187:7003 192.168.101.188:7004 192.168.101.188:7005 --cluster-replicas 1 -a 123456
针对redis部署过程中的问题
echo "vm.overcommit_memory=1" > /etc/sysctl.conf &&
sysctl vm.overcommit_memory=1 &&
echo 511 > /proc/sys/net/core/somaxconn &&
echo never > /sys/kernel/mm/transparent_hugepage/enabled &&
ulimit -n 10032