Redis-5-redis操作列表(lists)

本文详细介绍了 Redis 中 List 数据结构的操作,包括 lpush、lindex、rpush、lpushx、rpushx、llen、linsert、lrange、lset 和 lrem 等命令的用法,帮助读者掌握如何在 Redis 中管理列表数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

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']
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值