微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

redis内部会导致主线程阻塞的点以及对应的解决方案

本文主要介绍redis内部会导致主线程阻塞的点以及对应的解决方案。

主要阻塞点

redis内部主要有五个阻塞点,其中三个可以通过异步解决,从而避开对redis主线程的阻塞。如下图所示。

redis内部会导致主线程阻塞的点以及对应的解决方案

redis异步机制

Redis启动后,会创建三个子线程用于aof日志异步写入,异步数据删除(bigkey删除和清空数据库)以及异步文件关闭

redis内部会导致主线程阻塞的点以及对应的解决方案

无法异步的阻塞操作优化

集合操作和RDB加载属于redis操作的关键路径(客户端必须要拿到真正的执行结果)是没办法做成异步操作的,对于这两类操作只能做优化,最大可能的降低阻塞的时间。

集合操作优化

可以少量scan,分批读取数据,然后到客户端进行聚合,把工作由redis server移到客户端

RDB加载优化

控制redis数据量的大小,控制在2-4GB,这样rdb会以较快的速度加载。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