redis优化小建议

1.优化的一些小建议

1.尽量使用短的key

  当然在精简的同时,不要为了key的“见名知意”。对于value有些也可精简,比如性别使用0、1。

 

  2.每个redis设置合理内存

  每个GB在save fork子进程的时候会消耗20毫秒左右。

 

  3.尽量保证只有一个子进程在工作

  避免出现抢占资源的情况

 

  4.避免在大量写入时做子进程重写操作

  避免资源抢占以及过度消耗

 

  5.不要和高硬盘负载服务部署在一台服务器上

 

  6.对于开启了持久化或参与复制的主节点不建议绑定CPU,会有CPU竞争

 

  7.内存碎片由于经常apped,更新,大量过期删除,安全重启就可以解决

 

  8.可以使用scan + object idletime 命令批量查询哪些键长时间未被访问,找出长时间不访问的键进行清理,可降低内存占用。

 

  9.尽量使用整数对象以节省内存。

  有相同的引用空间,比较节约内存

 

  10.尽量减少字符频繁修改操作如append、setrange,改为直接使用 set 修改字符串,降低预分配带来的内存浪费和内存碎片化。

 

  11. 慢查询日志开启

 

  12. Redis建议设置密码,不要开放外网访问。

 

  13. 记录热点key,并进行优化

 

  14.vm.overcommit_memory设置,使redis可以超量使用内存。

 

  15.禁用THP

  当开启时可以降低fork 子进程的速度,但 fork 操作之后,每个内存页从原来4KB变为2MB, 会大幅增加重写期间父进程内存消耗。同时每次写命令引起的复制内存页单位放大了512倍,会拖慢写操作的执行时间,导致大量写操作慢查询。

 

  16.设置合理的数据压缩值

  redis为每种数据类型都提供了几种内部编码方式,在不同的情况下redis会自动调整合适的编码方式。设置过大导致解码是cpu消耗过大,设置合理值可以更好的节省内存。

 

上一篇:Linux的.a、.so和.o文件 windows下obj,lib,dll,exe的关系


下一篇:node系列扯犊子之十Cluster模块