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

(列表常用命令)

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)

Redis列表操作的更多相关文章

  1. redis列表操作基本命令

    RPUSH:从列表尾部插入一个元素,RPOP:返回列表最后一个元素并从列表删除LPUSH:从列表头部插入一个元素,LPOP:返回列表第一个元素并从列表删除(没看到命名的介绍,个人理解R就是right, ...

  2. [Redis-CentOS7]Redis列表操作(三)

    LPUSH添加列表 127.0.0.1:6379> LPUSH websites www.baidu.com (integer) 1 LRANGE 获取全部值 127.0.0.1:6379> ...

  3. 征服 Redis + Jedis + Spring (三)—— 列表操作【转】

    一开始以为Spring下操作哈希表,列表,真就是那么土.恍惚间发现“stringRedisTemplate.opsForList()”的强大,抓紧时间恶补下. 相关链接: 征服 Redis 征服 Re ...

  4. python连接redis、redis字符串操作、hash操作、列表操作、其他通用操作、管道、django中使用redis

    今日内容概要 python连接redis redis字符串操作 redis之hash操作 redis之列表操作 redis其他 通用操作,管道 django中使用redis 内容详细 1.python ...

  5. Redis 列表 List 主要操作函数

    /** * redis 列表 List Redis列表是简单的字符串列表,按照插入顺序排序.你可以添加一个元素导列表的头部(左边)或者尾部(右边) */ //lpush 新增一个列,多个列可以用空格隔 ...

  6. 八十三:redis之redis的字符串、过期时间、列表操作

    字符串操作 设置值 set key value 设置有空格的值,加引号 set username 'hello world' 获取值 get key 删除值:del key 清除所有内容:flusha ...

  7. python对缓存(memcached,redis)的操作

    1.Memcached Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态.数据库驱动网站的 ...

  8. redis列表list

    Redis Rpush 命令  Redis 列表(List) Redis Rpush 命令用于将一个或多个值插入到列表的尾部(最右边). 如果列表不存在,一个空列表会被创建并执行 RPUSH 操作. ...

  9. Redis .NET操作

    Redis是一个支持数据结构更多的键值对数据库.它的值不仅可以是字符串等基本数据类型,也可以是类对象,更可以是Set.List.计数器等高级的数据结构. Memcached也可以保存类似于Set.Li ...

随机推荐

  1. 缓存中使用的ReentrantReadWriteLock锁

    java中提供了lock锁,简便了设计缓存,下面程序主要是使用读写锁的应用.... import java.util.HashMap; import java.util.Map; import jav ...

  2. redis集群(主从配置)

    市面上太多kv的缓存,最常用的就属memcache了,但是memcache存在单点问题,不过小日本有复制版本,但是使用的人比较少,redis的出现让kv内存存储的想法成为现实.今天主要内容便是redi ...

  3. 【转】C#中Serializable序列化实例详解

    这篇文章主要介绍了C#中Serializable序列化,以实例形式详细讲述了系列化的技术及各种序列化方法,非常具有实用价值,需要的朋友可以参考下 本文实例讲述了C#中Serializable序列化.分 ...

  4. [leetcode.com]算法题目 - Maximum Subarray

    Find the contiguous subarray within an array (containing at least one number) which has the largest ...

  5. [leetcode.com]算法题目 - Decode Ways

    A message containing letters from A-Z is being encoded to numbers using the following mapping: 'A' - ...

  6. VMware中安装Contos

    1 检查BIOS虚拟化支持 2 新建虚拟机 3 新建虚拟机向导 4 创建虚拟空白光盘 5 安装Linux系统对应的CentOS版 6 虚拟机命名和定位磁盘位置 7 处理器配置,看自己是否是双核.多核 ...

  7. PHP中eval函数的危害与正确禁用方法

    其实 eval()是无法用php.ini中的 disable_functions禁止掉的 :eval是zend的,因此不是PHP_FUNCTION 函数: 如果想禁掉eval可以用php的扩展 Suh ...

  8. RabbitMQ在mac上的安装

    1.官网下载rabbitmq-server-3.6.3, 地址http://www.rabbitmq.com/install-standalone-mac.html.2.tar -zxvf rabbi ...

  9. Python大法之告别脚本小子系列—各类URL采集器编写

    本文作者:i春秋签约作家——阿甫哥哥 系列文章专辑:https://bbs.ichunqiu.com/forum.php?mod=collection&action=view&ctid ...

  10. InfluxDB Java入门

    添加依赖 <dependency> <groupId>org.influxdb</groupId> <artifactId>influxdb-java& ...