redis List链表结构
2016-03-19 12:25
597 查看
redis列表是简单的字符串列表,按照插入顺序排序
redis 127.0.0.1:6379> LPUSH course redis
redis 127.0.0.1:6379> LPUSH course mongodb
redis 127.0.0.1:6379> LPUSH course mysql
redis 127.0.0.1:6379> LRANGE course 0 -1
1) "mysql"
2) "mangodb"
3) "redis"
------------------------------------------------
也可以一次性设置进去:
redis 127.0.0.1:6379> LPUSH course redis mongodb mysql
redis 127.0.0.1:6379> LRANGE course 0 -1
1) "mysql"
2) "mangodb"
3) "redis"
lpush key value
作用: 把值插入到链接头部
rpop key
作用: 返回并删除链表尾元素
rpush,lpop: 不解释
lrange key start stop
作用: 返回链表中[start ,stop]中的元素
规律: 左数从0开始,右数从-1开始
lrem key count value
作用: 从key链表中删除 value值
注: 删除count的绝对值个value后结束
Count>0 从表头删除
Count<0 从表尾删除
ltrim key start stop
作用: 剪切key对应的链接,切[start,stop]一段,并把该段重新赋给key
lindex key index
作用: 返回index索引上的值,
如 lindex key 2
llen key
作用:计算链接表的元素个数
redis 127.0.0.1:6379> llen task
(integer) 3
redis 127.0.0.1:6379>
linsert keyafter|before search value
作用: 在key链表中寻找’search’,并在search值之前|之后,.插入value
注: 一旦找到一个search后,命令就结束了,因此不会插入多个value
rpoplpush source dest
作用: 把source的尾部拿出,放在dest的头部,
并返回 该单元值
场景: task + bak双链表完成安全队列
Task列表 bak列表
业务逻辑:
1:Rpoplpush task bak
2:接收返回值,并做业务处理
3:如果成功,rpop bak 清除任务. 如不成功,下次从bak表里取任务
brpop ,blpop keytimeout
作用:等待弹出key的尾/头元素,
Timeout为等待超时时间
如果timeout为0,则一直等待
场景: 长轮询Ajax,在线聊天时,能够用到
redis 127.0.0.1:6379> LPUSH course redis
redis 127.0.0.1:6379> LPUSH course mongodb
redis 127.0.0.1:6379> LPUSH course mysql
redis 127.0.0.1:6379> LRANGE course 0 -1
1) "mysql"
2) "mangodb"
3) "redis"
------------------------------------------------
也可以一次性设置进去:
redis 127.0.0.1:6379> LPUSH course redis mongodb mysql
redis 127.0.0.1:6379> LRANGE course 0 -1
1) "mysql"
2) "mangodb"
3) "redis"
lpush key value
作用: 把值插入到链接头部
rpop key
作用: 返回并删除链表尾元素
rpush,lpop: 不解释
lrange key start stop
作用: 返回链表中[start ,stop]中的元素
规律: 左数从0开始,右数从-1开始
lrem key count value
作用: 从key链表中删除 value值
注: 删除count的绝对值个value后结束
Count>0 从表头删除
Count<0 从表尾删除
ltrim key start stop
作用: 剪切key对应的链接,切[start,stop]一段,并把该段重新赋给key
lindex key index
作用: 返回index索引上的值,
如 lindex key 2
llen key
作用:计算链接表的元素个数
redis 127.0.0.1:6379> llen task
(integer) 3
redis 127.0.0.1:6379>
linsert keyafter|before search value
作用: 在key链表中寻找’search’,并在search值之前|之后,.插入value
注: 一旦找到一个search后,命令就结束了,因此不会插入多个value
rpoplpush source dest
作用: 把source的尾部拿出,放在dest的头部,
并返回 该单元值
场景: task + bak双链表完成安全队列
Task列表 bak列表
| | |
| | |
业务逻辑:
1:Rpoplpush task bak
2:接收返回值,并做业务处理
3:如果成功,rpop bak 清除任务. 如不成功,下次从bak表里取任务
brpop ,blpop keytimeout
作用:等待弹出key的尾/头元素,
Timeout为等待超时时间
如果timeout为0,则一直等待
场景: 长轮询Ajax,在线聊天时,能够用到
相关文章推荐
- RedHat版的linux安装yum源及redis
- Linux下php安装Redis扩展
- redis字符串类型的操作
- Java操作Redis
- redis和html和nginx的关联
- redis和windows和framework的关联
- weblogic和maven和redis的关联
- 简述基于redis和数据库实现的消息系统
- Jedis2.8.1 缺少setMaxActive的问题
- redis事务和管道浅析
- redis对于key的操作命令
- Kafka+Spark Streaming+Redis实时系统实践
- redis 命令大全
- Java的redis 操作类-优化通用版本
- redis 主从复制及切换
- StackExchange.Redis 使用资料
- redis 在.net 平台的 StackExchange.Redis
- redis 认识
- redis安装+redis集群配置+phpredis扩展安装
- Redis开源代码读书笔记三(zmalloc模块)