zoukankan      html  css  js  c++  java
  • Redis List 命令技巧

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

    lpush + lpop = stack

    127.0.0.1:6379> lpush mylist 1 2 3 4 5
    (integer) 5
    127.0.0.1:6379> lpop mylist
    "5"
    127.0.0.1:6379> lpop mylist
    "4"
    127.0.0.1:6379> lrange mylist 0 -1
    1) "3"
    2) "2"
    3) "1"

    2. 实现队列功能

    lpush + rpop   = queue

    127.0.0.1:6379> lpush mylist 4 5
    (integer) 5
    127.0.0.1:6379> lrange mylist 0 -1
    1) "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 -1
    1) "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) 5
    127.0.0.1:6379> lrange mylist 0 -1
    1) "5"
    2) "4"
    3) "3"
    4) "2"
    5) "1"
    127.0.0.1:6379> ltrim mylist 2 3
    OK
    127.0.0.1:6379> lrange mylist 0 -1
    1) "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) 5
    127.0.0.1:6379> brpop mylist 10
    1) "mylist"
    2) "1"
    127.0.0.1:6379> brpop mylist 100
    1) "mylist"
    2) "2"
    127.0.0.1:6379> brpop mylist 10000
    1) "mylist"
    2) "3"
    127.0.0.1:6379> brpop mylist 10
    1) "mylist"
    2) "4"
    127.0.0.1:6379> brpop mylist 10
    1) "mylist"
    2) "5"
    127.0.0.1:6379> brpop mylist 10
    (nil)
    (10.05s)
  • 相关阅读:
    内置函数
    递归函数:
    函数(迭代器与生成器)
    函数的装饰器
    函数:(函数的名字,闭包)
    函数(命名空间,作用域,嵌套)
    函数:(定义,调用,返回值和参数)
    hdu 4267 A Simple Problem with Integers(线段树)
    hdu 2089 不要62 hdu 3555 Bomb (数位DP)
    poj 2955 Brackets (区间DP)
  • 原文地址:https://www.cnblogs.com/haoprogrammer/p/11024821.html
Copyright © 2011-2022 走看看