redis 客户端

文章介绍了几款Redis的GUI客户端工具,包括命令行、RediNav、RDM的新旧版本、Medis等,其中批评了RediNav的使用问题,推荐了RedisDesktopManager的旧版。同时,文章讨论了RedisTemplate在Spring中的序列化问题,建议使用StringRedisSerializer增强可读性和调试便利性。
摘要由CSDN通过智能技术生成

几款连接redis的客户端(GUI客户端),下面记录了我使用的几款

一、Redis 客户端
1、命令行工具
命令行 (建议使用,简单)

比如windows的cmd和Linux、Mac的Terminal,虽然最简单好用。

必须保证有 redis-cli 命令(windows 是 redis-cli.exe),比如通过安装 redis 就会有这个命令。

2、桌面客户端
RediNav (windows桌面客户端,MacOS客户端,根本不能用)
评价:垃圾,完全不能用,无论win还是mac平台!我写在这里就是要把你钉在耻辱柱上,免得下次又掉进你的坑里。

不能用具体表现在,无法新建连接,在填写endpoint的过程中,弹出框太大完全看不到填写完毕后的确认按钮,缩小弹出框的时候弹出框会突然消失掉,然后程序像死了一样,只能用任务管理器关闭。(我试的是1.0.28版)

新版 RDM (Redis Desktop Manager,我试的是 2021.7.363 版)

评价:新版很垃圾(如果你可以登录,不算垃圾)。收费。并且新版会强迫需要注册并登陆后才能用,人家Postman也没强迫。最主要是公司电脑屏蔽了没法登陆。

支持打开Console输入redis命令(当然了,旧版也支持)

旧版 RDM (Redis Desktop Manager,我试的是 v.0.8.8.384 版) (凑合使用)

旧版凑合用吧。貌似是免费的。也支持打开Console输命令的

Navicat

暂时未有,期待Navicat也出一个能连Redis的,成为一个万能的GUI数据库连接工具

除此外还有一大堆工具,这里就简单提一下,详细可以参考:https://zhuanlan.zhihu.com/p/210483494

medis:免费,美观。缺点是不支持key的命名空间展示(只有Mac平台,目前已经是medis2了)
AnotherRedisDesktopManager:基本的功能都有。有监控统计,支持暗黑主题,还支持集群的添加
fastoredis:使用这款工具首先得去官网注册账号。这款软件是收费软件,支持了集群模式和哨兵模式,key的命名空间展示
redis-plus:开源的免费,这款软件连命令行模式都没有。
red:这是一款在苹果app store下载的redis可视化工具,免费。只支持Mac端,颜值还是不错的。功能中规中矩。基本功能都有,支持key命名空间的展示。(只有Mac平台)
3、在线版
Redis Insight

这款软件是web版的,但是非常专业。支持命令行。支持rdb分析功能,可以分析哪个key占内存大。

3、IDEA 插件
Iedis2

收费插件,没啥看头,IDEA 的插件破解费工夫。不用去考虑了。

二、大坑
如下代码的RedisTemplate都没有特别配置序列化器,在执行后,使用命令行连上redis,执行keys my_key*,发现只有第二个key存在,第一个消失了,但是代码执行后是能够取到值的。这是为什么?

是因为命令行的工具有bug吗?不是的。使用 keys my_key,就可以显示两个key都存在。

可以看到第二key前面有一些奇怪的字符,这是是因为代码中第一个 redisTemplate 的序列化器,无论是key还是value都是使用jdk的序列化器(JdkSerializationRedisSerializer),所以导致了key前面有些奇怪的字符,所以用 keys my_key 这种两边都模糊的就能匹配出来。
但是第二个不是也是redisTemplate 吗?为什么key 前面没有奇怪的符号,因为Spring 在遇到 <String, String> 泛型的时候注入的不是 RedisTemplate 类,而是 StringRedisTemplate 类,而后者的所有序列化器都是 String的序列化器(StringRedisSerializer),所以就很正常了。

最佳实践

建议设置一下 key 和 hash key 的序列化器为String序列化器,这样可读性才强,debug的时候才好发现,另外不需要重复 new StringRedisSerializer(),共用即可,线程安全

@Bean
    public RedisTemplate redisTemplate(RedisConnectionFactory redisConnectionFactory) {
        RedisTemplate template = new RedisTemplate();
        template.setConnectionFactory(redisConnectionFactory);
         //建议设置一下 key 和 hash key 的序列化器为String序列化器,这样可读性才强,debug的时候才好发现,另外不需要重复 new StringRedisSerializer(),共用即可,线程安全
        RedisSerializer<String> stringRedisSerializer = new StringRedisSerializer();
        template.setKeySerializer(stringRedisSerializer);
        template.setHashKeySerializer(stringRedisSerializer);
        template.afterPropertiesSet();
        return template;
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Wis57

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值