redis-cluster故障排查
young / / / 阅读量

问题描述

最近在使用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连接来完成各种操作

支付宝捐赠
请使用支付宝扫一扫进行捐赠
微信捐赠
请使用微信扫一扫进行赞赏
有 0 篇文章