简介
Redis 是完全开源的,遵守 BSD 协议,是一个基于C语言实现的高性能的key-value数据库。
Redis 与其他 key - value 缓存产品相比有以下三个特点:
- Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。
- Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。
- Redis支持数据的备份,即master-slave模式的数据备份。
基于以上特点,redis的应用场景也就不言而喻了。
应用场景
缓存
缓存是Redis最常见的应用场景,之所有这么使用,主要是因为Redis读写性能极高。Redis读的速度是110000次/s,写的速度是81000次/s,大约是mysql的正常读写速度的7倍,而且逐渐取代memcached,成为首选服务端缓存的数据库。而且,Redis内部是支持事务的,在使用时候能有效保证数据的一致性。且支持多种数据类型,应用场景会更加丰富。 作为缓存使用时,一般有两种方式保存数据:
1、读取前,先去读Redis,如果没有数据,再读取数据库,将数据拉入Redis。
2、插入数据时,同时写入Redis。
短信验证码
Redis针对数据可以设置过期时间,这个特点也是大家应用比较多的,过期的数据清理无需开发者去关注,所以开发效率会比较高,短信验证码就是其中最典型的应用了。
商品秒杀
秒杀是现在互联网系统中最常见的营销模式。秒杀其实经常会出现的问题包括:
- 并发太高导致程序阻塞。
- 库存无法有效控制,出现超卖的情况。
那么解决这些问题基本就两个方案:
- 数据尽量缓存,阻断用户和数据库的直接交互。
- 通过锁来控制避免超卖的现象。
redis就是其中的应用之一,通过redis制造分布式锁来避免超卖,利用redis的高性能读写速度来解决高并发问题。更多应用场景,这里就不一一列举了。
流行度
参考db-engines网站10月份的最新排名,redis大概在第8位左右,排名还是比较靠前的。
上面介绍了那么多,接下来才是本文的重点,对目前市面上比较流行的Redis可视化管理工具做一个详细的测评,方便开发者们选择使用。
产品介绍
RedisDesktopManager(简称RDM)
它是一个快速、简单、支持跨平台的桌面管理工具,是开源的基于 Qt 5 开发的,支持通过 SSH Tunnel 连接,由社区爱好者们共同维护。
这个工具也是目前redis开发者们用的最多的一个桌面端工具,因为它相对比较稳定,功能也还比较完备,github源码详见:https://github.com/uglide/RedisDesktopManager
但是安装比较麻烦,需要自己编译,github上提供的下载安装地址打不开。
TablePlus
TablePlus是一个现代化的本地工具,UI优雅,redis功能相对简单,正如他的取名一样,操作非常的表单化。它允许您同时管理多个数据库,如MySQL、PostgreSQL、SQLite、microsoftsqlserver等等。
关于redis部分的介绍详见:https://tableplus.com/blog/2018/06/best-redis-gui-client-tableplus.html
QuickRedis
QuickRedis 是一款永久免费的 Redis 可视化管理工具。它支持直连、哨兵、集群模式,支持亿万数量级的 key,还有令人兴奋的 UI。它是由个人开发者开发和维护的。
github地址详见:https://github.com/quick123official/quick_redis_blog
DMS
最后出场的就是我们阿里云数据库团队自己的产品DMS。数据管理DMS是基于阿里巴巴集团十余年的数据库服务平台的云版本,提供免安装、免运维、即开即用、多种数据库类型与多种环境统一的web数据库管理终端;可以为企业用户快速复制搭建与阿里集团同等安全、高效、规范的数据库DevOps研发流程解决方案。
web端地址见:https://dms.aliyun.com/
桌面端下载地址见:https://dms.aliyun.com/static/html/download.htm
移动端到手机商店下载阿里云app即可
接下来主要对这四款产品进行一个功能和交互上的对比
功能对比
RedisDeskTopManage | TablePlus | QuickRedis | DMS | |
---|---|---|---|---|
跨平台 | mac、windows、Linux | mac 、Linux、Windows、移动端 | mac、windows、Linux | web、mac、windows、移动端 |
SSL/TSL | 支持 | 支持 | 不支持 | 不支持 |
新增、编辑、删除key | 支持 | 支持 | 支持 | 支持 |
批量删除key | 支持 | 支持 | 不支持 | 支持 |
批量设置TTL | 支持 | 支持 | 不支持 | 暂不支持 |
搜索数据库 | 不支持 | 支持 | 不支持 | 支持 |
搜索key | 支持 | 支持 | 支持 | 支持 |
命令行 | 支持 | 支持 | 支持 | 支持 |
命令行智能提示 | 支持提示关键字,不支持提示key | 支持提示关键字,不支持提示key | 不支持 | 都支持 |
数据导入导出 | 不支持 | 支持 | 不支持 | 支持 |
执行历史/执行日志 | 支持 | 支持 | 不支持 | 支持 |
value查看 | 支持json/binary/text等多种格式 | 支持json/binary/text等多种格式 | 不支持 | 暂不支持 |
大数据 | 目测只能展示20个数据库,key目测也不太多,不支持分页 | 免费版只能展示3个数据库,少量key,超出提示购买 | 库全部展示,key上线未知,但支持分页 | 库全部展示,key默认拉取10万条,支持分页 |
是否收费 | 免费 | 收费 | 免费 | 以上功能免费 |
功能对比差不多就是以上这些了,总体来说在功能丰富性上RedisDesktopManage和TablePlus会更胜一筹,QuickRedis相对比较弱,DMS在某些功能上也还暂时不支持。
UI对比
RedisDesktopManage和TablePlus在某些操作上比较类似,两者的布局风格也比较接近,比较符合桌面端的操作习惯;而DMS和QuickRedis在UI上也是很类似,接近web端的操作习惯,UI上也是web端的设计风格。DMS本身就是主打web端开发,所以无可厚非;而QuickRedis是基于Electron开发,所以也是比较偏web端的。
在元数据展示层面,RedisDesktopManage是以树的形式进行展示,由实例信息到数据库再到key值;TablePlus是平铺的形式,只有一层数据库结构,key值用表格的形式展示;QuickRedis展示形式是级联的形式,点选数据库以后加载出对应的key值,点选key值再加载value值;DMS数据库层面是以树的形式展示,点击数据库以后会新开独立页面展示其key值。下面分别截几张图供大家对比:
QuickRedis UI截图
DMS UI截图
UI对比基本也就到这里了,大家如果感兴趣也可以自行去下载体验哦。
总结说明
当然,社区内还有其他redis的可视化操作软件,我就不一一去举例对比了。通过以上4种GUI管理工具的对比,发现redis的操作工具确实还不够完善,没有哪一种工具是非常完美的。由于redis的操作简单,所以它不像mysql那样有比较成熟和完备的管理软件,这个也是目前redis开发者们的一大痛点。但是我们也发现,不管什么工具,背后一定要有强有力的团队去维护和持续迭代,才能使工具做得越来越好。
所以,这里我还是比较看好DMS的,第一它是免费开放给所有开发者使用,第二背后有一个阿里云的团队在持续迭代和优化,是经得住时间考验的,而且我相信未来DMS也会越做越好。
最后再放一下DMS的链接,欢迎各位开发者们去使用体验,并提出你们的宝贵意见。想直接免费体验其他数据库的功能也可以前往DMS的数据库实验室(无需录入数据库实例,开通即可体验): https://dmslab.aliyun.com/
DMS官方域名请访问:https://dms.aliyun.com
免费桌面端下载地址请访问:https://dms.aliyun.com/static/html/download.htm