使用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个元素
相关推荐
winfredzhang2 分钟前
如何使用 python 中的 Pillow 创建可自定义的图标生成器
python·pillow·图标·png
Allen Bright9 分钟前
Redis介绍
数据库·redis·缓存
qq_2739002328 分钟前
pytorch detach方法介绍
人工智能·pytorch·python
虞书欣的61 小时前
Python小游戏24——小恐龙躲避游戏
开发语言·python·游戏·小程序·pygame
FHYAAAX1 小时前
【机器学习】任务十:从函数分析到机器学习应用与BP神经网络
开发语言·python
PyAIGCMaster1 小时前
python环境中,敏感数据的存储与读取问题解决方案
服务器·前端·python
何曾参静谧2 小时前
「Py」模块篇 之 PyAutoGUI库自动化图形用户界面库
运维·python·自动化
pumpkin845142 小时前
客户端发送http请求进行流量控制
python·网络协议·http
smj2302_796826522 小时前
用枚举算法解决LeetCode第3348题最小可整除数位乘积II
python·算法·leetcode
你今天真好看+12 小时前
redis的事务
redis