Python操作Redis列表用法介绍
更新时间:2024-01-02什么是Redis列表
Redis列表是简单的字符串列表,在Redis中,你可以添加、删除和显示推入列表中存储的元素,Redis列表的基本操作是从头部插入元素,从尾部插入元素,删除元素,获取元素,切割和求长度。
# 创建一个列表 redis> lpush lwklist redis (integer) 1 redis> lpush lwklist mongodb (integer) 2 redis> lpush lwklist rabitmq (integer) 3 # 查看所有元素 redis> lrange lwklist 0 -1 1) "rabitmq" 2) "mongodb" 3) "redis"
Redis列表的操作
Redis列表的基本操作有rpush、lpush、rpop、lpop和lrange等。
# rpush 命令 redis> rpush lwklist redis (integer) 1 redis> rpush lwklist mongodb (integer) 2 redis> rpush lwklist rabitmq (integer) 3 # 查看队列长度 redis> llen lwklist (integer) 3 # lrange 命令,获取所有元素 redis> lrange lwklist 0 -1 1) "redis" 2) "mongodb" 3) "rabitmq" # lpop 命令,删除第一个元素 redis> lpop lwklist "redis" # 查看所有元素 redis> lrange lwklist 0 -1 1) "mongodb" 2) "rabitmq"
常用的Redis列表操作
Redis列表的操作最常用的是rpush、lpush、rpop和lpop命令,我们常用这些命令来实现队列或栈数据结构。下面我们给出一个使用Redis列表实现栈的例子。
import redis r = redis.Redis(host='localhost', port=6379, db=0) stack_key = 'lwkstack' r.delete(stack_key) # push 操作 r.lpush(stack_key, 'redis') r.lpush(stack_key, 'mongodb') r.lpush(stack_key, 'rabitmq') # 获取栈长度 print(r.llen(stack_key)) # pop 操作 print(r.lpop(stack_key))
Redis列表的内部实现
Redis列表内部是由一个链表(linkedlist)实现的,链表的每个节点都包含了一个列表元素,一个指向链表前置节点的指针和一个指向链表后置节点的指针。Redis的列表可以包含相同的元素,同样的元素也可以出现在列表的不同位置。
redis> rpush mylist a (integer) 1 redis> rpush mylist b (integer) 2 redis> rpush mylist a (integer) 3 redis> lrange mylist 0 -1 1) "a" 2) "b" 3) "a"通过上述代码,可以看出来Redis的列表可以包含相同的元素。