倚楼听风雨
淡看江湖路

[Windows] 分享一下最新可用的 RedisDesktopManager 2020.5 Redis 桌面可视化客户端 持续更新

2020-11-12 更新:

现在已经不推荐使用 RedisDesktopManager 了,由于作者要恰饭,所以自己编译的版本已经不支持 SSH 连接,喜欢这款工具的人可以花钱支持一下,一年 99 块钱。所以呢,这里老四推荐另一款 Redis 可视化连接客户端,这一款软件也是因为 RedisDesktopManager 不支持 SSH 连接而诞生的,所以名称叫做「AnotherRedisDesktopManager」,目前全部开源并且官方直接提供 Windows、Mac 的安装包,老四测试了一下,虽然某些 SSH 连接情况下存在一些不稳定,但是基本功能相对来讲比较全面,还支持软件的在线更新,是  RedisDesktopManager 非常好的替代者。

[Windows] 分享一下最新可用的 RedisDesktopManager 2020.5 Redis 桌面可视化客户端的图片-高老四博客 第1张

分享软件之前顺便啰嗦浅析一些 Redis 相关的基础知识,毕竟能看到这篇文章的人肯定也都是有要学习的目的的,就当做是复习一下吧。

在现今互联网应用中,NoSQL己经广为应用,在互联网中起到加速系统的作用。有两种 NoSQL 使用最为广泛,那就是 Redis 和 MongoDB。Redis 是一种运行在内存的数据库,支持7种数据类型的存储。同时 Redis 是一个开源、使用 ANSI C 语言编写、遵守 BSD 协议、支持网络、可基于内存亦可持久化的日志型、键值数据库,并提供多种语言的 API。因为 Redis 是基于内存的,所以运行速度很快,大约是关系数据库几倍到几十倍的速度。Redis 可以在 1 秒内完成 10 万次的读写,性能十分高效。如果我们将常用的数据存储在 Redis 中,用来代替关系数据库的查询访问,网站性能将可以得到大幅提高。

Redis 支持的 7 种数据类型列表如下:string(字符串),hash(哈希),list(列表),set(集合)及 zset(sorted set:有序集合)。

  • 字符串(string)
  • 散列(哈希吗,hash)
  • 列表(链表,list)
  • 集合(set)
  • 有序集合(sorted set)
  • 基数(HyperLogLog)
  • 地理位置(GEO)

Redis 的应用场景(包括但不限于以下列表):

  • 缓存
  • 任务队列
  • 网站访问统计
  • 数据过期处理
  • 应用排行榜
  • 分布式集群架构中的 session 分离

在现实中,查询数据要远远多于更新数据,一般一个正常的网站查询和更新的比例大约是 1:9 到 3:7,在查询比例较大的网站使用 Redis 可以数倍地提升网站的性能。例如,当一个会员登录网站,我们就把其常用数据从数据库一次性查询出来存放在 Redis 中,那么之后大部分的查询只需要基于 Redis 完成便可以了,这样将很大程度上提升网站的性能。除此之外,Redis 还提供了简单的事务机制,通过事务机制可以有效保证在高并发的场景下数据的一致性。

程序员这个行业的从业人员应该都知道 Redis 没有官方的 Windows 版本,但是伟大(无论怎样都是伟大的)的微软开源技术团队(Microsoft Open Tech group)一直在开发和维护着 Redis 的 Windows 版本,并且一直提供 release 的 64 位版本下载,也支持 32 位版本,但需要自行编译(有几个程序员使用 32 位操作系统的?)。

接下来老四就简单(其实不怎么简单)浅析一下 Redis 在 Spring Boot 中的一些基本知识和应用。Redis 可视化连接工具会在讲完技术之后分享,不想看的直接拉到最后,哈~~~

Spring 中对 Redis 封装简介:

Java 连接 Redis 有很多优秀的封装,但是广泛使用的就是 Jedis(此外还有 Lettuce、Jredis、Srp)了。Spring 通过提供 RedisConnectionFactory 接口生成 RedisConnection 接口对象,在通过实现 RedisConnection 实现对 Redis 底层接口的封装,JedisConnection 就是对 Redis 优秀的封装类,他通过去封装原有的 Jedis 对象从而实现对 Redis 的统一管理。

Spring对Redis的类设计示例图 第2张

