zoukankan      html  css  js  c++  java
  • Redis列表操作

    列表类似于双向链表结构,可从序列两端推入或者弹出元素。

    (列表常用命令)

    RPUSH : RPUSH key-name value  [value1 value2,...] ------------将一个或多个值推入列表右端

    LPUSH : LPUSH key-name value  [value1 value2,...] ------------将一个或多个值推入列表左端

    RPOP  : RPOP key-name----------移除并返回列表最右端元素

    LPOP  :LPOP key-name----------移除并返回列表最左端元素

    LINDEX : LINDEX key-name  offset --------------返回列表中偏移量为offset的元素

    LRANGE : LRANGE key-name start end -------------返回列表中偏移量从start到end范围内的元素

    LTRIM : LTRIM key-name start end ----------------对列表进行修剪,只保留偏移量从start到end范围内的元素

    >>> import redis
    >>> conn = redis.Redis(host='192.168.146.129',port=6379,db=0)
    >>> conn.rpush('list-key','value1','value2','value3')
    3L
    >>> conn.lpush('list-key','value3','value4')
    5L
    >>> conn.lrange('list-key',0,-1)
    ['value4', 'value3', 'value1', 'value2', 'value3']
    >>> conn.lpop('list-key')
    'value4'
    >>> conn.rpop('list-key')
    'value3'
    >>> conn.lrange('list-key',0,-1)
    ['value3', 'value1', 'value2']
    >>> conn.ltrim('list-key',1,-1)
    True
    >>> conn.lrange('list-key',0,-1)
    ['value1', 'value2']

    (阻塞式列表弹出命令以及在列表之间移动元素的命令)  B ----BLOCK

    BLPOP : BLPOP key-name [key-name ...] timeout ----从第一个非空列表中弹出位于最左端的元素,或者在time-out秒之内阻塞等待可弹出的元素出现

    BRPOP : BRPOP key-name [key-name ...] timeout ----从第一个非空列表中弹出位于最右端的元素,或者在time-out秒之内阻塞等待可弹出的元素出现

    RPOPLPUSH : RPOPLPUSH source-key dest-key ----------从soure-key 列表中弹出最右端的元素,然后将这个元素推入dest-key列表的最左端,并向用户返回这个元素

    BRPOPLPUSH : BRPOPLPUSH  source-key dest-key timeout----------从soure-key 列表中弹出最右端的元素,然后将这个元素推入dest-key列表的最左端,并向用户返回这个元素;如果source-key为空,那么在timeout秒之内阻塞并等待可弹出的元素出现

    >>> conn.rpush('list','item1')
    1L
    >>> conn.rpush('list','item2')
    2L
    >>> conn.rpush('list2','item3')
    1L
    >>> conn.brpoplpush('list2','list',1)
    'item3'
    >>> conn.brpoplpush('list2','list',1)
    >>> conn.lrange('list',0,-1)
    ['item3', 'item1', 'item2']
    >>> conn.brpoplpush('list2','list',1)
    >>> conn.brpoplpush('list','list2',1)
    'item2'
    >>> conn.blpop(['list','list2'],1)
    ('list', 'item3')
    >>> conn.blpop(['list','list2'],1)
    ('list', 'item1')
    >>> conn.blpop(['list','list2'],1)
    ('list2', 'item2')
    >>> conn.blpop(['list','list2'],1)
  • 相关阅读:
    C#使用xpath简单爬取网站的内容
    Python的安装以及编译器的安装
    解析二维码
    C#的历史及IDE总结
    我又回来了,这回是带着C++来的
    Python 基础知识
    template declarations(模板声明)中 class 和 typename 有什么不同?
    投影点坐标
    内存对齐代码解析
    互斥量和信号量的区别
  • 原文地址:https://www.cnblogs.com/ldybyz/p/6422047.html
Copyright © 2011-2022 走看看