前言
redis中的List在在内存中按照一个name对应一个List来存储
lists常用方法
lpush(name,values):在对应name中list的左边添加一个或多个元素
lindex(name, index):根本索引值取list中的元素
import redis
r = redis.Redis()
r.lpush("list001",10)
r.lpush("list001",20)
r.lpush("list001",30)
print(r.lindex("list001",0)) # 结果:30
rpush(name,values):在对应name中list的右边添加一个或多个元素
import redis
r = redis.Redis()
r.rpush("list002",10)
r.rpush("list002",20)
r.rpush("list002",30)
print(r.lindex("list002",0)) # 结果:10
lpushx(name,value):在name已存在的基础,list的左边添加元素
以下demo是因为list003不存在,所以导致的None结果
import redis
r = redis.Redis()
r.lpushx("list003",10)
print(r.lindex("list003",0)) # 结果:None
先用lpush设置一个列表后再次使用lpushx可以对比出效果
import redis
r = redis.Redis()
r.lpush("list003","suner")
r.lpushx("list003",10)
print(r.lindex("list003",0)) # 结果:b'10'
rpushx(name,value):在name已存在的基础,list的右边添加元素
import redis
r = redis.Redis()
r.lpush("list004","suner")
r.rpushx("list004",10)
print(r.lindex("list004",0)) # 结果:b'suner'
llen(name):name对应的list的元素个数(即列表长度)
import redis
r = redis.Redis()
r.lpush("list005","suner")
r.lpush("list005",10)
print(r.llen("list005")) # 结果:2
r.lpush("list005","male")
print(r.llen("list005")) # 结果:3
linsert(name, where, refvalue, value)):在name对应list的某个值前或者后插入一个新值
name:redis的name
where:BEFORE(前)或者AFTER(后)
refvalue:列表内的元素
value:要插入的新元素
lrange(name, start, end):截取list中的元素,这里是左右都是闭合的,如1,3就是取下标为1到下标为3的元素,这里有一个注意点是超过列表长度的话也不会报错,会继续从开头循环取
import redis
r = redis.Redis()
r.lpush("list006",100)
r.lpush("list006",200)
r.lpush("list006",300)
r.linsert("list006","BEFORE",300,900) # 在列表中元素300前面插入900
print(r.lrange("list006",0,3)) # 结果:[b'900', b'300', b'200', b'100']
print(r.lrange("list006",0,6)) # 结果:[b'900', b'300', b'200', b'100', b'900', b'300', b'200']
r.lset(name, index, value):列表中的某个索引重新赋值(即修改列表中的元素)
import redis
r = redis.Redis()
r.lpush("list006",100)
r.lpush("list006",200)
r.lpush("list006",300)
r.lset("list006",0,3000) # 索引为0的修改为3000
print("打印出所有列表元素:",r.lrange("list006",0,2)) # 结果:[b'3000', b'200', b'100']
r.lrem(name, count,value):删除列表中的指定元素,并且可以指定删除次数
count为0的话默认删除list中指定的所有元素,count为负,表示从右往左删除相应个数
import redis
r = redis.Redis()
r.lpush("list007",100)
r.lpush("list007",100)
r.lpush("list007",300)
r.lpush("list007",300)
r.lpush("list007",300)
r.lrem("list007",1,100)
print("共删除1个元素后的list:",r.lrange("list007",0,3)) # 结果:[b'300', b'300', b'300', b'100']
r.lrem("list007",2,300)
print("共删除3个元素后的list:",r.lrange("list007",0,1)) # 结果:[b'300', b'100']
lpop(name):移除列表左侧的第一个元素,并返回这个元素
import redis
r = redis.Redis()
r.lpush("list007",100)
r.lpush("list007",200)
r.lpush("list007",300)
print(r.lpop("list007")) # 结果:b'300'
print(r.lrange("list007",0,1)) # 结果:[b'200', b'100']