目录

  • 前言
  • 项目介绍
  • 改造介绍
  • 结尾


前言

1、由于一直没有找到良好的可支持Redis Cluster桌面程序(RDM要收费,其他乱七八糟网络资源都不可用),在使用Redis Cluster过程中有很多的不方便。毕竟可视化才是人类正常的使用习惯 - -。
2、 推测还是由于部分网络资源客户端使用了一些类似keys之类Redis Cluster禁止的命令,导致不可用。在找客户端的过程中,找到一个开源项目Redis Plus,其基于javaFx开发,因以前做过一个dubbo接口本地测试的javaFx应用程序,所以对javaFx有些了解,就对该项目进行了简单改造。

项目介绍

1、 该项目声称对Redis Cluster有支持,但是其实是对Sentinal模式的Redis有支持,并不是对基于CRC 16算法的Redis集群有支持。针对Redis集群可用的一些命令,可以参考Redis官网:http://www.redis.cn/commands.html#cluster

rediscluster客户端java redis cluster 客户端_Redis


2、针对java来说,以上Cluster组命令,jedis 3.* 及以上版本都已支持。

3、该项目对SSH登录也并不支持,可能可以支持本地的SSH登录。不过SSH登录使用java改造成本较高,因为一个大轮子jedis其实也不支持SSH通道访问Redis,相比较而言Python更方便一些。

4、该项目可视化展示原始图片:

rediscluster客户端java redis cluster 客户端_java_02


5、改造后可视化展示:

rediscluster客户端java redis cluster 客户端_线程池_03

改造介绍

1、改造后项目地址:

https://github.com/JazzHeric/RedisPlusForCluster

rediscluster客户端java redis cluster 客户端_线程池_04


2、根据Redis集群配置情况,通过配置的槽获取所有的key初始化在列表树中,并兼容原单例模式Redis。满槽配置的集群加载速度不快,已改造成线程池加载,本地4U8线程处理器测试加载所有的key需要11秒左右,fork项目之后可以根据本地配置,自行修改线程池配置调试。

由于比较懒,线程池配置在如下类中:

com.maxbill.base.consts.Constant

3、集群环境中未分组的key数量过多时,会导致js渲染左侧树也比较慢,所以统一将未分组key全归档到一个假的分组中,也已简单修改代码,保证其CRUD和TTL等操作有效。
4、增加了key信息展示中的对应槽信息。

结尾

项目没有进行打包,建议自行打包;项目代码结构并不复杂,是一个比较优秀的javaFx Demo项目,也值得对javaFx感兴趣的人进行学习。