redis运维相关问题
1 架构篇
redis+Redis-Sentinel 2.6哨兵模式
redis+cluster 3.2X集群模式
2 禁用命令
FLUSHALL "" //清理全部数据
FLUSHDB "" //清理当前数据库
CONFIG "" //进行redis命令,可以考虑重命名
keys "" //模糊匹配
3 如何发现大key
1 pip3 install rdbtools
2 rdb -c memory dump.rdb > result.csv
3 size_in_bytes(占用内存字节) encoding(数据类型)
4 redis迁移数据
工具redisdump
5 redis常用命令
1 关闭 redis-cli shutdown
2 后台保存键值
SAVE 会阻塞主线
BGSAVE 不会阻塞主线
3 查看key是否存在 EXISTS key
4 查看指定k-v GET key Hget key
5 文本批量操作
yum -y install unix2dos
unix2dos d1.txt
cat d1.txt | redis-cli -p 6379 --pipe
6 备份
1 主库不开启rdb和aof 从库开启aof
7 redis 相关运维问题总结
1 不要频繁请求大key
2 不要执行一些对于redis非常危险的命令,具体命令在部分2
3 单机多实例时,执行bgsave要注意轮流执行,防止发生OOM
4 不要添加redis自启动,这有可能导致主的空rdb覆盖掉从
5 当并发持续升高时,要尽早进行流量拆分,防止发生redis卡顿情况
6 由于redis相关版本BUG导致的问题
7 不要把redis和其他类型数据库混合部署在一台服务器上,防止相关影响
8 通过 slowlog get获取最近的慢查询
8 补充
1 rdb文件是可以进行热拷贝的
2 redis集群每个节点都要有从node,这样在一个节点挂了,从就会进行接管,集群至少有3个节点