使用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个元素
相关推荐
程序猿 小项目大搞头14 分钟前
即梦批量生成图片软件使用运营大管家-即梦图片批量生成器
python
dpxiaolong24 分钟前
RK3588 Android12默认移除导航栏
开发语言·python
max5006001 小时前
基于多元线性回归、随机森林与神经网络的农作物元素含量预测及SHAP贡献量分析
人工智能·python·深度学习·神经网络·随机森林·线性回归·transformer
Pocker_Spades_A1 小时前
Python快速入门专业版(二十九):函数返回值:多返回值、None与函数嵌套调用
服务器·开发语言·python
yunpeng.zhou1 小时前
logging 模块升级版 loguru
python
恣艺1 小时前
Redis列表(List):实现队列/栈的利器,底层原理与实战
数据库·redis·list
kida_yuan2 小时前
【从零开始】14. 数据评分与筛选
python·数据分析·nlp
小李独爱秋2 小时前
特征值优化:机器学习中的数学基石
人工智能·python·线性代数·机器学习·数学建模
TwoAI2 小时前
Matplotlib:绘制你的第一张折线图与散点图
python·matplotlib
摸鱼仙人~2 小时前
一文详解 Python 密码哈希库 Passlib
开发语言·python·哈希算法