redis的性能问题有可能出现的地方
- redis一般情况是利用内存,但是系统会把硬盘作为虚拟内存使用。实际redis存储的数据会被存放到硬盘中。可以通过top命令查看是否存在swap
- redis性能一般会表现为网络延迟。客户端的业务服务器要与redis服务器放在同一局域网内,减少网络延迟
- multi-key 类的指令来合并请求 或者 pipline命令合并请求 或者 transaction、script;减少网络传播和网络传播的字节大小
-
警惕执行时间长的操作,比如keys * LRANGE my_list 0 -1
-
慢指令是
DELUNLINK 版本异步的删除命令 (4.0版本之后) -
真的有很多的 keys 在同一时间过期,那么 Redis 真的会一直循环执行删除,占用主线程 所以需要将失效时间进行随机化,尽量平均化 redis.conf 中给出了一个方法,把 keys 的过期删除操作变为异步的,即,在 redis.conf 中设置
lazyfree-lazy-expire yes(4.0版本之后) -
数据要存放适合他的数据结构中,每种底层的数据结构存储的空间要求是不一样的 hashtable 就比 ziplist要浪费空间
-
使用分布式架构 —— 读写分离、数据分片;将备份或者长时间的操作放到从redis上面执行
-
rdb aof 备份时需要注意会阻塞操作 选择合适的备份方案

1431

被折叠的 条评论
为什么被折叠?



