python调用redis-cell(CL.THROTTLE)

本文涉及的产品
云原生内存数据库 Tair,内存型 2GB
云数据库 Redis 版,社区版 2GB
推荐场景:
搭建游戏排行榜
云数据库 Redis 版,经济版 1GB 1个月
简介: python调用redis-cell(CL.THROTTLE)

前言


我有一个朋友, 在我刚发完上面那篇限流功能实现之后问我, 为啥没有写用python调用redis-cell的方法, 在网上也没有找见案例, 我瞅瞅还真是, 机会来了, 可以水一篇文章


2020042309221453.png


其实实现也很简单, 只不过因为这个要用到reids-cell插件, 用的人不是很多, 所以官方没有提供对应的sdk而已, 但是, 上帝关了一扇门, 就一定会在给你留一扇窗, 毕竟都得恰饭的嘛

安装过程就不写了啊, 网上教程太多了, 自己玩的话可以看我上篇限流文章, 有用docker部署redis-cell的教程


正文


写个连接redis的脚本, 随便找个命令跳进redis源码(redis/client.py),

20200422150754176.png

你就会发现所有的命令执行都调用的是self.execute_command 这个方法,看看这个方法里面干了什么20200422150928639.png

20200422150951813.png

就是发送执行命令给redis服务端, 这不就好办了, 我直接发送CL.THROTTLE 这个命令不就行, 而且也有提供了主动调用execute_command的sdk, 理论上是这样, 行不行还得试一下

import redis
client = redis.Redis(host="127.0.0.1", port=6379)
print(client.execute_command('CL.THROTTLE', "user:api", 15, 10, 20, 5))
# 返回 [0, 16, 11, -1, 10]

答案是可以的, 前提是必须需要安装好redis-cell插件啊, 不然的话命令也执行不了

相关实践学习
基于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
目录
相关文章
|
3月前
|
存储 NoSQL Redis
在Python Web开发过程中,为什么Redis运行速度快
【5月更文挑战第15天】Redis在Python Web开发中运行速度快,原因包括:1) 丰富数据类型满足多样化需求;2) 简单数据模型提升查询效率;3) 单线程模型结合非阻塞I/O实现高效处理;4) 持久化机制保证数据安全;5) 二进制协议与管道技术优化网络通信。这些因素共同确保Redis能处理大量请求并保持高性能。
61 1
|
3月前
|
存储 缓存 NoSQL
在Python Web开发过程中:数据库与缓存,Redis在Web开发中的常见应用场景有哪些?
Redis在Python Web开发中常用于缓存、会话管理、分布式锁、排行榜、消息队列和实时分析。作为内存数据存储,它提供高效的数据结构(如字符串、哈希、列表、集合、有序集合),支持会话存储、互斥操作、计数与排名、队列实现及实时数据处理。其高速性能和丰富功能使其成为多场景下的理想选择。
58 5
|
3月前
|
缓存 NoSQL Redis
Python缓存技术(Memcached、Redis)面试题解析
【4月更文挑战第18天】本文探讨了Python面试中关于Memcached和Redis的常见问题,包括两者的基础概念、特性对比、客户端使用、缓存策略及应用场景。同时,文章指出了易错点,如数据不一致和缓存淘汰策略,并提供了实战代码示例,帮助读者掌握这两款内存键值存储系统的使用和优化技巧。通过理解其核心特性和避免常见错误,可以提升在面试中的表现。
63 2
|
30天前
|
NoSQL Redis 数据库
|
2月前
|
缓存 NoSQL Redis
Python与Redis:提升性能,确保可靠性,掌握最佳实践
Python与Redis:提升性能,确保可靠性,掌握最佳实践
|
2月前
|
存储 NoSQL Redis
Python—操作redis的一些心得
Python—操作redis的一些心得
17 0
|
3月前
|
NoSQL MongoDB Redis
Python与NoSQL数据库(MongoDB、Redis等)面试问答
【4月更文挑战第16天】本文探讨了Python与NoSQL数据库(如MongoDB、Redis)在面试中的常见问题,包括连接与操作数据库、错误处理、高级特性和缓存策略。重点介绍了使用`pymongo`和`redis`库进行CRUD操作、异常捕获以及数据一致性管理。通过理解这些问题、易错点及避免策略,并结合代码示例,开发者能在面试中展现其技术实力和实践经验。
467 9
Python与NoSQL数据库(MongoDB、Redis等)面试问答
|
2月前
|
NoSQL Redis Python
python中使用redis的常用命令
Python中使用Redis的常用命令。redis-py库提供了一个简单而强大的接口来执行Redis的各种操作。你可以根据需要选择合适的命令来操作Redis数据结构。
34 0
|
3月前
|
缓存 NoSQL Redis
在Python Web开发过程中:数据库与缓存,除了Redis是内存数据库以外,还有哪些原因使其运行速度快?
Redis在Python Web开发中快速的原因:内存存储、多样化数据结构(如字符串、哈希、列表等)简化数据模型,单线程处理提高效率,结合非阻塞I/O;RDB和AOF提供持久化保障;TCP+二进制协议减少网络开销;管道技术提升通信效率。这些设计使Redis能高效处理高并发请求。
46 3
|
3月前
|
监控 NoSQL 测试技术
python使用Flask,Redis和Celery的异步任务
python使用Flask,Redis和Celery的异步任务