前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Redis之List

Redis之List

作者头像
公众号guangcity
发布2019-09-20 17:27:48
6940
发布2019-09-20 17:27:48
举报
文章被收录于专栏:光城(guangcity)光城(guangcity)

Redis之List

1.特点

  • 队列:先进先出
  • 栈:先进后出
  • 数组:LIndEX LSET
  • 阻塞:BL BR

2.操作

栈原则:lpush

lpop:先进后出

rpop:先进先出

代码语言:javascript
复制
127.0.0.1:6379> lpush l1 a b c d e f
(integer) 6
127.0.0.1:6379> lrange l1 0 -1
1) "f"
2) "e"
3) "d"
4) "c"
5) "b"
6) "a"
127.0.0.1:6379> lpop l1
"f"
127.0.0.1:6379> lpop l1
"e"
127.0.0.1:6379> lpop l1
"d"
127.0.0.1:6379> lrange l1 0 -1
1) "c"
2) "b"
3) "a"
127.0.0.1:6379> rpop l1
"a"

支持数组:

代码语言:javascript
复制
127.0.0.1:6379> lrange l1 0 -1
1) "c"
2) "b"
3) "a"
127.0.0.1:6379> lrange l1 0 0
1) "c"

rpoplpush弹出并入目的列表

代码语言:javascript
复制
127.0.0.1:6379> lrange l1 0 -1
1) "c"
2) "b"
127.0.0.1:6379> rpoplpush l1 l2
"b"
127.0.0.1:6379> lrange l1 0 -1
1) "c"
127.0.0.1:6379> lrange l2 0 -1
1) "b"

LINDEX key index获取指定位置的元素

代码语言:javascript
复制
127.0.0.1:6379> lindex l1 0
"c"

lset key index value设置指定位置元素的值

代码语言:javascript
复制
127.0.0.1:6379> lset l1 0 a
OK
127.0.0.1:6379> lrange l1 0 -1
1) "a"

llen获取列表长度

代码语言:javascript
复制
127.0.0.1:6379> llen l1
(integer) 1

LREM key count value删除元素。

当count=0时,删除所有等于value的元素;

当count<0时,从后往前删去指定count个元素;

当count>0时,从前往后删去指定count个元素;

代码语言:javascript
复制
127.0.0.1:6379> rpush lk c abc c ab 123 ab bj ab redis list
(integer) 10
127.0.0.1:6379> lrange lk 0 -1
 1) "c"
 2) "abc"
 3) "c"
 4) "ab"
 5) "123"
 6) "ab"
 7) "bj"
 8) "ab"
 9) "redis"
10) "list"
127.0.0.1:6379> lrem lk 2 ab
(integer) 2
127.0.0.1:6379> lrange lk 0 -1
1) "c"
2) "abc"
3) "c"
4) "123"
5) "bj"
6) "ab"
7) "redis"
8) "list"
127.0.0.1:6379> lrem lk 2 ab
(integer) 1
127.0.0.1:6379> lrange lk 0 -1
1) "c"
2) "abc"
3) "c"
4) "123"
5) "bj"
6) "redis"
7) "list"
127.0.0.1:6379> rpush lk1 c abc c ab 123 ab bj ab redis list
(integer) 10
127.0.0.1:6379> lrange lk1 0 -1
 1) "c"
 2) "abc"
 3) "c"
 4) "ab"
 5) "123"
 6) "ab"
 7) "bj"
 8) "ab"
 9) "redis"
10) "list"
127.0.0.1:6379> lrem lk1 -1 ab
(integer) 1
127.0.0.1:6379> lrange lk1 0 -1
1) "c"
2) "abc"
3) "c"
4) "ab"
5) "123"
6) "ab"
7) "bj"
8) "redis"
9) "list"
127.0.0.1:6379> lrem lk1 0 ab
(integer) 2
127.0.0.1:6379> lrange lk1 0 -1
1) "c"
2) "abc"
3) "c"
4) "123"
5) "bj"
6) "redis"
7) "list"

ltrim去除指定范围外的元素

代码语言:javascript
复制
127.0.0.1:6379> lrange lk1 0 -1
1) "abc"
2) "123"
3) "bj"
4) "redis"
5) "list"
127.0.0.1:6379> ltrim lk1 0 -1
OK
127.0.0.1:6379> lrange lk1 0 -1
1) "abc"
2) "123"
3) "bj"
4) "redis"
5) "list"
127.0.0.1:6379> ltrim lk1 0 0
OK
127.0.0.1:6379> lrange lk1 0 -1
1) "abc"

ltrim实际用处?

比如想看评论,每次有很多新数据,可以用ltrim保留最近的评论数据。比如只想要前500条评论。

ltrim comment 0 499

linsert在列表中某个存在的值(pivot)之前或后插入元素。

代码语言:javascript
复制
127.0.0.1:6379> lpush l3 a b d
(integer) 3
127.0.0.1:6379> lrange l3 0 -1
1) "d"
2) "b"
3) "a"
127.0.0.1:6379> linsert l3 before b c
(integer) 4
127.0.0.1:6379> lrange l3 0 -1
1) "d"
2) "c"
3) "b"
4) "a"

阻塞:

b代表block。

blpop l1 0中0代表无限制等待,5代表5秒。

代码语言:javascript
复制
127.0.0.1:6379> blpop l1 0
1) "l1"
2) "q"
(7.67s)
127.0.0.1:6379> blpop l1 5
(nil)
(5.04s)
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-06-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 光城 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Redis之List
    • 1.特点
      • 2.操作
      相关产品与服务
      云数据库 Redis
      腾讯云数据库 Redis(TencentDB for Redis)是腾讯云打造的兼容 Redis 协议的缓存和存储服务。丰富的数据结构能帮助您完成不同类型的业务场景开发。支持主从热备,提供自动容灾切换、数据备份、故障迁移、实例监控、在线扩容、数据回档等全套的数据库服务。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档