首页  

redis优化要点     所属分类 redis 浏览量 95
使用精简的键值对 
使用 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 锁机制