Initial appearance 2021-05-18 13:33 采纳率: 0%
浏览 35

redis的原理总结

redis的原理分析,为什么1.6以后变成多线程了

 

 

  • 写回答

4条回答 默认 最新

  • 小P聊技术 2021-05-18 15:57
    关注

    Redis 6.0 为什么要引入多线程呢?

    Redis 的瓶颈并不在 CPU,而在内存和网络

    • 可以充分利用服务器 CPU 资源,目前主线程只能利用一个核。
    • 多线程任务可以分摊 Redis 同步 IO 读写负荷。

    内存不够的话,可以加内存或者做数据结构优化和其他优化等,但网络的性能优化才是大头,网络 IO 的读写在 Redis 整个执行期间占用了大部分的 CPU 时间,如果把网络处理这部分做成多线程处理方式,那对整个 Redis 的性能会有很大的提升。

    Redis 6.0 多线程的优化方向如下:

    • 提高网络 IO 性能,典型的实现比如使用 DPDK 来替代内核网络栈的方式。
    • 使用多线程充分利用多核,典型的实现比如 Memcached

    Redis 6.0 默认是否开启了多线程?

    否,在conf文件进行配置

    io-threads-do-reads yes
    io-threads 线程数
    

    官方建议:4 核的机器建议设置为 2 或 3 个线程,8 核的建议设置为 6 个线程,线程数一定要小于机器核数,尽量不超过8个。

    评论

报告相同问题?

悬赏问题

  • ¥15 模电中二极管,三极管和电容的应用
  • ¥15 关于模型导入UNITY的.FBX: Check external application preferences.警告。
  • ¥15 气象网格数据与卫星轨道数据如何匹配
  • ¥100 java ee ssm项目 悬赏,感兴趣直接联系我
  • ¥15 微软账户问题不小心注销了好像
  • ¥15 x264库中预测模式字IPM、运动向量差MVD、量化后的DCT系数的位置
  • ¥15 curl 命令调用正常,程序调用报 java.net.ConnectException: connection refused
  • ¥20 关于web前端如何播放二次加密m3u8视频的问题
  • ¥15 使用百度地图api 位置函数报错?
  • ¥15 metamask如何添加TRON自定义网络