生产级Redis Cluster部署
- 环境准备
主机名 |
IP地址 |
端口 |
描述 |
redis-master |
192.168.1.51 |
7000 |
redis-master01 |
7001 |
redis-master02 |
||
7002 |
redis-master03 |
||
redis-slave |
192.168.1.52 |
8000 |
redis-slave01 |
8001 |
redis-slave02 |
||
8002 |
redis-slave03 |
- 初始化环境
两台主机配置主机名,关闭防火墙和selinux
hostname redis-master #修改主机名字
Bash #刷新
iptables -F #关闭防火墙规则
setenforce 0
systemctl stop firewalld
- Redis环境部署
redis编译部署及基础优化(master)
yum -y install wget gcc gcc-c++ make tar openssl openssl-devel cmake
tar xf redis-4.0.10.tar.gz -C /usr/src/ #需有个redis-4.0.10.tar.gz的安装包
cd /usr/src/redis-4.0.10/
make
make MALLOC=jemalloc #避免碎片和可伸缩的并发支持
make PREFIX=/usr/local/redis install
mkdir -p /usr/local/redis/conf
优化redis程序命令(master)
cp sentinel.conf /usr/local/redis/conf/ #redis哨兵配置文件
cp src/redis-trib.rb /usr/local/redis/bin/ #redis-cluster的集群创建工具
ln -s /usr/local/redis/bin/* /usr/local/bin/
redis配置文件精简(master)
cp redis.conf /usr/local/redis/conf/
cd /usr/local/redis/
cp conf/redis.conf{,.bak}
egrep -v "^$|^#" conf/redis.conf.bak > conf/redis.conf
系统调优配置(master)
echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo never > /sys/kernel/mm/transparent_hugepage/defrag
echo 'echo never > /sys/kernel/mm/transparent_hugepage/enabled' >> /etc/rc.local
echo 'echo never > /sys/kernel/mm/transparent_hugepage/defrag' >> /etc/rc.local
echo "* - nofile 10240" >> /etc/security/limits.conf --文件并发数
echo "net.core.somaxconn = 10240" >> /etc/sysctl.conf --监听队列
echo "vm.overcommit_memory = 1" >> /etc/sysctl.conf -- 0内存不够,就会拒绝申请
1物理内存都允许分配给你,只要有内存就给你用,这样可以避免申请内存失败的问题。
sysctl -p
- Redis多实列配置
mkdir -p /data/redis-cluster (#master)
cd /data/redis-cluster
mkdir 7000 7001 7002
cp /usr/local/redis/conf/redis.conf /data/redis-cluster/7000/
cp /usr/local/redis/conf/redis.conf /data/redis-cluster/7001/
cp /usr/local/redis/conf/redis.conf /data/redis-cluster/7002/
在redis-slave从库上操作(slave)
mkdir -p /data/redis-cluster
cd /data/redis-cluster
mkdir 8000 8001 8002
将redis-master的配置文件复制到redis-slave主机上(master) (最好作完下列配置后再远程复制)
scp /data/redis-cluster/7000/redis.conf 192.168.1.52:/data/redis-cluster/8000/
scp /data/redis-cluster/7000/redis.conf 192.168.1.52:/data/redis-cluster/8001/
scp /data/redis-cluster/7000/redis.conf 192.168.1.52:/data/redis-cluster/8002/
修改redis-master和redis-slave的redis.conf配置文件
配置参考模板,修改配置文件的对应端口
vim 7000/redis.conf #红色字体一般都是要修改的 其它基本不要修改
cluster-enabled yes #启动集群这条要自己手动输入进去
bind 0.0.0.0
port 7000
pidfile /data/redis-cluster/7000/redis.pid
logfile "/data/redis-cluster/7000/redis.log"
dir /data/redis-cluster/7000/
tcp-backlog 1024
timeout 0
tcp-keepalive 0
daemonize yes
loglevel notice
databases 16
stop-writes-on-bgsave-error yes
rdbcompression yes
rdbchecksum yes
dbfilename "dump.rdb"