准备工作
- redis
- gcc
- 主从配置规划
ip | 角色 |
---|---|
192.198.75.136 | master |
192.168.75.137 | slave |
192.168.75.138 | slave |
开始部署
- 官网下载redis源码
- 解压redis安装包,进入目录
tar -zxvf redis-5.0.8
cd redis-5.0.8
- 编译安装到指定位置
# 如果安装失败,选择root用户重试
make PREFIX=/opt/module/redis-5.0.8 install
- 复制配置文件到安装目录
# redis配置文件
cp redis.conf /opt/module/redis-5.0.8/
# 哨兵模式配置文件
cp sentinel.conf /opt/module/redis-5.0.8/
启动redis
./redis-server
常用配置项
配置项 | 默认值 | 描述 |
---|---|---|
daemonize | no | 使用 yes 启用守护进程 |
pidfile | /var/run/redis_6379.pid | 守护进程方式启动时,pid写入的文件 |
bind | 127.0.0.1 | 绑定的主机地址,不设置则允许所有连接 |
port | 6379 | 端口号 |
logfile | 守护进程方式启动时,日志保存的目录,默认为标准输出 | |
loglevel | notice | 日志等级,可能的值 debug verbose notice warning |
save | 900 1 , 300 10 , 60 10000 | 指定在多长时间内,有多少次更新操作,就将数据同步到数据文件 |
dbfilename | dump.rdb | RDB文件名称 |
dir | ./ | AOF、RDB文件保存目录 |
rdbcompression | yes | RDB存储时,是否压缩数据 |
stop-writes-on-bgsave-error | yes | 生成RDB文件出错时,是否停止redis写命令 |
rdbchecksum | yes | 是否校验RDB文件 |
appendonly | no | 是否在每次更新操作后进行日志记录,可以理解为打开AOF功能 |
appendfilename | appendonly.aof | AOF文件名 |
appendfsync | everysec | 同步频率,可能的值 always everysec no ,alway:sredis执行每个写命令时,都同步写入硬盘,everysec :每秒执行一次 , no :让操作系统来决定何时进行同步 |
auto-aof-rewrite-percentage | 100 | 当AOF文件以指定的百分比增加时,自动重写AOF文件,指定0,禁用自动重写 |
auto-aof-rewrite-min-size | 64MB | 和auto-aof-rewrite-percentage配合使用 |
no-appendfsync-on-rewrite | no | AOF自动重写时,阻塞主进程 |
timeout | 0 | 当客户端闲置多长秒后关闭连接,如果指定为 0 ,表示关闭该功能 |
maxclients | 同一时间最大客户端连接数 | |
protected-mode | yes | 安全模式 启动条件有2个, bind没有绑定ip地址 , 没有设置登录密码 |
主从配置
由于redis3.2版本增加了安全模式,所以我们需要设置登录密码,或者直接关闭安全模式(不推荐)
# 关闭安全模式
protected-mode no
ps:关闭后无需下列配置
- master 配置文件修改如下
bind 192.168.75.136
# 设置登录密码
requirepass admin123456
- salve 配置文件修改如下
# 192.168.75.137的配置文件
bind 192.168.75.137
# 设置master的登录密码
masterauth admin123456
# 指定master的地址端口
slaveof 192.168.75.136 6379
# 192.168.75.138的配置文件
bind 192.168.75.138
# 设置master的登录密码
masterauth admin123456
# 指定master的地址端口
slaveof 192.168.75.136 6379
- 配置完成后依次启动服务
- 登录客户端查看配置是否成功
# 如果配置了密码,先执行鉴权命令,否则跳过
auth admin123456
# 查看节点信息
info replication
- 手动故障转移
# 模拟主节点故障
kill -9 14898
# 设置192.168.75.137为主节点
bin/redis-cli -h 192.168.75.137 -p 6379 slaveof no one
#192.168.75.138配置重新连接到新的master
slaveof 192.168.75.137 6379
- 自动故障转移(哨兵模式)
修改配置文件sentinel.conf
配置项 | 默认值 | 描述 |
---|---|---|
daemonize | no | 使用 yes 启用守护进程 |
port | 26379 | 端口号 |
pidfile | /var/run/redis-sentinel.pid | pid文件位置 |
logfile | 日志文件位置 | |
dir | /tmp | 缓存文件目录 |
sentinel monitor | mymaster 127.0.0.1 6379 2 | mymaster :名字自定义, ip:主节点所在ip ,port:主节点所在端口 , 1 代表当一个哨兵认为不可用时,就执行故障转移,可以配置多个哨兵 |
sentinel auth-pass | 安全模式下需要使用的登录密码 master-name 等于sentinel monitor参数定义的名字 |
- 启动哨兵
bin/redis-sentinel sentinel.conf
启动后常见的警告
- 没有指定配置文件
解决方法:启动时,指定配置文件
./redis-server redis.conf