redis优化要点
所属分类 redis
浏览量 1419
使用精简的键值对
使用 lazy free(延迟删除)
设置键值的过期时间
禁用长耗时的查询命令
使用 slowlog 优化耗时命令
使用 Pipeline 批量操作数据
避免大量数据同时失效
客户端使用优化
限制 Redis 内存大小
使用物理机而非虚拟机安装 Redis 服务
检查数据持久化策略
禁用 THP 特性
使用分布式架构优化读写速度
记录大小对性能影响
大记录 读写开销 网络 持久化 缓存淘汰
单线程 阻塞
禁止用 keys 命令
避免一次查询所有的成员,使用 scan 分批遍历
严格控制 Hash、Set、Sorted Set 等结构的数据大小
将排序、并集、交集等操作放在客户端执行,减少 Redis 服务器运行压力
删除 大数据的时候,可能会需要很长时间,建议异步删除 unlink,它会启动一个新的线程来删除目标数据,而不阻塞 主线程
Redis 绝大多数读写命令的时间复杂度都在 O(1) 到 O(N) 之间
大量 key 同时过期,会导致循环多次持续扫描删除过期字典,直到过期字典中过期键值被删除的比较稀疏为止,
整个执行过程会导致 Redis 的读写出现明显的卡顿,卡顿的另一种原因是内存管理器需要频繁回收内存页,因此也会消耗一定的 CPU。
在过期时间的基础上添加一个指定范围的随机数。
Redis 4.0 之后,3 种持久化方式
RDB 快照
AOF Append Only File
混合持久化
Linux 2.6.38 内核增加了 Transparent Huge Pages (THP) 特性 ,支持大内存页 2MB 分配,默认开启。
THP 启用 时,fork 速度会变慢,fork 之后每个内存页从原来 4KB 变为 2MB,会大幅增加重写期间父进程内存消耗。
同时每次写命令引起的复制内存页单位放大了 512 倍,会拖慢写操作的执行时间,导致大量写操作慢查询。
禁用方法
echo never > /sys/kernel/mm/transparent_hugepage/enabled
/etc/rc.local
/sys/kernel/mm/transparent_hugepage/enabled never
分布式集群
主从同步
哨兵模式
Redis Cluster 集群
redis内存设置及淘汰策略
redis slow log
redis pipeline 与 lua 比较
redis 主从 哨兵 集群机制
redis集群方案
redis持久化与恢复
redis知识点整理
上一篇
下一篇
jvm codecache 相关整理
JVM MemoryUsage中init,committed,used,max说明
堆外内存使用实例
devops简介及工具链
jenkins简介
java8 ConcurrentHashMap 锁机制