如非必要,一定要设置TTL。如果不是业务所需,必须持久存储,那么请一定要设置好TTL,否则随着时间流逝,Redis里会塞满垃圾。 此外还要注意使用框架时,确定好框架是否会设置ttl,比如最近遇到的一个坑就是Python RQ没有默认为job设置ttl,因此几年过去, 现在Redis内存不够用了,分析之后才发现,里面有诸多的垃圾,比如一些不用的业务数据,还有很早以前的job的数据等等,全部都堆在 Redis中,成为了持久的垃圾。
不要设置过长的key。比如spring框架就会有这样的key:spring:session:sessions:1c88a003-63a4-48a0-979d-9b3be4ed9c0c
,其中 很大一部分都是无用的数据,占用了过多的内存。
客户端使用连接池,以复用连接,提升性能。
使用 pipeline 来执行多个动作,避免减少多次网络来回的开销。
如果使用了Lua,那么一定要注意Lua脚本不能占用太长时间。