我的编程空间,编程开发者的网络收藏夹
学习永远不晚

redis基本操作 —— list

短信预约 信息系统项目管理师 报名、考试、查分时间动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

redis基本操作 —— list

redis基本操作 —— list

一、将一个或多个值插入到列表头部

  命令:lpush

  格式:lpush key value1 [value2] ...

127.0.0.1:6379> lpush list_key 1
(integer) 1
127.0.0.1:6379> lpush list_key 2 3 4
(integer) 4

二、获取列表指定范围内的元素

  命令:lrange

  格式:lrange key begin_index end_index

127.0.0.1:6379> lpush list_key 1
(integer) 1
127.0.0.1:6379> lpush list_key 2 3 4
(integer) 4
127.0.0.1:6379> lrange list_key 0 1
1) "4"
2) "3"
127.0.0.1:6379> lrange list_key 0 0
1) "4"
127.0.0.1:6379> lrange list_key 2 3
1) "2"
2) "1"
127.0.0.1:6379> lrange list_key 0 10
1) "4"
2) "3"
3) "2"
4) "1"

三、将一个值插入到已存在的列表头部

  命令:lpushx

  格式:lpushx key value

127.0.0.1:6379> del list_key
(integer) 1
127.0.0.1:6379> lrange list_key 0 10
(empty list or set)
127.0.0.1:6379> lpushx list_key 1
(integer) 0
127.0.0.1:6379> lrange list_key 0 10
(empty list or set)
127.0.0.1:6379> lpush list_key 1
(integer) 1
127.0.0.1:6379> lrange list_key 0 10
1) "1"
127.0.0.1:6379> lpushx list_key 2
(integer) 2
127.0.0.1:6379> lrange list_key 0 10
1) "2"
2) "1"

四、将一个或多个值插入到列表尾部

  命令:rpush

  格式:rpush key value1 [value2] ...

127.0.0.1:6379> lrange list_key 0 10
1) "2"
2) "1"
127.0.0.1:6379> lpush list_key 3
(integer) 3
127.0.0.1:6379> lrange list_key 0 10
1) "3"
2) "2"
3) "1"
127.0.0.1:6379> rpush list_key 4
(integer) 4
127.0.0.1:6379> lrange list_key 0 10
1) "3"
2) "2"
3) "1"
4) "4"

五、将一个值插入到已存在的列表尾部

  命令:rpushx

  格式:rpushx key value

127.0.0.1:6379> del list_key
(integer) 1
127.0.0.1:6379> lrange list_key 0 10
(empty list or set)
127.0.0.1:6379> rpushx list_key 1
(integer) 0
127.0.0.1:6379> lrange list_key 0 10
(empty list or set)
127.0.0.1:6379> rpush list_key 1
(integer) 1
127.0.0.1:6379> lrange list_key 0 10
1) "1"
127.0.0.1:6379> rpushx list_key 2
(integer) 2
127.0.0.1:6379> lrange list_key 0 10
1) "1"
2) "2"

六、移出并获取列表的第一个元素

  命令:lpop

  格式:lpop key

127.0.0.1:6379> del list_key
(integer) 1
127.0.0.1:6379> lpush list_key 1 2 3 4 5 
(integer) 5
127.0.0.1:6379> lrange list_key 0 10
1) "5"
2) "4"
3) "3"
4) "2"
5) "1"
127.0.0.1:6379> lpop list_key
"5"
127.0.0.1:6379> lrange list_key 0 10
1) "4"
2) "3"
3) "2"
4) "1"

七、移出并获取列表的最后一个元素

  命令:rpop

  格式:rpop key

127.0.0.1:6379> lrange list_key 0 10
1) "4"
2) "3"
3) "2"
4) "1"
127.0.0.1:6379> rpop list_key
"1"
127.0.0.1:6379> lrange list_key 0 10
1) "4"
2) "3"
3) "2"

八、获取列表长度

  命令:llen

  格式:llen key

127.0.0.1:6379> lrange list_key 0 10
1) "4"
2) "3"
3) "2"
127.0.0.1:6379> llen list_key
(integer) 3
127.0.0.1:6379> lpush list_key 5 6 7 
(integer) 6
127.0.0.1:6379> lrange list_key 0 10
1) "7"
2) "6"
3) "5"
4) "4"
5) "3"
6) "2"
127.0.0.1:6379> llen list_key
(integer) 6

九、通过索引获取列表中的元素

  命令:lindex

  格式:lindex key index

127.0.0.1:6379> lrange list_key 0 10
1) "7"
2) "6"
3) "5"
4) "4"
5) "3"
6) "2"
127.0.0.1:6379> lindex list_key 4
"3"
127.0.0.1:6379> lindex list_key 0
"7"
127.0.0.1:6379> lindex list_key 7
(nil)
127.0.0.1:6379> lindex list_key 6
(nil)
127.0.0.1:6379> lindex list_key 5
"2"

十、移出并获取列表的第一个元素, 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止

  命令:blpop

  格式:blpop key1 [key2] timeout

