Redis主从+哨兵+ProxySQL+MGR环境搭建
架构
OS:Centos6.8
Redis01:172.17.100.130
Redis02:172.17.100.131
前置条件
yum install -y gcc openssl libtool
部署Redis(主库)
wget http://download.redis.io/releases/redis-4.0.11.tar.gz
tar -xf redis-4.0.11.tar.gz
cd redis-4.0.11
make
mkdir -p /opt/redis/sbin
mkdir -p /opt/redis/bin –p
mkdir -p /data/redis/redis6379/
cp redis.conf /data/redis/redis6379/6379.conf
cd src
cp redis-se* /opt/redis/sbin/
cp redis-check-aof /opt/redis/bin/
cp redis-cli /opt/redis/bin/
echo "export PATH=\$PATH:/opt/redis/sbin/:/opt/redis/bin/" >> /etc/profile
source /etc/profile
#编辑配置参数
mv /data/redis/redis6379/6379.conf /data/redis/redis6379/redis_conf.bak
vim /data/redis/redis6379/6379.conf
daemonize yes
pidfile /var/run/redis.pid
port 6379
tcp-backlog 511
timeout 0
tcp-keepalive 0
loglevel notice
logfile "/data/redis/6379.log"
databases 16
save 900 1
save 300 10
save 60 10000
stop-writes-on-bgsave-error yes
rdbcompression yes
rdbchecksum yes
dbfilename 6379.rdb
dir /data/redis/redis6379
slave-serve-stale-data yes
slave-read-only yes
repl-disable-tcp-nodelay no
slave-priority 100
maxclients 10000
maxmemory 100M
maxmemory-policy volatile-lru
appendonly yes
appendfilename "6379.aof"
appendfsync everysec
no-appendfsync-on-rewrite no
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
lua-time-limit 5000
slowlog-log-slower-than 10000
slowlog-max-len 128
latency-monitor-threshold 0
notify-keyspace-events ""
hash-max-ziplist-entries 512
hash-max-ziplist-value 64
list-max-ziplist-entries 512
list-max-ziplist-value 64
set-max-intset-entries 512
zset-max-ziplist-entries 128
zset-max-ziplist-value 64
hll-sparse-max-bytes 3000
activerehashing yes
client-output-buffer-limit normal 0 0 0
client-output-buffer-limit slave 256mb 64mb 60
client-output-buffer-limit pubsub 32mb 8mb 60
hz 10
aof-rewrite-incremental-fsync yes
系统参数配置
sed -i -r '/vm.overcommit_memory*/d' /etc/sysctl.conf
sed -i -r '/vm.swappiness*/d' /etc/sysctl.conf
echo "vm.overcommit_memory =1">>/etc/sysctl.conf
echo "vm.swappiness = 1" >>/etc/sysctl.conf
/sbin/sysctl -q -p /etc/sysctl.conf
sed -i -r '/redis soft nofile.*/d' /etc/security/limits.conf
sed -i -r '/redis hard nofile.*/d' /etc/security/limits.conf
echo "redis soft nofile 288000" >>/etc/security/limits.conf
echo "redis hard nofile 288000" >>/etc/security/limits.conf
sed -i -r '/redis soft nproc.*/d' /etc/security/limits.conf
sed -i -r '/redis hard nproc.*/d' /etc/security/limits.conf
echo "redis soft nproc unlimited">>/etc/security/limits.conf
echo "redis hard nproc unlimited">>/etc/security/limits.conf
#(单机验证)启动
redis-server /data/redis/redis6379/6379.conf
![](https://img.haomeiwen.com/i9289816/0b2d9bb1c1b741ed.png)
#关闭
redis-cli shutdown
![](https://img.haomeiwen.com/i9289816/2eb4a860553d532b.png)
Redis从库部署
安装方式和主库一致,主要修改conf
wget http://download.redis.io/releases/redis-4.0.11.tar.gz
tar -xf redis-4.0.11.tar.gz
cd redis-4.0.11
make
mkdir -p /opt/redis/sbin
mkdir -p /opt/redis/bin –p
mkdir -p /data/redis/redis6380/
cd src
cp redis-se* /opt/redis/sbin/
cp redis-check-aof /opt/redis/bin/
cp redis-cli /opt/redis/bin/
echo "export PATH=\$PATH:/opt/redis/sbin/:/opt/redis/bin/" >> /etc/profile
source /etc/profile
修改系统参数
sed -i -r '/vm.overcommit_memory*/d' /etc/sysctl.conf
sed -i -r '/vm.swappiness*/d' /etc/sysctl.conf
echo "vm.overcommit_memory =1">>/etc/sysctl.conf
echo "vm.swappiness = 1" >>/etc/sysctl.conf
/sbin/sysctl -q -p /etc/sysctl.conf
sed -i -r '/redis soft nofile.*/d' /etc/security/limits.conf
sed -i -r '/redis hard nofile.*/d' /etc/security/limits.conf
echo "redis soft nofile 288000" >>/etc/security/limits.conf
echo "redis hard nofile 288000" >>/etc/security/limits.conf
sed -i -r '/redis soft nproc.*/d' /etc/security/limits.conf
sed -i -r '/redis hard nproc.*/d' /etc/security/limits.conf
echo "redis soft nproc unlimited">>/etc/security/limits.conf
echo "redis hard nproc unlimited">>/etc/security/limits.conf
#把主库的6379.conf传输到从库节点上,并修改名字为6380.conf
scp 172.17.100.130:/data/redis/redis6379/6379.conf /data/redis/redis6380/6380.conf
cd /data/redis/redis6380/
sed -i 's/6379/6380/g' 6380.conf
echo “slaveof 172.17.100.130 6379” >> 6380.conf
至此主从redis配置完成
防火墙设置
主库
iptables -I INPUT -p tcp --dport 6379 -j ACCEPT