图片来源于杨开振《深入浅出 Spring Boot 2.x》侵删

基本的 RedisConnectionFactory 对象创建连接 Redis 实例代码如下:

就像我们之前使用 JDBC 一样,如果每次都要获取连接,进行业务操作,然后在关闭连接是很麻烦的事情,为了简化开发,Spring 中设计了 RedisTemplate 类来进一步管理 Redis 的操作与连接,如上述代码 initRedisTemplate() 方法所示,RedisTemplate 可以自动从 RedisConnectionFactory 获取连接,执行命令,最后也会主动关闭 Redis 连接。

Jedis 中的序列化:

如果 Redis 存储 Java 对象就离不开将对象进行序列化操作,所以 Spring 也提供了序列化机制 - RedisSerializer 接口(实现序列化和反序列化)。同样,RedisTemplate 也对序列化器进行了良好的封装,表格如下:

属性

描述 备注

defaultSerializer

默认序列化器 如果没有设置,则使用 JDKSerializationRedisSerializer

keySerializer

Redis 键序列化器 如果没有设置,则使用默认序列化器

valueSerializer

Redis 值序列化器 如果没有设置,则使用默认序列化器
hashKeySerializer Redis 散列结构 field 序列化器

如果没有设置,则使用默认序列化器

hashValueSerializer Redis 散列结构 value 序列化器

如果没有设置,则使用默认序列化器

stringSerializer 字符串序列化器

RedisTemplate 自动赋值为 StringRedisSerializer 对象

如上代码所示,initRedisTemplate() 方法就为字符串存储和哈希存储的键值设置 RedisTemplate 默认赋值的字符串序列化器。

除此之外,Spring 对 Redis 所有支持的存储数据类型进行了操作封装,而且都可以通过 RedisTemplate 使用,并且 Spring 也提供了对 Redis 同一键(key)连续多次操作的封装(BoundXXXOperations 接口,可以看后面老四的后面的 Redis 操作数据类型实例代码)。

  1. ValueOperations 字符串操作接口
  2. ListOperations 列表(链表)操作接口
  3. SetOperations 集合操作接口
  4. ZSetOperations 有序集合操作接口
  5. HashOperations 散列操作接口
  6. HyperLogLogOperations 基数操作接口
  7. GeoOperations  地理位置操作接口
  8. BoundValueOperations 绑定一个的键操作
  9. BoundListOperations 绑定一个的键操作
  10. BoundSetOperations 绑定一个的键操作
  11. BoundZSetOperations 绑定一个的键操作
  12. BoundHashOperations 绑定一个的键操作
  13. BoundGeoOperations 绑定一个的键操作

多提一嘴,前面的代码示例 RedisTemplate 虽然做到了帮助我们管理 Redis 连接(从 RedisConnectionFactory 获得连接并初始化常用的 Redis 操作对象),但是对 Redis 每一次操作都是一个打开连接 - 操作 - 关闭连接的一个过程,若想像关系型数据库连接池那样在一个 Redis 连接中一次性进行多种不同的操作需要我们使用 SessionCallback 或者 RedisCallback 接口,通过 RedisTemplate 进行回调实现,具体事例代码可以参考老四文末的具体项目完整代码演示。

实战 Spring-Data-Redis:

我们都知道 Spring Boot 整合了 Spring 各种复杂的配置,让我快速的简单的配置项目,对于 Redis 操作来讲也是一样,在 Spring Boot 中继承 Redis 也是十分简单,尤其是你在理解了上面的一些基本的底层知识之后,使用起来会很顺手。

下面的代码示例演示了在 Spring Boot 基本的操作 Redis 数据类型:

首先在 application.properties 文件配置 Redis 数据源以及一些基本属性配置:

然后写一个控制器来实现一些 Redis 操作各种各样的数据类型:

除了我们项目中常用的这些 Redis 操作,其实 Redis 还支持事务,流水线(批量执行命令,SessionCallback 接口实现),发布订阅,Lua 脚本等,但是基本在我们的使用当中这些都有更好的产品替代,所以老四也不过多介绍了,感兴趣的可以自行研究一下。

Spring 注解使用 Redis 缓存:

