每天都学一点

Redis List 命令技巧

07 05月
作者:林健|分类:Linux

Redis List 命令技巧            

1.实现栈的功能(先进后出)

lpush + lpop = stack

复制代码
127.0.0.1:6379> lpush mylist 1 2 3 4 5(integer) 5127.0.0.1:6379> lpop mylist"5"127.0.0.1:6379> lpop mylist"4"127.0.0.1:6379> lrange mylist 0 -11) "3"2) "2"3) "1"
复制代码

 

2. 实现队列功能

lpush + rpop   = queue

复制代码
127.0.0.1:6379> lpush mylist 4 5(integer) 5127.0.0.1:6379> lrange mylist 0 -11) "5"2) "4"3) "3"4) "2"5) "1"127.0.0.1:6379> rpop mylist"1"127.0.0.1:6379> rpop mylist"2"127.0.0.1:6379> lrange mylist 0 -11) "5"2) "4"3) "3"
复制代码

 

3. 实现有限数据集合

lpush + ltrim = capped collection

ltrim [ltrim key  range_l range_r]:保留区域类的元素,其他的删除

复制代码
127.0.0.1:6379> rpush mylist 2 1(integer) 5127.0.0.1:6379> lrange mylist 0 -11) "5"2) "4"3) "3"4) "2"5) "1"127.0.0.1:6379> ltrim mylist 2 3OK127.0.0.1:6379> lrange mylist 0 -11) "3"2) "2"
复制代码

 

4.实现消息队列

lpush + brpop = message queue

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

操作命令   BRPOP list  timeout

brpop mylist 10

返回值

假如在指定时间内没有任何元素被弹出,则返回一个 nil 和等待时长。 反之,返回一个含有两个元素的列表,第一个元素是被弹出元素所属的 key ,第二个元素是被弹出元素的值。

复制代码
127.0.0.1:6379> lpush mylist 1 2 3 4 5(integer) 5127.0.0.1:6379> brpop mylist 101) "mylist"2) "1"127.0.0.1:6379> brpop mylist 1001) "mylist"2) "2"127.0.0.1:6379> brpop mylist 100001) "mylist"2) "3"127.0.0.1:6379> brpop mylist 101) "mylist"2) "4"127.0.0.1:6379> brpop mylist 101) "mylist"2) "5"127.0.0.1:6379> brpop mylist 10(nil)
(10.05s)
复制代码

 


    浏览1 评论0
    返回
    目录
    返回
    首页
    kubernetes系列(小知识):kubectl命令自动补全 docker批量删除容器、镜像(转载)

    发表评论