lpush key value
作用: 把值插入到链接头部
127.0.0.1:6379> lpush character a
(integer) 1
127.0.0.1:6379> rpush character b
(integer) 2
127.0.0.1:6379> rpush character c
(integer) 3
127.0.0.1:6379> lpush character 0
(integer) 4
lrange key start  stop
作用: 返回链表中[start ,stop]中的元素
规律: 左数从0开始,右数从-1开始
127.0.0.1:6379> lrange character 1 2
1) "a"
2) "b"
127.0.0.1:6379> lrange character 1 3
1) "a"
2) "b"
3) "c"
127.0.0.1:6379> lrange character 0 3
1) "0"
2) "a"
3) "b"
4) "c"
127.0.0.1:6379> lrange character 0 -1//所有元素
1) "0"
2) "a"
3) "b"
4) "c"
rpop key
作用: 返回并删除链表尾元素
127.0.0.1:6379> lpop character
"0"
127.0.0.1:6379> lrange character 0 -1
1) "a"
2) "b"
3) "c"
127.0.0.1:6379> rpop character
"c"
127.0.0.1:6379> lrange character 0 -1
1) "a"
2) "b"
lrem key count value
作用: 从key链表中删除 value值
注: 删除count的绝对值个value后结束
Count>0 从表头删除
Count<0 从表尾删除
127.0.0.1:6379> lpush answer a b c a b d a
(integer) 7
127.0.0.1:6379> lrange answer 0 -1
1) "a"
2) "d"
3) "b"
4) "a"
5) "c"
6) "b"
7) "a"
127.0.0.1:6379> lrem answer  1 b
(integer) 1
127.0.0.1:6379> lrange answer 0 -1
1) "a"
2) "d"
3) "a"
4) "c"
5) "b"
6) "a"
127.0.0.1:6379> lrem answer -2 a
(integer) 2
127.0.0.1:6379> lrange answer 0 -1
1) "a"
2) "d"
3) "c"
4) "b"
ltrim key start stop
作用: 剪切key对应的链接,切[start,stop]一段,并把该段重新赋给key
127.0.0.1:6379> rpush character a b c d e f
(integer) 6
127.0.0.1:6379> lrange character 0 -1
1) "a"
2) "b"
3) "c"
4) "d"
5) "e"
6) "f"
127.0.0.1:6379> ltrim character 2 5
OK
127.0.0.1:6379> lrange character 0 -1
1) "c"
2) "d"
3) "e"
4) "f"
127.0.0.1:6379> ltrim character 1 -2
OK
127.0.0.1:6379> lrange character 0 -1
1) "d"
2) "e"
llen key
作用:计算链接表的元素个数
lindex key index
作用: 返回index索引上的值,
127.0.0.1:6379> lrange character 0 -1
1) "d"
2) "e"
127.0.0.1:6379> llen character
(integer) 2
127.0.0.1:6379> rpush character a b c
(integer) 5
127.0.0.1:6379> llen character
(integer) 5
127.0.0.1:6379> lindex character 4
"c"
127.0.0.1:6379> lindex character 0
"d"
linsert  key after|before search value
作用: 在key链表中寻找’search’,并在search值之前|之后,.插入value
注: 一旦找到一个search后,命令就结束了,因此不会插入多个value
127.0.0.1:6379> rpush num 1 3 6 8 9
(integer) 5
127.0.0.1:6379> lrange num 0 -1
1) "1"
2) "3"
3) "6"
4) "8"
5) "9"
127.0.0.1:6379> linsert num before 3 2
(integer) 6
127.0.0.1:6379> lrange num 0 -1
1) "1"
2) "2"
3) "3"
4) "6"
5) "8"
6) "9"
127.0.0.1:6379> linsert num after 9 10
(integer) 7
127.0.0.1:6379> lrange num 0 -1
1) "1"
2) "2"
3) "3"
4) "6"
5) "8"
6) "9"
7) "10"
rpoplpush source dest

作用: 把source的尾部拿出,放在dest的头部,

并返回 该单元值

业务逻辑:

1:Rpoplpush task bak

2:接收返回值,并做业务处理

3:如果成功,rpop bak 清除任务. 如不成功,下次从bak表里取任务

127.0.0.1:6379> rpush task a b c d
(integer) 4
127.0.0.1:6379> lrange task 0 -1
1) "a"
2) "b"
3) "c"
4) "d"
127.0.0.1:6379> rpoplpush task job
"d"
127.0.0.1:6379> lrange job 0 -1
1) "d"
127.0.0.1:6379> rpoplpush task job
"c"
127.0.0.1:6379> lrange job 0 -1
1) "c"
2) "d"
127.0.0.1:6379> lrange task 0 -1
1) "a"
2) "b"

brpop ,blpop  key timeout

作用:等待弹出key的尾/头元素,

