redis-cluster故障排查


問題描述

最近在使用redis-cluster 的時候發現一個新問題,寫入緩存數據的時候特別慢,5000條數據花了30秒左右,而且性能測試時項目一直報錯連接redis超時

2019-12-06 14:45:05.952  INFO 19289 --- [nio-8085-exec-1]  : 緩存性能驗證 :5000,put numbers: 2497 ,time test  start time: 1575614705952
2019-12-06 14:45:06.207  INFO 19289 --- [nio-8085-exec-1]  : Starting without optional epoll library
2019-12-06 14:45:06.211  INFO 19289 --- [nio-8085-exec-1]  : Starting without optional kqueue library
2019-12-06 14:45:38.169  INFO 19289 --- [nio-8085-exec-1]  : 緩存性能驗證 :5000, put numbers: 2497 ,time test  endTime time: 1575614738169總計耗時32217

問題排查

項目是spring-boot 使用的 jedis連接 redis-cluster ,配置文件如下:

  redis:
    cluster:
      nodes:
        - 127.0.0.1:6380
        - 127.0.0.1:6381
        - 127.0.0.1:6382
        - 127.0.0.1:6383
        - 127.0.0.1:6384
        - 127.0.0.1:6385
    jedis:
      pool:
        max-active: 600
        max-wait: 2000
        max-idle: 500
        min-idle: 200
    timeout: 3000
    password:

通過各種參數修改調整無效果后, 嘗試更換java 的redis-client成 lettuce,

  redis:
    cluster:
      nodes:
        - 127.0.0.1:6380
        - 127.0.0.1:6381
        - 127.0.0.1:6382
        - 127.0.0.1:6383
        - 127.0.0.1:6384
        - 127.0.0.1:6385
    lettuce:
      pool:
        max-active: 600
        max-wait: 2000
        max-idle: 500
        min-idle: 200
    timeout: 3000
    password:

然后問題就好了 ...... 寫入緩存數據的時間變成了 5000條2秒多,壓力測試時也沒有報錯了,不過根本原因還是沒有查到,以后查到了再補充吧!

擴展

Redis的三個框架:Jedis,Redisson,Lettuce

概念:

Jedis:是Redis的Java實現客戶端,提供了比較全面的Redis命令的支持,

Redisson:實現了分布式和可擴展的Java數據結構。

Lettuce:高級Redis客戶端,用於線程安全同步,異步和響應使用,支持集群,Sentinel,管道和編碼器。

優點:

  Jedis:比較全面的提供了Redis的操作特性

  Redisson:促使使用者對Redis的關注分離,提供很多分布式相關操作服務,例如,分布式鎖,分布式集合,可通過Redis支持延遲隊列

  Lettuce:主要在一些分布式緩存框架上使用比較多

可伸縮:

Jedis:使用阻塞的I/O,且其方法調用都是同步的,程序流需要等到sockets處理完I/O才能執行,不支持異步。Jedis客戶端實例不是線程安全的,所以需要通過連接池來使用Jedis。

Redisson:基於Netty框架的事件驅動的通信層,其方法調用是異步的。Redisson的API是線程安全的,所以可以操作單個Redisson連接來完成各種操作

Lettuce:基於Netty框架的事件驅動的通信層,其方法調用是異步的。Lettuce的API是線程安全的,所以可以操作單個Lettuce連接來完成各種操作


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM