redis是对内存依赖性很强的nosql数据库,在内存足够的情况下性能出色。
如果只有一台机子部署redis一定要特别小心。
比如:
有一台服务器内存24g,分配20g给redis。问题来了,当内存被占满的时候,redis会使用异步方式,将数据dump到硬盘中,可问题是他会fork一个进程,并占用同样大小的内存,
你需要的内存瞬间变为20g+20g=40g,这是内存超过了物理内存限制,马上会启动linux的虚拟内存,linux的虚拟内存page很大,io会剧增,dump速度会非常慢,整个服务器的性能将降至冰点,服务请求会拥堵,更严重的情况是机子可能坏掉。
如果是单机部署redis最好设置,redis最大占用内存的大小,并且不要超过物理内存的一半。