题主写这篇文件主要是想让自己能够在遇到Redis延迟问题时能够有效的查找原因。这里所提到的延迟指的是客户端发送一个命令,到收到该命令回复的最大延迟时间。一般来说,Redis处理的时间是非常的低的,都是微秒级别,但是也存在一些情况会导致很高的延迟。
低延迟使用Redis的几点Tips
下面的内容对于低延迟使用Redis是非常重要的。不过先给出几点手段,使得能够获取最大低延迟效益。
1. 确保你不使用会造成阻塞server的慢的命令。
2. 对于EC2的用户,确保你使用的是基于现代EC2实例的HVM,(EC2,亚马逊web service,EC2(Elastic Compute Cloud); HVM)。否则,使用fork()实在是太慢了。
3. 从你的内核中必须关闭显而易见的巨大的页。使用echo never > /sys/kernel/mm/transparent_hugepage/enabled来关闭,然后重启你的Redis进程。
4. 如果你使用的是虚拟机,那么可能就会存在一些固有的延迟,和Redis没有关系。检查一下你期望从你的运行时环境中的最小延迟。/redis-cli –instrinsic-latency 100. 注意你需要在server端使用这个命令,而不是在client端。
5. 打开并使用Redis的延迟监控工具,使得能够获取到对于延迟事件更多的可读描述。
详细内容:
Redis latency problems