使用Python读写Redis——Lists

之前详细介绍了 Redis命令 - Lists命令组常用命令,同样的命令,本文将用python调用redis库封装好的方法。

要操作的Lists命令如下

1、LSET key index value

2、LINSERT key BEFORE|AFTER pivot value

3、LPUSH key value value ...

4、RPUSH key value value ...

5、LPUSHX key value value...

6、RPUSHX key value value...

7、LPOP key

8、RPOP key

9、LLEN key

10、LINDEX key index

11、LRANGE key start stop

Python连接redis

python 复制代码
import redis
from config.VAR import INT_REDIS_HOST, INT_REDIS_PORT, INT_REDIS_PASSWORD

# 便于修改,将redis的连接配置在VAR.py中,管理这些常量
r = redis.StrictRedis(host=INT_REDIS_HOST, port=INT_REDIS_PORT, password=INT_REDIS_PA

Python使用Lists命令

python 复制代码
# LSET key index value
# 前提:redis中必须已经有此key,否则会报no such key的error。我创建的mylist是一个空list
print(r.lset("mylist", 0, "1"))  # 若key存在,返回: True

# LRANGE key start stop
print(r.lrange("mylist", 0, -1))  # list的值:[b'1'],只有这一个元素

# LINSERT key BEFORE|AFTER pivot value
# 在 1 前边插入 -2
print(r.linsert("mylist", "before", "1", "-2"))  # 返回值2:操作成功后list的长度
print(r.lrange("mylist", 0, -1))  # [b'-2', b'1']
# 在 -2 后边插入 3
print(r.linsert("mylist", "after", "-2", "3"))  # 3
print(r.lrange("mylist", 0, -1))  # [b'-2', b'3', b'1']

# LPUSH key value [value ...]
print(r.lpush("mylist", "4"))  # 返回值4:操作成功后list的长度
print(r.lrange("mylist", 0, -1))  # [b'4', b'-2', b'3', b'1']
# 多值push,依次从左到右将值push进list,例如下面:先推的7,再推的8
print(r.lpush("mylist", *["7", "8"]))  # 6
print(r.lrange("mylist", 0, -1))  # [b'8', b'7', b'4', b'-2', b'3', b'1']

# RPUSH key value [value ...]
print(r.rpush("mylist", "5"))  # 7
print(r.lrange("mylist", 0, -1))  # [b'8', b'7', b'4', b'-2', b'3', b'1', b'5']
print(r.rpush("mylist", *["9", "10"]))  # 9
print(r.lrange("mylist", 0, -1))  # [b'8', b'7', b'4', b'-2', b'3', b'1', b'5', b'9', b'10']

# LPUSHX key value [value...]
print(r.lpushx("mylist", "5"))  # 10
print(r.lrange("mylist", 0, -1))  # [b'5', b'8', b'7', b'4', b'-2', b'3', b'1', b'5', b'9', b'10']

# RPUSHX key value [value...]
print(r.rpushx("mylist", "8"))  # 11
print(r.lrange("mylist", 0, -1))  # [b'5', b'8', b'7', b'4', b'-2', b'3', b'1', b'5', b'9', b'10', b'8']

# LPOP key
# 此操作会删除元素
print(r.lpop("mylist"))  # 参数count默认是1,返回值:b'5',返回的是第一个值
print(r.lpop("mylist", 2))  # [b'8', b'7']
print(r.lrange("mylist", 0, -1))  # [b'4', b'-2', b'3', b'1', b'5', b'9', b'10', b'8']

# RPOP key
# 此操作会删除元素
print(r.rpop("mylist"))  # 参数count默认是1,返回值:b'8',返回的是最后一个值
print(r.rpop("mylist", 3))  # [b'10', b'9', b'5'],注意弹出的顺序
print(r.lrange("mylist", 0, -1))  # [b'4', b'-2', b'3', b'1']

# LLEN key
print(r.llen("mylist"))  # 返回值4,list的长度

# LINDEX key index
print(r.lindex("mylist", 3))  # 返回值b'1'
print(r.lindex("mylist", 5))  # 返回值None, 因为索引超过了范围,只有4个元素
相关推荐
笨笨饿41 分钟前
#137_死机恢复现场_Armino平台AP系统swd调试
git·python·stm32·单片机·嵌入式硬件·物联网·vim
2601_9623824343 分钟前
python常用函数大全pdf-python函数大全.pdf
python·内置函数·io操作·集合操作·数学运算
奈斯先生Vector1 小时前
AIGC 视频生成实战:用 Kling Video 拆解文生视频、图生视频与完整工作流
开发语言·人工智能·windows·python·aigc·音视频
吃饱了得干活1 小时前
Redis 不是死脑筋,它是一套“会进化”的存储系统
redis·后端
小玮看世界1 小时前
[Python]螺旋遍历 vs 最短路径:方向控制类算法的“同源异流”
开发语言·python·算法
OPEN-F1 小时前
ROS2系列教程:tf2坐标变换详解(C++/Python)
开发语言·c++·python
盟道科技1 小时前
小程序电商订单超时自动取消的三种实现方案:定时扫描、Redis 过期监听、延迟消息对比与生产落地
数据库·redis·小程序
2601_962097361 小时前
Python工作流实战:SpiffWorkflow深度应用与BPMN自动化指南
python·自动化·工作流·bpmn·spiffworkflow
baopixiaoz2 小时前
BeeQuant × BeeAgent:AI驱动智能交易
大数据·人工智能·python·区块链
夕除2 小时前
redis--011
redis