1. 环境准备
1.1. 硬件配置
标准化项 | 说明 | 备注 |
---|---|---|
IO设置 | 写策略设置Write Back,禁用Write Through | |
IO子系统设置 | 使用Raid1+0 | 若采用PCIe-SSD,则可不用做Raid |
关闭物理磁盘cache,防止丢数据 | ||
写策略设置Write Back,禁用Write Through | ||
关闭预读,使得宝贵的cahce用来作为写缓存 | ||
BIOS标准设置 | 开启最大性能模式,选择DAPC或者选择Performance模式 | 不同的主板配置上有差异 |
Memory Frequency(内存频率)选择Maximum Performance模式 | 不同的主板配置上有差异 | |
关闭NUMA | 不同的主板配置上有差异 | |
文件系统 | 数据存储文件系统类型建议EXT4格式 | 该项不做强制要求XFS类型也可以 |
网络配置 | 使用mode=4模式的网卡绑定 | 双网卡连接不同的交换机,交换机上需要做适配 |
数据挂载目录 | /data | Redis数据库实例的所有文件全部存放在/data目录下; |
1.2. 操作系统软件包&第三方工具
软件包 | 说明 | 备注 |
---|---|---|
gcc | 至少是C89兼容的 | |
GNU make | 版本3.80及以上 | |
tar | 解压源码包时用到的tar解压工具 |
1.3. 关闭SELINUX
临时禁用selinux:
# setenforce 0
# more /etc/selinux/config | grep -Ev "$|[#;]"
永久禁用selinux:
# vi /etc/selinux/config
将
SELINUX= enforcing
修改为
SELINUX=disabled
:x保存退出
1.4. 配置防火墙
如需要禁用防火墙,可执行如下命令:
1)若是CentOS 7.x系统,可执行如下命令禁用防火墙:
关闭防火墙:
# systemctl stop firewalld.service
禁用防火墙开机自启:
# systemctl disable firewalld.service
查看防火墙状态:
# systemctl status firewalld.service
2)若是Ubuntu系统,可执行如下命令禁用防火墙:
# iptables -P INPUT ACCEPT
3)其他系统禁用防火墙命令,请自行查找。
如需配置防火墙规则,可参照如下示例:
# vim /etc/iptables.rules
*filter
:INPUT ACCEPT [3715:523951]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [1925:209933]
-A INPUT -i lo -j ACCEPT
#允许ssh端口通过
-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
#允许icmp
-A INPUT -p icmp -j ACCEPT
#允许Redis服务器间互通,即Redis服务器间可互相访问Redis端口为2011~2012的Redis实例
-A INPUT -s 192.168.111.111/24 -p tcp -m state --state NEW -m tcp --dport 2011:2012 -j ACCEPT
-A INPUT -s 192.168.111.112/24 -p tcp -m state --state NEW -m tcp --dport 2011:2012 -j ACCEPT
-A INPUT -s 192.168.111.113/24 -p tcp -m state --state NEW -m tcp --dport 2011:2012 -j ACCEPT
#运行其他服务器访问Redis,如允许172.172.122.222服务器访问本地Redis端口为2011~2012的Redis实例
-A INPUT -s 172.172.122.222/32 -p tcp -m state --state NEW -m tcp --dport 2011:2012 -j ACCEPT
#暴露本地22201服务端口
-A INPUT -p tcp -m tcp --dport 22201 -j ACCEPT
-A INPUT -m state --state ESTABLISHED -j ACCEPT
COMMIT
防火墙规则配置完毕后,将配置文件导入:
# iptables-restore < /etc/iptables.rules
导入防火墙规则配置文件后,打开防火墙:
# iptables -P INPUT DROP
如需要开机自动恢复规则,把恢复命令添加到启动脚本:
# echo '/sbin/iptables-restore < /etc/iptables.rules' >>/etc/rc.local
# echo '/sbin/iptables -P INPUT DROP' >>/etc/rc.local
# cat /etc/rc.local
1.5. 优化系统参数
编辑系统配置文件sysctl.conf:
# vim /etc/sysctl.conf
vm.overcommit_memory=1
vm.swappiness = 0
net.core.somaxconn = 1024
net.ipv4.tcp_timestamps = 0
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 0
net.ipv4.tcp_fin_timeout = 30
net.nf_conntrack_max = 655350
net.ipv4.ip_local_port_range = 1024 65000
net.ipv4.ip_local_reserved_ports = 2011-2012,12011
^: net.ipv4.tcp_tw_reuse设置为1表示开启重用,允许将TIME-WAIT sockets重新用于新的TCP连接,默认为0,表示关闭。
装载ip_conntrack模块:
# modprobe ip_conntrack
载入sysctl配置文件:
# sysctl -p
1.6. 修改hugepage配置
临时禁用hugepage:
# echo 'never' > /sys/kernel/mm/transparent_hugepage/enabled
为了使机器重启后THP配置依然生效,可以在/etc/rc.local中追加:
# echo '/bin/echo never > /sys/kernel/mm/transparent_hugepage/enabled' >> /etc/rc.local
2. 部署Redis实例
2.1. 节点信息
IP地址 | 规划 |
---|---|
192.168.111.111 | 此服务器上部署两个实例,端口为2011的Redis实例、端口为2012的Redis实例 |
192.168.111.112 | 此服务器上部署两个实例,端口为2011的Redis实例、端口为2012的Redis实例 |
192.168.111.113 | 此服务器上部署两个实例,端口为2011的Redis实例、端口为2012的Redis实例 |
2.2. 创建安装目录
规划目录:
# mkdir -p /data/third_party/redis/2011/{bin,data,run,logs,conf}
# mkdir -p /data/third_party/redis/2002/{bin,data,run,logs,conf}
路径 | 说明 |
---|---|
/data/third_party/redis/2011/bin | Redis实例安装目录(二进制解压包),安装介质目录只存放安装介质,目录名:$port/bin,不存放任何配置文件、数据文件等。 |
/data/third_party/redis/2011/data | Redis实例数据文件目录 |
/data/third_party/redis/2011/run | 存放Redis实例的redis.pid和数据库启停脚本等 |
/data/third_party/redis/2011/logs | 存放Redis实例的日志、哨兵日志等 |
/data/third_party/redis/2011/conf | 存放Redis实例的参数文件 |
2.3. 安装Redis实例
2.3.1. 安装依赖包
# apt-get install make
# apt-get install gcc
2.3.2. 下载安装包、编译安装
# wget http://download.redis.io/releases/redis-4.0.14.tar.gz
# cp redis-4.0.14.tar.gz /data/third_party/redis/2011/bin/
# cd /data/third_party/redis/2011/bin/
# tar zxvf redis-4.0.14.tar.gz -C ./
# cd redis-4.0.14
# make MALLOC=libc
2.4. 配置Redis实例的参数
2.4.1. 编辑示例文件
# vim /data/third_party/redis/2011/conf/6379.conf
daemonize yes
pidfile "/data/third_party/redis/2011/run/2011.pid"
logfile "/data/third_party/redis/2011/logs/2011.log"
port 2011
dbfilename "dump-2011.rdb"
dir "/data/third_party/redis/2011/data"
tcp-backlog 511
timeout 0
tcp-keepalive 0
loglevel notice
databases 16
repl-backlog-size 100mb
min-slaves-max-lag 10
#save 900 1
#save 300 10
#save 60 10000
save ""
maxmemory 31005464653
maxmemory-policy allkeys-lru
protected-mode no
bind 0.0.0.0
stop-writes-on-bgsave-error yes
rdbcompression yes
rdbchecksum yes
slave-serve-stale-data yes
slave-read-only yes
repl-diskless-sync no
repl-diskless-sync-delay 5
repl-disable-tcp-nodelay no
slave-priority 100
appendonly no
appendfilename "appendonly-2011.aof"
appendfsync no
no-appendfsync-on-rewrite no
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
aof-load-truncated yes
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 1024mb 512mb 60
client-output-buffer-limit pubsub 32mb 8mb 60
hz 10
aof-rewrite-incremental-fsync yes
maxclients 10000
# masterauth "hust4400"
# requirepass "hust4400"
rename-command KEYS XXXX-KEYS
rename-command FLUSHALL XXXX-FLUSHALL
rename-command FLUSHDB XXXX-FLUSHDB
2.4.2. 批量生成配置文件
编辑脚本cp_conf.sh:
# vim /data/third_party/redis/2011/conf/cp_conf.sh
#!/bin/bash
for ((i=2011;$i <= 2012; i=$i+1))
{
cd /data/third_party/redis/2011/conf
cp 6379.conf $i.conf
sed -i "s,2011,$i,g" $i.conf
sleep 1
}
执行脚本,批量生成多个配置文件:
# chmod +x /data/third_party/redis/2011/conf/cp_conf.sh
# sh /data/third_party/redis/2011/conf/cp_conf.sh
删除单机配置文件6379.conf和脚本:
# rm -rf /data/third_party/redis/2011/conf/6379.conf
# rm -rf /data/third_party/redis/2011/conf/cp_conf.sh
检查配置文件参数:
# for((i=2011;i<=2012;i++));do grep -E 'tcp-keepalive|appendfsync' /data/third_party/redis/2011/conf/$i.conf;done
2.5. 配置环境变量
编辑profile配置文件
# vim /etc/profile
...
unset i
unset -f pathmunge
export LD_LIBRARY_PATH=./
ulimit -SHn 655350
REDIS_HOME=/data/third_party/redis
export REDIS_HOME
PATH=PATH:REDIS_HOME/bin
执行如下命令,使配置的环境变量在当前终端立即生效:
# source /etc/profile
2.6. 启动Redis实例
启动Redis实例:
# redis-server /data/third_party/redis/2011/conf/2011.conf
# redis-server /data/third_party/redis/2011/conf/2012.conf
查看Redis实例进程信息:
# ps -ef|grep -v grep|grep "redis-server 0.0.0.0:201"
3. 配置Redis复制
3.1. Redis节点规划
Redis主节点 | Redis从节点 | 备注 |
---|---|---|
192.168.111.112:2011 | 192.168.111.111:2012 | 第一组复制 |
192.168.111.113:2011 | 192.168.111.112:2012 | 第二组复制 |
192.168.111.111:2011 | 192.168.111.113:2012 | 第三组复制 |
3.2. 配置Redis节点复制关系
# redis-cli -h 192.168.111.111 -p 2012 slaveof 192.168.111.112 2011
# redis-cli -h 192.168.111.112 -p 2012 slaveof 192.168.111.113 2011
# redis-cli -h 192.168.111.113 -p 2012 slaveof 192.168.111.111 2011
3.3. 查看Redis节点角色
# for((i=2011;i<=2012;i++));do echo "==========192.168.111.113 : ${i}=========="; redis-cli -h 192.168.111.113 -p ${i} role; done
# for((i=2011;i<=2012;i++));do echo "==========192.168.111.112 : ${i}=========="; redis-cli -h 192.168.111.112 -p ${i} role; done
# for((i=2011;i<=2012;i++));do echo "==========192.168.111.111 : ${i}=========="; redis-cli -h 192.168.111.111 -p ${i} role; done
3.4. 配置Redis节点的maxmemory
可根据需要,配置Redis节点的最大内存:
批量配置Redis节点的最大内存:
# for((i=6511;i<=6514;i++));do echo "==========192.168.111.113 : ${i}=========="; redis-cli -h 192.168.111.113 -p ${i} config set maxmemory 10G; done
# for((i=6511;i<=6514;i++));do echo "==========192.168.111.112 : ${i}=========="; redis-cli -h 192.168.111.112 -p ${i} config set maxmemory 10G; done
# for((i=6511;i<=6514;i++));do echo "==========192.168.111.111 : ${i}=========="; redis-cli -h 192.168.111.111 -p ${i} config set maxmemory 10G; done
查看配置是否正确:
# for((i=6511;i<=6514;i++));do echo "==========192.168.111.113 : ${i}=========="; redis-cli -h 192.168.111.113 -p ${i} config get maxmemory; done
# for((i=6511;i<=6514;i++));do echo "==========192.168.111.112 : ${i}=========="; redis-cli -h 192.168.111.112 -p ${i} config get maxmemory; done
# for((i=6511;i<=6514;i++));do echo "==========192.168.111.111 : ${i}=========="; redis-cli -h 192.168.111.111 -p ${i} config get maxmemory; done
持久化至配置文件:
# for((i=6511;i<=6514;i++));do echo "==========192.168.111.113 : ${i}=========="; redis-cli -h 192.168.111.113 -p ${i} config rewrite; done
# for((i=6511;i<=6514;i++));do echo "==========192.168.111.112 : ${i}=========="; redis-cli -h 192.168.111.112 -p ${i} config rewrite; done
# for((i=6511;i<=6514;i++));do echo "==========192.168.111.111 : ${i}=========="; redis-cli -h 192.168.111.111 -p ${i} config rewrite; done
4. 部署哨兵
ps -ef |grep redis-sentinel | grep -v grep | awk '{print $2}' | xargs kill -9
4.1. 编辑哨兵文件
编辑配置文件sentinel.conf:
# vim /data/third_party/redis/2011/conf/sentinel.conf
port 12011
daemonize yes
dir "/data/third_party/redis/2011/data"
pidfile "/data/third_party/redis/2011/run/sentinel.pid"
loglevel notice
logfile "/data/third_party/redis/2011/logs/sentinel.log"
protected-mode no
sentinel monitor test_sentinel_g1 192.168.111.111 2011 2
sentinel down-after-milliseconds test_sentinel_g1 10000
sentinel failover-timeout test_sentinel_g1 60000
sentinel monitor test_sentinel_g2 192.168.111.112 2011 2
sentinel down-after-milliseconds test_sentinel_g2 10000
sentinel failover-timeout test_sentinel_g2 60000
sentinel monitor test_sentinel_g3 192.168.111.113 2011 2
sentinel down-after-milliseconds test_sentinel_g3 10000
sentinel failover-timeout test_sentinel_g3 60000
4.2. 启动哨兵
启动哨兵
# redis-sentinel /data/third_party/redis/2011/conf/sentinel.conf
查看哨兵进程
# ps -ef| grep redis-sentinel| grep 12011|grep -v grep
4.3. 查看哨兵集群
查看监控主实例:
# redis-cli -p 12011 info sentinel
Sentinel
sentinel_masters:3
sentinel_tilt:0
sentinel_running_scripts:0
sentinel_scripts_queue_length:0
sentinel_simulate_failure_flags:0
master0:name=test_sentinel_g1,status=ok,address=192.168.111.111:2011,slaves=1,sentinels=3
master1:name=test_sentinel_g3,status=ok,address=192.168.111.113:2011,slaves=1,sentinels=3
master2:name=test_sentinel_g2,status=ok,address=192.168.111.112:2011,slaves=1,sentinels=3
获取监视同一主服务器的其他所有Sentinel的相关信息
# redis-cli -p 12011 SENTINEL sentinels test_sentinel_g1
1) 1) "name"
2) "909a7acb5c0f0ba8bdd5e8cc232cafb8ed481460"
3) "ip"
4) "192.168.111.112"
5) "port"
6) "12011"
7) "runid"
8) "909a7acb5c0f0ba8bdd5e8cc232cafb8ed481460"
9) "flags"
10) "sentinel"
11) "link-pending-commands"
12) "0"
13) "link-refcount"
14) "3"
15) "last-ping-sent"
16) "0"
17) "last-ok-ping-reply"
18) "248"
19) "last-ping-reply"
20) "248"
21) "down-after-milliseconds"
22) "10000"
23) "last-hello-message"
24) "1888"
25) "voted-leader"
26) "?"
27) "voted-leader-epoch"
28) "0"
2) 1) "name"
2) "abebbd7a52d83b0ee3ca60bfc1d3efc88dff8404"
3) "ip"
4) "192.168.111.111"
5) "port"
6) "12011"
7) "runid"
8) "abebbd7a52d83b0ee3ca60bfc1d3efc88dff8404"
9) "flags"
10) "sentinel"
11) "link-pending-commands"
12) "0"
13) "link-refcount"
14) "3"
15) "last-ping-sent"
16) "0"
17) "last-ok-ping-reply"
18) "248"
19) "last-ping-reply"
20) "248"
21) "down-after-milliseconds"
22) "10000"
23) "last-hello-message"
24) "1767"
25) "voted-leader"
26) "?"
27) "voted-leader-epoch"
28) "0"
检查可用Sentinel的数量
# redis-cli -p 12011 SENTINEL ckquorum test_sentinel_g1
OK 3 usable Sentinels. Quorum and failover authorization can be reached
5.附录
5.1. Redis基本参数参考
配置类 | 配置名 | 含义 | 默认值 | 建议值 |
---|---|---|---|---|
整体配置 | daemonize | 是否是守护进程 | no | Yes |
port | 端口号 | 6379 | 整数(6380~6395) | |
loglevel | 日志级别 | notice | 默认 | |
logfile | 日志文件名 | 空 | /data/cluster001/log | |
databases | 可用的数据库 | 16 | 默认 | |
unixsocket | unix套接字 | 空 | 默认 | |
unixsocketperm | unix套接字权限 | 0 | 默认 | |
pidfile | redis运行进程的pid文件 | /var/run/redis.pid | /data/cluster001/run | |
lua-time-limit | Lua脚本超时时间 | 5000 | 默认 | |
tcp-backlog | tcp-backlog | 511 | 默认 | |
activerehashing | 是否激活重置hash | yes | 默认 | |
dir | 工作目录(aof、rdb文件都存放在此目录) | ./ | /data/cluster001/dump | |
最大内存策略 | maxmemory | 最大可用内存(单位:字节) | 0(无限制) | 建议设置最大可用内存 |
maxmemory-policy | 内存淘汰策略 | noeviction | 默认 | |
maxmemory-sample | 检测LRU采样数 | 5 | 默认 | |
AOF相关配置 | appendonly | 是否开启AOF持久化 | no | 视持久化需求,如需要持久化设置为yes |
appendsync | AOF同步磁盘频率 | everysec | everysec | |
appendfilename | AOF文件名 | appendonly.aof | appendonly-{port}.aof | |
aof-load-truncated | 加载AOF文件时,是否忽略AOF不完整的情况,让redis启动 | yes | 默认 | |
no-appendfsync-on-rewrite | 设置为yes表示rewrite期间对新写操作不做fsync,暂时存在缓冲区中,等rewrite完成后再写入 | no | 默认 | |
auto-aof-rewrite-min-size | 触发rewrite的AOF文件最小阀值(单位:MB) | 64m | 默认 | |
auto-aof-rewrite-percentage | 触发rewrite的AOF文件增长比例 | 100 | 默认 | |
aof-rewrite-incremental-fsync | AOF重写过程中,是否采取增量文件同步策略 | yes | 默认 | |
RDB相关配置 | save | RDB保存条件 | save 900 1 save 300 10 save 60 10000 | 禁用 |
dbfilename | RDB文件名 | dump.rdb | dump-{port}.rdb | |
rdbcompression | RDB文件是否压缩 | yes | 默认 | |
rdbchecksum | RDB文件是否使用校验和 | yes | 默认 | |
stop-writes-on-bgsave-error | bgsave执行错误,是否停止Redis接受写请求 | yes | 默认 | |
慢查询配置 | slowlog-log-slower-than | 记录慢查询的阀值(单位:微秒) | 10000 | 默认 |
slowlog-max-len | 最多记录慢查询的条数 | 128 | 默认 | |
latency-monitor-threshold | Redis服务内存延迟建立 | 0(关闭) | 默认 | |
数据结构优化配置 | hash-max-ziplist-entries | hash结构数据优化参数 | 512 | 默认 |
hash-max-ziplist-value | hash结构数据优化参数 | 64 | 默认 | |
set-max-intset-entries | set结构数据优化参数 | 512 | 默认 | |
zset-max-ziplist-entries | zset结构数据优化参数 | 128 | 默认 | |
zset-max-ziplist-value | zset结构数据优化参数 | 64 | 默认 | |
hll-sparse-max-bytes | HyperLogLog数据结构优化参数 | 3000 | 默认 | |
客户端相关配置 | maxclients | 最大客户端连接数 | 10000 | 默认 |
client-output-buffer-limit | 客户端输出缓冲区限制 | client-output-buffer-limit normal 0 0 0 client-output-buffer-limit slave 256mb 64mb 60 client-output-buffer-limit pubsub 32mb 8mb 60 | 整数 | |
timeout | 客户端闲置多少秒后关闭连接(单位:秒) | 0(永不关闭) | 300 | |
tcp-keepalived | 检测TCP连接活性的周期(单位:秒) | 0(不检测) | 300 | |
客户端相关配置 | requirepass | 密码 | 空 | 自定义 |
bind | 绑定IP | 空 | 0.0.0.0 | |
masterauth | 从节点需要配置主节点的密码 | 空 | 主节点密码 |
5.2. 复制参数参考
配置名 | 含义 | 默认值 | 可选值 |
---|---|---|---|
slaveof | 指定当前从节点复制那个主节点,参数:主节点ip和port | 空 | 默认 |
repl-ping-slave-period | 主节点定期向从节点发送ping命令的周期,用于判断从节点是否存活(单位:秒) | 10 | 默认 |
repl-timeout | 主从节点复制超时时间(单位:秒) | 60 | 默认 |
repl-backlog-size | 复制积压缓存区大小 | 1M | 100M |
repl-backlog-ttl | 主节点在没有从节点的情况下多长时间后释放复制积压缓存区空间 | 3600 | 默认 |
slave-priority | 从节点的优先级 | 100 | 默认 |
min-slaves-to-write | 当主节点发现从节点数量小于min-slaves-to-write且延迟小于等于min-slaves-max-lag时,master停止写入操作 | 0 | 默认 |
min-slaves-max-lag | 10 | 默认 | |
slave-serve-stale-data | 当从节点与主节点连接中断时,如果此参数设置为’yes’,从节点可以继续处理客户端请求,否则除info和slaveof命令之外,拒绝所有请求 | yes | 默认 |
slave-read-only | 从节点是否开启只读模式 | yes | 默认 |
repl-disable-tcp-nodelay | 是否开启主从复制socket的NO_DELAY选项: yes: Redis会合并小的Tcp包来节省带宽,但是增加了同步延迟 no: 主节点会立即发送同步消息,没有延迟 | no | 默认 |
repl-diskless-sync | 是否开启无盘复制 | no | 默认 |
repl-diskless-sync-delay | 开启无盘复制后,需要延迟多少秒后进行创建RDB操作,一般用于同时加入多个从节点时,保证多个从节点可共享RDB | 5 | 默认 |
5.3. Redis Cluster参数参考
参数名 | 含义 | 默认值 | 可选值 |
---|---|---|---|
cluster-node-timeout | 集群节点超时时间(单位:毫秒) | 15000 | 默认 |
cluster-migration-barrier | 主从节点切换需要的从节点数最小个数 | 1 | 默认 |
cluster-slave-validity-factor | 从节点有效性判断因子,当从节点与主节点最后通信时间超过(cluster-node-timeout * slave-validity-factor) + repl-ping-slave-period时,对应从节点不具备故障转移资格。设置为0表示从节点永不过期 | 10 | 默认 |
cluster-require-full-coverage | 集群是否需要所有的slot都分配给在线节点,才能正常访问 | yes | No |
cluster-enabled | 是否开启集群模式 | yes | 默认 |
cluster-config-file | 集群配置文件名称 | nodes.conf | nodes-{port}.conf |
5.4. Redis实例参数样例
编辑配置参数文件,如6380.conf:
# vim /data/third_party/redis/2001/conf/6380.conf
^: 若搭建Redis Cluster,需要额外添加参数cluster-enabled yes、cluster-require-full-coverage no、cluster-config-file nodes-2001.conf等。
daemonize yes
pidfile "/data/third_party/redis/2001/run/2001.pid"
logfile "/data/third_party/redis/2001/log/2001.log"
port 2001
dbfilename "2001.rdb"
dir "/data/third_party/redis/2001/data"
tcp-backlog 511
timeout 0
tcp-keepalive 0
loglevel notice
databases 16
#save 900 1
#save 300 10
#save 60 10000
save ""
#maxmemory <bytes>
maxmemory 31005464653
maxmemory-policy allkeys-lru
protected-mode no
bind 0.0.0.0
stop-writes-on-bgsave-error yes
rdbcompression yes
rdbchecksum yes
slave-serve-stale-data yes
slave-read-only yes
repl-diskless-sync no
repl-diskless-sync-delay 5
repl-disable-tcp-nodelay no
slave-priority 100
appendonly no
appendfilename "appendonly-2001.aof"
appendfsync no
no-appendfsync-on-rewrite no
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
aof-load-truncated yes
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 1024mb 512mb 60
client-output-buffer-limit pubsub 32mb 8mb 60
hz 10
aof-rewrite-incremental-fsync yes
maxclients 10000
slaveof master_ip port
masterauth "xxxx"
requirepass "xxxx"
5.5. Sentinel实例参数样例
编辑配置参数文件,如sentinel.conf:
# vim /data/third_party/redis/2001/conf/sentinel.conf
port 19705
daemonize yes
protected-mode no
dir "/data/third_party/redis/2001/data"
logfile "/data/third_party/redis/2001/log/sentinel.log"
sentinel monitor master_name master_ip port 2
sentinel auth-pass master_name xxx