redis调优

  • 设置最大内存

如果不设置最大内存可能挥发生OOM,导致崩溃

  • 避免bigKey

键名简短,同时键的内容尽量精简,最好10k以内

  • 设置请求超时时间
//redis配置文件调整
timeout 150
tcp-keepalive 150 (定时向client发送tcp_ack包来探测client是否存活的。默认不探测)
//项目优化调整
redis.timeout=10s
  • 减少持久化损耗

如果redis仅用作cache,在业务允许的情况下甚至可以关闭持久化,风险是容易使请求全部打到db上导致db崩溃。

如果开启持久化可以考虑关闭数据压缩和检查

//对于存储到磁盘中的快照,可以设置是否进行压缩存储。如果是的话,redis会采用LZF算法进行压缩。如果
//你不想消耗CPU来进行压缩的话,可以设置为关闭此功能,但是存储在磁盘上的快照会比较大。
rdbcompression no : 默认值是yes

//在存储快照后,我们还可以让redis使用CRC64算法来进行数据校验,但是这样做会增加大约10%的性能消
//耗,如果希望获取到最大的性能提升,可以关闭此功能。
rdbchecksum no : 默认值是yes。

并且关掉aof,aof能保证数据的完整性,但是会较大程度影响性能

appendonly no
  • 减少网络请求成本

redis官方都说redis的性能瓶颈主要是网络io,而减少服务和redis的网络通信成本就是切实有效的调优方案

如果非集群模式,或者能确定请求的操作都在一个node上,可以尝试合并请求,使用mget等命令,使用事务包装多个操作

如果集群模式请求的数据在多个node上可以尝试使用pipeline

你可能感兴趣的:(redis,tcp/ip,服务器)