倚楼听风雨
淡看江湖路

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

分享软件之前顺便啰嗦浅析一些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的类设计示例图

图片来源于杨开振《深入浅出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安装包百度云下载

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

  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可视化工具RedisDesktopManager0.9.9最新版本exe安装程序
  • 桌面连接管理Redis可视化工具RedisDesktopManager0.9.8稳定可使用简体中文版本exe安装程序
  • 编译工具crashreporter.exe文件

更博不易,如果觉得文章对你有帮助并且有能力的老铁烦请赞助盒烟钱,点我去赞助。或者扫描文章下面的微信/支付宝二维码打赏任意金额,老四这里抱拳了。赞助时请备注姓名或者昵称,因为您的署名会出现在赞赏列表页面,您的赞赏钱财也会被用于小站的服务器运维上面,再次抱拳。

资源下载

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

下载价格:0 G币

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

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

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

开始你的表演 12

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

    一定要购买吗

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

      Glorze2周前 (11-30)回复
  2. #2

    网盘密码

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

      Glorze1周前 (12-03)回复
      • 感谢,瞎了瞎了

        cike1周前 (12-03)回复
  3. #3

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

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

  4. #4

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

    davidsmithgf3天前回复

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

支付宝扫一扫打赏

微信扫一扫打赏