测试平台系列(81) 编写在线执行Redis功能

本文涉及的产品
云数据库 Redis 版,社区版 2GB
推荐场景:
搭建游戏排行榜
简介: 编写在线执行Redis功能

大家好~我是米洛


我正在从0到1打造一个开源的接口测试平台, 也在编写一套与之对应的完整教程,希望大家多多支持。

回顾


上一节我们牛刀小试,编写了redisManager,并且成功执行了redis命令。

那这一节,就让我们来折腾下在线执行Redis命令。

由于某些特定的原因,在使用aredis的时候有了一些不好的体验,主要是以下几个方面, 所以我打算弃坑了。

  • get和set操作没有支持中文,非常难受
  • 对于报错信息不是那么友好,因为我这边出现了一个连接出错的问题,发现对方的error是ConnectionError,里面毫无内容
  • 之前也说了,迁移成本巨低,所以我们可以完美切回用户最多的同步库(如果踩坑也有人一起想办法)

安装redis和redis-py-cluster


pip3 install redis redis-py-cluster

改写Manager类


其实要改变的并不多,看下git的改动就知道了:

  • 修改引入路径

19.jpg

image


  • 修复之前的bug

20.jpg

之前的获取单实例从集群中拿数据了,大错特错了


  • 改写cluster

21.jpg

换个名字而已,从StrictCluster改为Cluster

完善在线执行命令的方法


22.jpg

做一个判断,如果是cluster则获取集群客户端,否则获取实例客户端

这样我们的后端接口就编写完毕了,因为我们想做的是类似redis-cli的功能。

  • 寻找前端组件
    我们需要一个web版本的终端,所以我在github寻找了很久,找到了这样一款质量还不错的:

23.jpg

到时候我们的页面上,就让用户输入这个了


  • 最终效果

24.jpg

最终显示效果

还是比较丑,左侧是现有的redis连接配置,右侧是类似redis-cli的客户端页面。

在右侧执行语句以后,就会调用我们刚才编写的redis在线执行接口

凑合能用就行。给大家看看使用gif:

25.PNG

image

目前只支持基础的操作,包括常见的:

getsethgethsethgetall等等

自动更新Redis


每当配置有变更的时候,我们都需要变更RedisManager中的数据,所以我们之前为之编写了Refresh方法。

我们修改update/delete方法:

26.jpg

删除client也编写了一个方法

这里的background_tasks是来自fastapi的后台任务,如果大家了解go的话,这里就等于:


func test() {
    // 业务逻辑
    result := xxx
    go RedisManager.delete()
    return result
}

其实就是一个后台任务,咱们的主体方法可以直接return了。

27.jpg

删除客户端的方法,如果是集群则pop集群字典


今天的内容就到这了,下期我们解决APScheduler重复执行的问题。




相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
22天前
|
人工智能 搜索推荐 Serverless
使用金庸的著作,来测试阿里通义千问最新开放的长文档处理功能
使用金庸的著作,来测试阿里通义千问最新开放的长文档处理功能
50 7
使用金庸的著作,来测试阿里通义千问最新开放的长文档处理功能
|
1月前
|
Java
【Java每日一题】— —第二十一题:编程把现实生活的手机事物映射成一个标准类Phone,并定义一个测试类PhoneDemo测试Phone类的功能
【Java每日一题】— —第二十一题:编程把现实生活的手机事物映射成一个标准类Phone,并定义一个测试类PhoneDemo测试Phone类的功能
36 0
|
2月前
|
资源调度 测试技术 Linux
一款接口自动化神器—开源接口测试平台Lim(Less is More)
一款接口自动化神器—开源接口测试平台Lim(Less is More)
130 2
|
2天前
|
人工智能 监控 数据处理
【AI大模型应用开发】【LangSmith: 生产级AI应用维护平台】1. 快速上手数据集与测试评估过程
【AI大模型应用开发】【LangSmith: 生产级AI应用维护平台】1. 快速上手数据集与测试评估过程
17 0
|
22天前
|
存储 NoSQL 数据处理
Redis Lua脚本:赋予Redis更强大的逻辑与功能
Redis Lua脚本:赋予Redis更强大的逻辑与功能
|
27天前
|
缓存 NoSQL Shell
【Redis深度专题】「核心技术提升」探究Redis服务启动的过程机制的技术原理和流程分析的指南(持久化功能分析)
【Redis深度专题】「核心技术提升」探究Redis服务启动的过程机制的技术原理和流程分析的指南(持久化功能分析)
143 0
|
27天前
|
存储 缓存 NoSQL
【Redis深度专题】「核心技术提升」探究Redis服务启动的过程机制的技术原理和流程分析的指南(集群功能分析)(一)
【Redis深度专题】「核心技术提升」探究Redis服务启动的过程机制的技术原理和流程分析的指南(集群功能分析)
308 0
|
1月前
|
缓存 运维 Serverless
应用研发平台EMAS产品常见问题之测试检查更新没有反应如何解决
应用研发平台EMAS(Enterprise Mobile Application Service)是阿里云提供的一个全栈移动应用开发平台,集成了应用开发、测试、部署、监控和运营服务;本合集旨在总结EMAS产品在应用开发和运维过程中的常见问题及解决方案,助力开发者和企业高效解决技术难题,加速移动应用的上线和稳定运行。
|
1月前
|
缓存 NoSQL Java
spring cache整合redis实现springboot项目中的缓存功能
spring cache整合redis实现springboot项目中的缓存功能
46 1
|
1月前
|
机器学习/深度学习 人工智能 监控
视觉智能平台常见问题之体验产品的美颜测试关掉如何解决
视觉智能平台是利用机器学习和图像处理技术,提供图像识别、视频分析等智能视觉服务的平台;本合集针对该平台在使用中遇到的常见问题进行了收集和解答,以帮助开发者和企业用户在整合和部署视觉智能解决方案时,能够更快地定位问题并找到有效的解决策略。
24 1

热门文章

最新文章