python调用redis-cell(CL.THROTTLE)

本文涉及的产品
云数据库 Tair(兼容Redis),内存型 2GB
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
简介: 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 Unix 网络安全
【Azure Cache for Redis】Python Django-Redis连接Azure Redis服务遇上(104, 'Connection reset by peer')
【Azure Cache for Redis】Python Django-Redis连接Azure Redis服务遇上(104, 'Connection reset by peer')
【Azure Cache for Redis】Python Django-Redis连接Azure Redis服务遇上(104, 'Connection reset by peer')
|
2月前
|
NoSQL Linux Redis
linux安装单机版redis详细步骤,及python连接redis案例
这篇文章提供了在Linux系统中安装单机版Redis的详细步骤,并展示了如何配置Redis为systemctl启动,以及使用Python连接Redis进行数据操作的案例。
69 2
|
1月前
|
消息中间件 存储 NoSQL
python 使用redis实现支持优先级的消息队列详细说明和代码
python 使用redis实现支持优先级的消息队列详细说明和代码
37 0
|
3月前
|
缓存 NoSQL 网络安全
【Azure Redis 缓存】 Python连接Azure Redis, 使用redis.ConnectionPool 出现 "ConnectionResetError: [Errno 104] Connection reset by peer"
【Azure Redis 缓存】 Python连接Azure Redis, 使用redis.ConnectionPool 出现 "ConnectionResetError: [Errno 104] Connection reset by peer"
|
3月前
|
缓存 监控 NoSQL
【Azure Redis 缓存】使用Python代码获取Azure Redis的监控指标值 (含Powershell脚本方式)
【Azure Redis 缓存】使用Python代码获取Azure Redis的监控指标值 (含Powershell脚本方式)
|
3月前
|
NoSQL 网络安全 Redis
用python安装redis并设置服务自启
用python安装redis并设置服务自启
28 0
|
4月前
|
NoSQL Redis 数据库
|
5月前
|
缓存 NoSQL Redis
Python与Redis:提升性能,确保可靠性,掌握最佳实践
Python与Redis:提升性能,确保可靠性,掌握最佳实践
|
5月前
|
存储 NoSQL Redis
Python—操作redis的一些心得
Python—操作redis的一些心得
25 0
|
5月前
|
NoSQL Redis Python
python中使用redis的常用命令
Python中使用Redis的常用命令。redis-py库提供了一个简单而强大的接口来执行Redis的各种操作。你可以根据需要选择合适的命令来操作Redis数据结构。
55 0