Redis 正是因为其良好的存储性能广泛应用于项目的缓存,比如说用户信息,热门商品(有序结合)等等,因为 Spring Boot 主张注解开发,尽可能减少配置文件,所以在 Spring Boot 中我们可以通过一系列的注解来实现缓存业务,Spring 支持各种各样的缓存,Redis 中提供的是 RedisCacheManager 类,在 Spring Boot 中我们只需要配置 spring.cache.type=REDIS,Spring 就会为我们自动生成 RedisCacheManager 对象。老四也手写了一份基本的使用缓存管理用户信息的 Spring Boot 项目帮助来了解 Spring 缓存注解的使用。具体可以参考一下文末的项目源码。

Spring 支持的缓存产品列表以及 Redis 缓存配置示例如下:

基本的用户管理缓存配置重点在于 UserServiceImpl 实现类中的注解配置,源码如下:

好了,基本知识就说这么多,以上所述的一些知识点完整源码老四放在了 GitHub 上面,包括测试 RedisTemplate 的连接,RedisTemplate 操作 Redis 基础数据类型 Redis 缓存管理器使用 Spring 注解实现一个简单的用户管理都在这份源码当中,感兴趣的可以参考一下:

好了,书接上回,我们知道微软为我们提供了 Windows 版本的 Redis,便于我们日常的开发操作,也顺便复习了一下 Redis 在 Spring Boot 中的整合,接着就是本文的最终目的 - Redis 可视化连接查看工具了。这款 RedisDesktopManager 也是开源的,但是自从 0.9.3 版本以后只有订阅(就是付费)或者是代码贡献者才能下载 release 安装包,要不然只能自己编译了。编译其实折腾起来也还好,但考虑到某些人懒,不爱折腾,所以老四索性共享出来一份以供你们使用,亲测win10完美运行。

RedisDesktopManager最新0.9.9windows安装包百度云下载 第3张

最后,喜欢折腾的极客可以参考如下编译过程下载官方源码自行编译使用:

  1. RedisDesktopManager-windows桌面redis连接管理可视化工具项目开源地址
  2. 下载 Visual Studio 2015,专业版社区版就可以,老四提供一个下载地址,Visual Studio 2015社区版下载地址点我。安装时选择自定义安装,必须选择安装 VC++6.0 插件。
  3. 安装 Qt 5.9.6,安装时必须选择 MSVC2015 32bit 编译器。
  4. 从 GitHub 上获取源代码: git clone --recursive https://github.com/uglide/RedisDesktopManager.git rdm && cd ./rdm
  5. 现在完成后进入 3rdparty/qredisclient/3rdparty/hiredis 目录,执行 git apply ../hiredis-win.patch
  6. 找到 src/rdm.pro 文件,右键使用 Qt Creator 打开,然后选择 MSVC2015 32bit 编译器并选择 release 方式构建运行项目,不出意外的话你会看到 RedisDesktopManager 的 GUI 界面自动弹出。
  7. 接下来编译成功需要我们打包成 exe 文件供其他人或者其他电脑安装使用软件,老四这里推荐(也是官方推荐的 NSIS 打包),安装 NSIS 点我下载
  8. 打包过程中需要 python 定义软件版本,所以还需要安装一下 python 运行环境,自寻 python 官网安装一下 python。
  9. 设置 RedisDesktopManager 版本号:
  10. 编译 crashreporter.exe,由于老四没有编译成功,所以直接找到之前版本的 crashreporter.exe 文件(文末有下载),将 crashreporter.exe 放入到 rdm\bin\windows\release 目录下面。
  11. 最后进行打包 RedisDesktopManager.exe 操作,前提条件将 rdm\bin\windows\release\rdm.exe 文件拷贝到 rdm\build\windows\installer\resources 目录下面,将 rdm\bin\windows\release\rdm.pdb 文件拷贝到 rdm\build\windows\installer\resources 目录下面。
  12. 打包后的可执行 exe 文件可以在 rdm\build\windows\installer 中找到。

注意:以上教程仅适用于 RedisDesktopManager 0.9.9 及以上版本的编译,之前版本据此有区别,自行寻找教程。另外本次老四测试 RedisDesktopManager 0.9.9 版本编译之后存在语言无法切换为中文简体语言的问题,所以老四在文末也提供了相对较稳定的 0.9.8 的打包版本,0.9.8 可以使用简体中文。本文会持续更新 RedisDesktopManager 最新版本 release 发布包分享下载。RedisDesktopManager 0.9.9 和 RedisDesktopManager 0.9.8 两版在老四的 win10 64位 和 win7 64 位亲测完美运行。