对于有元素的list:

127.0.0.1:6379> lpush l1 1 2 3 4
(integer) 4
127.0.0.1:6379> lpush l2 a b c d
(integer) 4
127.0.0.1:6379> lrange l1 0 10
1) "4"
2) "3"
3) "2"
4) "1"
127.0.0.1:6379> lrange l2 0 10
1) "d"
2) "c"
3) "b"
4) "a"
127.0.0.1:6379> blpop l1 l2 1
1) "l1"
2) "4"
127.0.0.1:6379> blpop l1 l2 1
1) "l1"
2) "3"
127.0.0.1:6379> blpop l1 l2 1
1) "l1"
2) "2"
127.0.0.1:6379> blpop l1 l2 1
1) "l1"
2) "1"
127.0.0.1:6379> blpop l1 l2 1
1) "l2"
2) "d"
127.0.0.1:6379> blpop l1 l2 1
1) "l2"
2) "c"
127.0.0.1:6379> blpop l1 l2 1
1) "l2"
2) "b"
127.0.0.1:6379> blpop l1 l2 1
1) "l2"
2) "a"
127.0.0.1:6379> blpop l1 l2 1
//1s后
(nil)
(1.05s)

对于无元素的list:

127.0.0.1:6379> blpop l1 l2 1
//1s后
(nil)
(1.06s)
127.0.0.1:6379> blpop l1 l2 10
//另一客户端调用 lpush l1 1
1) "l1"
2) "1"
(1.54s)
127.0.0.1:6379> blpop l1 l2 0
//一直等待

十一、移出并获取列表的最后一个元素, 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止

  命令:brpop

  格式:brpop key1 [key2] timeout

操作与blpop相同,此处略

十二、移除列表的最后一个元素,并将该元素添加到另一个列表并返回

  命令:rpoplpush

  格式:rpoplpush source target

127.0.0.1:6379> del l1 l2
(integer) 1
127.0.0.1:6379> lpush l1 1 2 3
(integer) 3
127.0.0.1:6379> lrange l1 0 10
1) "3"
2) "2"
3) "1"
127.0.0.1:6379> lrange l2 0 10
(empty list or set)
127.0.0.1:6379> rpoplpush l1 l2
"1"
127.0.0.1:6379> lrange l1 0 10
1) "3"
2) "2"
127.0.0.1:6379> lrange l2 0 10
1) "1"
127.0.0.1:6379> rpoplpush l1 l2
"2"
127.0.0.1:6379> rpoplpush l1 l2
"3"
127.0.0.1:6379> rpoplpush l1 l2
(nil)
127.0.0.1:6379> lrange l1 0 10
(empty list or set)
127.0.0.1:6379> lrange l2 0 10
1) "3"
2) "2"
3) "1"

十三、从列表中弹出一个值,将弹出的元素插入到另外一个列表中并返回它; 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止

  命令:brpoplpush

  格式:brpoplpush source target timeout

source有元素时:

127.0.0.1:6379> del l1 l2
(integer) 0
127.0.0.1:6379> lpush l1 1 2 3
(integer) 3
127.0.0.1:6379> lrange l1 0 10
1) "3"
2) "2"
3) "1"
127.0.0.1:6379> lrange l2 0 10
(empty list or set)
127.0.0.1:6379> brpoplpush l1 l2 1
"1"
127.0.0.1:6379> lrange l1 0 10
1) "3"
2) "2"
127.0.0.1:6379> lrange l2 0 10
1) "1"
127.0.0.1:6379> brpoplpush l1 l2 1
"2"
127.0.0.1:6379> brpoplpush l1 l2 1
"3"
127.0.0.1:6379> brpoplpush l1 l2 1
//1s后
(nil)
(1.06s)
127.0.0.1:6379> lrange l1 0 10
(empty list or set)
127.0.0.1:6379> lrange l2 0 10
1) "3"
2) "2"
3) "1"

source无元素时,与blpop brpop类似

十四、在列表的第一个指定元素pivot前或者后插入元素value

  命令:linsert

  格式:linsert key before|after pivot value

127.0.0.1:6379> lpush list_key 1 2 1 3 1 4
(integer) 6
127.0.0.1:6379> lrange list_key 0 10
1) "4"
2) "1"  //第一个指定元素"1"
3) "3"
4) "1"
5) "2"
6) "1"
127.0.0.1:6379> linsert list_key after 1 5
(integer) 7
127.0.0.1:6379> lrange list_key 0 10
1) "4"
2) "1"  //第一个指定元素"1"
3) "5"
4) "3"
5) "1"
6) "2"
7) "1"
127.0.0.1:6379> linsert list_key before 1 6
(integer) 8
127.0.0.1:6379> lrange list_key 0 10
1) "4"
2) "6"
3) "1"  //第一个指定元素"1"
4) "5"
5) "3"
6) "1"
7) "2"
8) "1"

十五、从列表头部开始,移除count个指定元素value

  命令:lrem

  格式:lrem key count value