Timeout为等待超时时间

如果timeout为0,则一直等待

场景: 长轮询Ajax,在线聊天时,能够用到

Redis的List操作的更多相关文章

  1. redis的一些操作

    public class WnsRedisFactory { private static Cache pool = null; private static JedisConnectionFacto ...

  2. python之redis和memcache操作

    Redis 教程 Redis是一个开源(BSD许可),内存存储的数据结构服务器,可用作数据库,高速缓存和消息队列代理.Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据 ...

  3. redis的hash操作在集中式session中的应用

    在集群部署时,为了高可用性的目的,往往把session进行共享,共享分为两种:session复制和集中式管理. redis在session集中式管理中可以起到比较大的作用. 制约session集中式共 ...

  4. Redis客户端API操作 Jedis详解

    redis是一个著名的key-value存储系统,也是nosql中的最常见的一种.其实,个人认为,redis最强大的地方不在于其存储,而在于其强大的缓存作用. 我们可以把它想象成一个巨大的(多借点集群 ...

  5. Spring Boot 整合 Redis 实现缓存操作

    摘要: 原创出处 www.bysocket.com 「泥瓦匠BYSocket 」欢迎转载,保留摘要,谢谢!   『 产品没有价值,开发团队再优秀也无济于事 – <启示录> 』   本文提纲 ...

  6. 缓存数据库-redis数据类型和操作(list)

    转: 狼来的日子里! 奋发博取 缓存数据库-redis数据类型和操作(list) 一:Redis 列表(List) Redis列表是简单的字符串列表,按照插入顺序排序.你可以添加一个元素导列表的头部( ...

  7. redis键值操作

    1.1. redis键值操作 1.1.1. keys patten 查询相应的key 可以精确的查,也可以模糊的查 1.1.1.1. 通配符:* ? [] 在redis里,模糊查询key的时候有3个通 ...

  8. redis 批量删除操作

    redis 批量删除操作 需要在redis里面清空一批数据,redis没有支持通配符删除, 只有del key1 key2 ... 但是可以通配符获取 KEYS PATTERN 然后利用linux管道 ...

  9. thinkphp5.0上对redis的具体操作

    一.环境搭建 首先先安装composer.thinkphp5.0版本.和redis的windows版本的redis程序或者linux版本的redis程序,linux安装教程: https://www. ...

  10. redis连接数据库进行操作

    该项目需要的类目录 1.首先我们需要创建我们的实体类 2.放置我们的dao层,在里面写入方法 3.配置类Appconfig需要加入我们的JdbcTemplate方法,因为我们用的是spring,所以需 ...

随机推荐

  1. jta.properties transactions.properties Log already in use 解决方法

    当在resin里跑多个含有atomikos控制事物的项目时,会报错,Log already in use. 解决方法: 加jta.properties或者transactions.properties ...

  2. Abstract Class与 Interface 的区别

    表格                                                                                               Abs ...

  3. 【每日scrum】NO.5

    尝试采用自己的地图,绘点并计算路径,但是地图打开出现问题.

  4. Shiro workshop

    吃掉<Shiro教程>的精要部分,Go ahead!

  5. Visual Studio快捷键设置

    1.查看当前快捷键:环境-键盘-按快捷键2.文本编辑器-C#-显示-行号3.文本编辑器-C#-制表符-插入空格4.文本编辑器-所有语言-没有选定内容时对空行应用剪切或复制命令5.Ctrl+Shift- ...

  6. 2014 ACM/ICPC Asia Regional Shanghai Online

    Tree http://acm.hdu.edu.cn/showproblem.php?pid=5044 树链剖分,区间更新的时候要用on的左++右--的标记方法,要手动扩栈,用c++交,综合以上的条件 ...

  7. PowerDesigner(八)-面向对象模型(用例图,序列图,类图,生成Java源代码及Java源代码生成类图)(转)

    面向对象模型 面向对象模型是利用UML(统一建模语言)的图形来描述系统结构的模型,它从不同角度实现系统的工作状态.这些图形有助于用户,管理人员,系统分析人员,开发人员,测试人员和其他人员之间进行信息交 ...

  8. UML快速指南(摘要)转载

    UML 概述: UML是一个通用的建模语言.它最初开始捕捉到复杂的软件和非软件系统的行为,现在它已经成为一个OMG标准. UML提供元素和组件的复杂系统支持的要求. UML遵循面向对象的概念和方法.因 ...

  9. Topcoder 多校T-shirt场

    盗用名字:C题题目都没看懂, B:You are given a long long n. Return the largest divisor of n that is a perfect squa ...

  10. js调试-定位到函数所在文件位置

    原文:http://www.cnblogs.com/52cik/p/js-console-show-source.html 在控制台输入要查找的函数名如votePost 然后回车: 函数源码粗显啦,并 ...