使用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个元素
相关推荐
panpan161911 分钟前
Redis命令大全
redis
XiaoMaqqqq11 分钟前
目前知名的IP驱动产业新场景新工具有哪些
网络·python·网络协议·tcp/ip
玩大数据的龙威18 分钟前
农经权二轮延包—固定比例尺不定图幅的公示图批量生成
python·arcgis·二轮延包公示图
虎虎(_ _)。゜zzZ2 小时前
关于字典中的解包问题
python
全栈弄潮儿²⁰²⁴2 小时前
Python实战第2期: 变量与数据类型
python·变量·数据类型·python实战
java1234_小锋2 小时前
Redis 宣布正式接入 AI
数据库·人工智能·redis
行百里er2 小时前
Redis 持久化——RDB 快照 vs AOF 日志
redis·后端
程序员yu2 小时前
会编网络:别被入门教程骗了,Python实用能力不在语法本身
开发语言·python·学习·算法
鬼手点金2 小时前
opencode组件详解-安装方式
人工智能·python·优化器·分析器·nanogpt
Bruce_Liuxiaowei2 小时前
Python 字典默认值完全指南:从 KeyError 到 defaultdict
开发语言·数据结构·python·字典