127.0.0.1:6379> lrange list_key 0 10
1) "4"
2) "6"
3) "1"
4) "5"
5) "3"
6) "1"
7) "2"
8) "1"
127.0.0.1:6379> lrem list_key 1 1
(integer) 1
127.0.0.1:6379> lrange list_key 0 10
1) "4"
2) "6"
3) "5"
4) "3"
5) "1"
6) "2"
7) "1"
127.0.0.1:6379> lrem list_key 2 1
(integer) 2
127.0.0.1:6379> lrange list_key 0 10
1) "4"
2) "6"
3) "5"
4) "3"
5) "2"
127.0.0.1:6379> lrem list_key 1 1
(integer) 0
127.0.0.1:6379> lrange list_key 0 10
1) "4"
2) "6"
3) "5"
4) "3"
5) "2"

十六、通过索引设置列表元素的值

  命令:lset

  格式:lset key index value

127.0.0.1:6379> rpush list_key 1 2 3 4 5
(integer) 5
127.0.0.1:6379> lrange list_key 0 10
1) "1"
2) "2"
3) "3"
4) "4"
5) "5"
127.0.0.1:6379> lset list_key 0 10
OK
127.0.0.1:6379> lrange list_key 0 10
1) "10"
2) "2"
3) "3"
4) "4"
5) "5"
127.0.0.1:6379> lset list_key 3 10
OK
127.0.0.1:6379> lrange list_key 0 10
1) "10"
2) "2"
3) "3"
4) "10"
5) "5"

十七、对一个列表进行修剪,删除指定下标区间[start,stop]之外的元素

  命令:ltrim

  格式:ltrim key start stop

127.0.0.1:6379> del list_key
(integer) 1
127.0.0.1:6379> rpush list_key 1 2 3 4 5 6 7 8 9
(integer) 9
127.0.0.1:6379> lrange list_key 0 10
1) "1"
2) "2"
3) "3"
4) "4"
5) "5"
6) "6"
7) "7"
8) "8"
9) "9"
127.0.0.1:6379> ltrim list_key 3 6
OK
127.0.0.1:6379> lrange list_key 0 10
1) "4"
2) "5"
3) "6"
4) "7"

 

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

redis基本操作 —— list

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

redis基本操作 —— list

一、将一个或多个值插入到列表头部  命令:lpush  格式:lpush key value1 [value2] ...127.0.0.1:6379> lpush list_key 1(integer) 1127.0.0.1:6379> lpush list_
redis基本操作 —— list
2015-04-07

redis基本操作 —— set

一、向集合添加一个或多个成员  命令:sadd  格式:sadd key member1 [member2]127.0.0.1:6379> sadd set_key m1(integer) 1127.0.0.1:6379> sadd set_key m2 m3
redis基本操作 —— set
2021-08-30

redis基本操作 —— string

一、设置指定key的值   命令:set  格式:set key value127.0.0.1:6379> set test_key test_valueOK二、获取指定key的值  命令:get  格式:get key127.0.0.1:6379> get
redis基本操作 —— string
2021-10-09

redis基本操作 —— hash

一、将哈希表 key 中的字段 field 的值设为 value  命令:hset  格式:hset key field value127.0.0.1:6379> hset hash_key key1 v1(integer) 1127.0.0.1:6379>
redis基本操作 —— hash
2015-11-19

redis基本操作 —— sorted set

Redis 有序集合和集合一样也是string类型元素的集合,且不允许重复的成员。不同的是每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。有序集合的成员是唯一的,但分数(score)却可以重复。 一、向有序
redis基本操作 —— sorted set
2017-09-21

Redis基本数据类型List常用操作命令是什么

这篇文章主要讲解了“Redis基本数据类型List常用操作命令是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Redis基本数据类型List常用操作命令是什么”吧!Redis数据类型Li
2023-06-30

Redis基本操作进阶篇-

Redis中的事务(transaction)是一组命令的集合。一个事务中的命令要么全部执行,要么都不执行。Redis的事务没有关系数据库事务提供的回滚(rollback)功能。 事务概述Redis中的事务(transaction)是一组命令的集合。一个事
Redis基本操作进阶篇-
2016-05-07

python之LIST基础操作

1,创建列表>>> list1=['a','b','c','d']>>> list2=[1,2,3,4]>>> list3=['a','b','c',1,2,3]2,访问列表中的值>>> print 'list1[0]:',list1[0]
2023-01-31

Redis基本操作进阶篇学习-

Redis中SORT命令可以对列表类型、集合类型以及有序集合类型键进行排序,并返回显示排序的结果,但是不会对原有数据进行修改。 有序集合Redis有序集合中每个元素都会关联一个double类型的分数。Redis通过分数来为集合中的成员进行从小到大的排序。
Redis基本操作进阶篇学习-
2015-09-03

Python操作SQLLite(基本操作

SQLite 是一个软件库,实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。SQLite 是在世界上最广泛部署的 SQL 数据库引擎。SQLite 源代码不受版权限制。Python SQLITE数据库是一款非常小巧的嵌
2023-01-31

编程热搜

目录