Redis6.0安装+哨兵集群搭建

  • Post author:
  • Post category:其他


【基于源码安装Redis】

【系统版本】

CentOS 7.x
Linux version 3.10.0-1062.18.1.el7.x86_64

【检查系统是否安装redis】

ps -ef|grep redis
find / -name redis
netstat -lntp|grep 6379

【检查系统是否安装GCC】

gcc -v
#如果没有安装gcc,执行下面命令
yum -y install gcc automake autoconf libtool make

【redis下载】

mkdir -p /opt/middleware/redis/data
cd /opt/middleware/redis
wget http://download.redis.io/releases/redis-6.2.10.tar.gz
tar -xzvf redis-6.2.10.tar.gz
cd redis-6.2.10
make
#编译成功之后,在src目录,你可以发现,几个redis的类库
#redis-server: Redis服务
#redis-cli 是CLI(命令行接口),可以用来同redis进行通信
#把这些二进制文件安装到目录:/usr/local/bin,运行
cd src && make install
#一旦安装成功之后,你就可以前台启用redis
启动:redis-server
停止:Ctrl+c
#将redis和sentinel的配置文件,放在目录: /etc/redis/
mkdir -p /etc/redis/
cp /opt/middleware/redis/redis-6.2.10/redis.conf /etc/redis/
cp /opt/middleware/redis/redis-6.2.10/sentinel.conf /etc/redis/
#对redis和sentinel的配置文件重命名
cd /etc/redis/
mv redis.conf redis-6379.conf
mv sentinel.conf sentinel-26379.conf

【redis官方推荐,配置属性vm.overcommit_memory的值为1】

#获取vm.overcommit_memory的值,判断该值是否为1。
cat /proc/sys/vm/overcommit_memory
#如果不为1,执行下面命令
echo "vm.overcommit_memory = 1" >> /etc/sysctl.conf
#然后重启系统,或者运行下面命令,激活这个配置
sysctl vm.overcommit_memory=1

【redis和sentinel配置信息】


==【注意】==


==下面的redis,主从节点配置,列出的只是比较重要的配置项。redis还拥有很多


默认配置,实际使用过程中,针对下面列出的配置项,对应redis原配置文件,


逐个去修改==

【redis主节点配置】

#绑定网卡
bind 127.0.0.1
#端口
port 6379
#后台启动
daemonize yes
#pid文件的存储路径
pidfile /var/run/redis_6379.pid
#日志文件的名称
logfile "6379.log"
#redis rdb 持久化
save 3600 1
save 300 100
save 60 10000
#rdb文件名
dbfilename 6379_dump.rdb
#redis工作目录
dir /opt/middleware/redis/data
#设置redis密码
requirepass XXXXX
#主服务器认证密码,当主服务器故障,变为从节点时需要这个配置项
masterauth XXXXX
#禁用危险命令
rename-command KEYS     ""
rename-command FLUSHALL ""
rename-command FLUSHDB  ""
#开启AOF持久化
appendonly yes
#AOF文件名称
appendfilename "appendonly-6379.aof"
#设置最大内存,根据系统内存来决定,推荐设置系统内存的80%
maxmemory 2gb
#过期key的驱逐策略
maxmemory-policy volatile-lru
#启用多线程(根据服务器的实际情况来决定)
io-threads-do-reads yes
#线程数量,如果服务器是4核,线程数量推荐设置为2或3,线程数量最多不超过8
io-threads 2

【Redis从节点配置】

#绑定网卡
bind 127.0.0.1
#端口
port 6380
#后台启动
daemonize yes
#pid文件的存储路径
pidfile /var/run/redis_6380.pid
#日志文件名称
logfile "6380.log"
#redis rdb 持久化
save 3600 1
save 300 100
save 60 10000
#rdb文件名
dbfilename 6380_dump.rdb
#redis工作目录
dir /opt/middleware/redis/data
#配置master的ip和端口
replicaof 127.0.0.1 6379
#主服务器认证密码
masterauth XXXXX
#设置密码,当该从服务器,升级为主服务器时,需要该配置项
requirepass XXXXX
#开启AOF持久化
appendonly yes
#AOF文件名称
appendfilename "appendonly-6380.aof"
#禁用危险命令
rename-command KEYS     ""
rename-command FLUSHALL ""
rename-command FLUSHDB  ""
#副本默认只读
replica-read-only yes
#设置最大内存,根据系统内存来决定,推荐设置系统内存的80%
maxmemory 2gb
#过期key的驱逐策略
maxmemory-policy volatile-lru
#启用多线程(是否启用,根据服务器的实际情况来决定)
io-threads-do-reads yes
#线程数量,如果服务器是4核,线程数量推荐设置为2或3,线程数量最多不超过8
io-threads 2

【redis哨兵配置】

#绑定网卡
bind 127.0.0.1
#端口
port 26379
#后台执行
daemonize yes
#生成pid文件路径和名称
pidfile /var/run/redis-sentinel-26379.pid
#生成日志文件
logfile "sentinel-26379.log"
#sentinel工作目录
dir /opt/middleware/redis/data
#哨兵监控主节点
sentinel monitor mymaster 127.0.0.1 6379 2
#设置认证
sentinel auth-pass mymaster XXXXX

【redis|sentinel启动和故障迁移测试】

redis-server /etc/redis/redis-6379.conf
redis-sentinel /etc/redis/sentinel-26379.conf

【redis-cli连接redis|哨兵集群】

redis-cli -h host -p port
#连接本地redis
redis-cli -p 6379
auth qwe123!@#
#连接哨兵集群
redis-cli -p 26379

【获取哨兵集群主节点】

-- 打印mymaster信息,重点关注三个参数:num-other-sentinels、flags 、num-slaves
sentinel master mymaster
-- 浏览更多的信息,尝试下面的命令
SENTINEL replicas mymaster(提供副本信息)
SENTINEL sentinels mymaster(提供sentinels信息)
-- 获取当前主节点地址
SENTINEL get-master-addr-by-name mymaster

【测试故障迁移】

redis-cli -p 6379 DEBUG sleep 30



版权声明:本文为li18230143817原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。