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)
Redis列表操作的更多相关文章
- redis列表操作基本命令
RPUSH:从列表尾部插入一个元素,RPOP:返回列表最后一个元素并从列表删除LPUSH:从列表头部插入一个元素,LPOP:返回列表第一个元素并从列表删除(没看到命名的介绍,个人理解R就是right, ...
- [Redis-CentOS7]Redis列表操作(三)
LPUSH添加列表 127.0.0.1:6379> LPUSH websites www.baidu.com (integer) 1 LRANGE 获取全部值 127.0.0.1:6379> ...
- 征服 Redis + Jedis + Spring (三)—— 列表操作【转】
一开始以为Spring下操作哈希表,列表,真就是那么土.恍惚间发现“stringRedisTemplate.opsForList()”的强大,抓紧时间恶补下. 相关链接: 征服 Redis 征服 Re ...
- python连接redis、redis字符串操作、hash操作、列表操作、其他通用操作、管道、django中使用redis
今日内容概要 python连接redis redis字符串操作 redis之hash操作 redis之列表操作 redis其他 通用操作,管道 django中使用redis 内容详细 1.python ...
- Redis 列表 List 主要操作函数
/** * redis 列表 List Redis列表是简单的字符串列表,按照插入顺序排序.你可以添加一个元素导列表的头部(左边)或者尾部(右边) */ //lpush 新增一个列,多个列可以用空格隔 ...
- 八十三:redis之redis的字符串、过期时间、列表操作
字符串操作 设置值 set key value 设置有空格的值,加引号 set username 'hello world' 获取值 get key 删除值:del key 清除所有内容:flusha ...
- python对缓存(memcached,redis)的操作
1.Memcached Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态.数据库驱动网站的 ...
- redis列表list
Redis Rpush 命令 Redis 列表(List) Redis Rpush 命令用于将一个或多个值插入到列表的尾部(最右边). 如果列表不存在,一个空列表会被创建并执行 RPUSH 操作. ...
- Redis .NET操作
Redis是一个支持数据结构更多的键值对数据库.它的值不仅可以是字符串等基本数据类型,也可以是类对象,更可以是Set.List.计数器等高级的数据结构. Memcached也可以保存类似于Set.Li ...
随机推荐
- asp.net 子应用程序/虚拟目录 session共享
最近遇到了一个问题,我做的asp.net mvc应用程序要作为一个子应用程序部署到几个站点中,需要在本应用程序中获取站点的session值. 已经使用了session state server,并设置 ...
- WPF 触摸屏小键盘样式
WPF程序,用于平板时,一些输入数量的地方我们需要弹出小键盘输入,这个键盘可以调系统的,也可以自己写. 分享个我现在用的一个数字键盘界面. <Window xmlns:dxe="htt ...
- NPOI 操作笔记
public static class ExcelUtil { // Methods public static DataTable GetDataTable(Stream stream) { HSS ...
- 【javascript】原生js更改css样式的两种方式
下面我给大家介绍的是原生js更改CSS样式的两种方式: 1通过在javascript代码中的node.style.cssText="css表达式1:css表达式2:css表达式3 &quo ...
- BZOJ 5281--[Usaco2018 Open]Talent Show(分数规划&单调队列&DP)
5281: [Usaco2018 Open]Talent Show Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 79 Solved: 58[Sub ...
- SSH 学习笔记
零.背景 在看 pm2 的 deploy 功能的时候,对 ssh 的不熟悉导致错误频出,包括之前对 github 的配置也用到了 SSH,所以找个机会整理一下. 一.介绍 SSH 是每一台 Linux ...
- vue项目axios请求接口,后端代理请求接口404,问题出现在哪?
在vue项目中,列表数据需要用到qq音乐接口中的数据,但是直接请求不行,有host及referer限制,需要采用后端代理的方式.借助axios及node的express,在dev-server.js中 ...
- 桶排序和计数排序的理解实现和比较(Java)
比较和非比较的区别 常见的快速排序.归并排序.堆排序.冒泡排序等属于比较排序.在排序的最终结果里,元素之间的次序依赖于它们之间的比较.每个数都必须和其他数进行比较,才能确定自己的位置.比较排序的优势是 ...
- android(java) 开发过程中经验及总结记录
android(java) 开发过程中经验及总结记录
- vue2打包时内存溢出解决方案
vue项目完成时,若项目过大,就会出现内存溢出的问题,导致vue打包不成功 错误截图 解决方案 在依赖package.json中修改build为 "build":"nod ...