本文所述资源合集文末自助下载,下载需要登陆,没有账号的童鞋使用邮箱注册一下即可,资源分享包括:

  • Windows 版本 Redis 最新 msi 安装包
  • Spring-Data-Redis 之 Spring Boot 整合 Redis 示例项目完整源码
  • 桌面连接管理 Redis 可视化工具 RedisDesktopManager 0.9.9 最新版本 exe 安装程序
  • 桌面连接管理 Redis 可视化工具 RedisDesktopManager0.9.8 稳定可使用简体中文版本 exe 安装程序
  • 编译工具 crashreporter.exe 文件

相关文章阅读

  1. Java 知识体系思维导图 GitHub 开源分享之 Redis 脑图总结

更博不易,如果觉得文章对你有帮助并且有能力的老铁烦请捐赠盒烟钱,点我去赞助。或者扫描文章下面的微信/支付宝二维码打赏任意金额(点击「给你买杜蕾斯」),也可以加入本站封闭式交流论坛「DownHub」开启新世界的大门,老四这里抱拳谢谢诸位了。捐赠时请备注姓名或者昵称,因为您的署名会出现在赞赏列表页面,您的捐赠钱财也会被用于小站的服务器运维上面,再次抱拳感谢。

资源下载

隐藏内容:******,购买后可见!

下载价格:0 G币

您需要先后,才能购买资源

欢迎访问高老四博客(glorze.com),本站技术文章代码均为老四亲自编写或者借鉴整合,其余资源多为网络收集,如涉及版权问题请与站长联系。如非特殊说明,本站所有资源解压密码均为:glorze.com。

赞(45) 给你买杜蕾斯
本站原创文章受自媒体平台原创保护,未经允许不得转载高老四博客 » [Windows] 分享一下最新可用的 RedisDesktopManager 2020.5 Redis 桌面可视化客户端

开始你的表演 16

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
  1. #1

    一定要购买吗

    logosty3年前 (2018-11-30)回复
    • 不需要购买啊,老四已经给你们编译好了,直接安装就能使用,并且持续更新。官方只是开源了源代码,但是官方现在不免费发布Windows和Mac OS的安装包了,需要订阅付费购买,老四为了自己和你们使用,自己搭建编译环境免费分享出来的。但愿我的解释你能看懂,在我这里下载不花钱,只需要注册账号登录就可以获取到下载链接了

      Glorze3年前 (2018-11-30)回复
  2. #2

    网盘密码

    cike3年前 (2018-12-03)回复
    • 下载页面有个隐藏字段,那四个字符就是网盘提取码。老铁,看网页要仔细啊~~~

      Glorze3年前 (2018-12-03)回复
      • 感谢,瞎了瞎了

        cike3年前 (2018-12-03)回复
        • 没事,助人为快乐之本

          Glorze3年前 (2018-12-03)回复
  3. #3

    博主能否编译一个带SSH支持的版本 拜谢
    Connection error: QRedisClient compiled without ssh support.

    admin3年前 (2018-12-07)回复
    • 您好,最新版本现在已经不包含ssh支持了,如果您想用ssh版本的请使用老四提供的0.9.8版本,从0.9.9以后不再包含ssh模块了。所以老四也没研究,如果后续版本能继续支持ssh,我到时候研究一下会编译出来发布一下

      Glorze3年前 (2018-12-07)回复
      • 好的 感谢 ~

        admin3年前 (2018-12-07)回复
  4. #4

    服务器上用,就不用中文了,英文更适合!

    davidsmithgf3年前 (2018-12-11)回复
  5. #5

    怎么选择中文不起作用

    8586088233年前 (2018-12-16)回复
    • 老四已经在文章中有所说明,可能是作者代码的bug,这一版本的汉化不起作用,下一版本可能会修复。如果不习惯英文请使用老四提供的0.9.8版本,这一版本支持中文。

      Glorze3年前 (2018-12-16)回复
  6. #6

    感谢博主!!

    firework_dks2年前 (2019-03-21)回复

觉得文章有用就打赏一下老四,鼓励我更好的创作

支付宝扫一扫打赏

微信扫一扫打赏