一般 redis 的参数配置都在 redis.conf 中,在上线前根据实际环境配置好合适参数,能有效提高 redis 的可用性。
echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo never > /sys/kernel/mm/transparent_hugepage/defrag
# RDB 持久化配置
save 900 1 #在900秒(15分钟)之后,如果至少有 1 个key发生变化,则 dump 内存快照。
save 300 10 #在300秒(5分钟)之后,如果至少有 10 个key发生变化,则 dump 内存快照。
save 60 10000 #在60秒(1分钟)之后,如果至少有 10000 个key发生变化,则 dump 内存快照。
# AOF 持久化配置
appendfsync always #每次有数据修改发生时都会写入AOF文件。
appendfsync everysec #每秒钟同步一次,该策略为AOF的缺省策略。
appendfsync no #从不同步。高效但是数据不会被持久化。
#显示进程运行的CPU (15361 为 redis-server 的进程号)。显示结果的 f 实际上是二进制4个低位均为 1 的 bitmask,每一个 1 对应于 1 个CPU,表示该进程在 4 个CPU上运行
[root@localhost redis] taskset -p 15361
pid 15361's current affinity mask: f
#指定进程运行在某个特定的CPU上。该命令的 3 表示 CPU 将只会运行在第 4 个CPU上(从0开始计数)
[root@localhost redis] taskset -pc 3 15361
pid 15361's current affinity list: 0-3
pid 15361's new affinity list: 3
# 临时配置
127.0.0.1:6379> config set requirepass 123456
OK
# 永久配置,将目前服务器的参数配置写入 redis.conf
127.0.0.1:6379> config rewrite
OK
# 永久配置也可通过直接修改 redis.conf 的方式
[root@localhost redis]# redis-cli --latency
min: 0, max: 5, avg: 0.24 (1874 samples)
# 得到慢查询列表,默认保留 128 条(slowlog-max-len 参数)
127.0.0.1:6379> slowlog get 10
1) 1) (integer) 1 # 查询ID
2) (integer) 1572146706 # 发生时间
3) (integer) 12239 # 运行时长,该时间不包含网络延迟(微秒)
4) 1) "save" # 原命令
2) 1) (integer) 0
2) (integer) 1569327858
3) (integer) 391725
4) 1) "GET"
2) "YUNGU_REDIS_ADMIN_ACCESS_TOKEN_5E6A833C21A87983459A985753AE5425"
# 清空慢查询
127.0.0.1:6379> slowlog reset
OK
127.0.0.1:6379> dbsize
(integer) 1410
127.0.0.1:6379> debug populate 100
OK
127.0.0.1:6379> dbsize
(integer) 1510