文档章节

10. Redis列表(List)

d
 double大宝
发布于 2017/02/23 00:51
字数 580
阅读 2
收藏 0
点赞 0
评论 0

 lpush/rpush/lrange
 lpop/rpop
 lindex,按照索引下标获得元素(从上到下)
 llen
 lrem key 删N个value
 ltrim key 开始index 结束index,截取指定范围的值后再赋值给key
 rpoplpush 源列表 目的列表
 lset key index value
 linsert key  before/after 值1 值2
 

127.0.0.1:6379> LPUSH list01 1 2 3 4 5
(integer) 5
127.0.0.1:6379> LRANGE list01 0 -1
1) "5"
2) "4"
3) "3"
4) "2"
5) "1"
127.0.0.1:6379> RPUSH list02 1 2 3 4 5
(integer) 5
127.0.0.1:6379> 
127.0.0.1:6379> LRANGE list02 0 -1
1) "1"
2) "2"
3) "3"
4) "4"
5) "5"
127.0.0.1:6379> LPOP list01
"5"
127.0.0.1:6379> LPOP list02
"1"
127.0.0.1:6379> RPOP list01
"1"
127.0.0.1:6379> RPOP list02
"5"
127.0.0.1:6379> LRANGE list01 0 -1
1) "4"
2) "3"
3) "2"
127.0.0.1:6379> LRANGE list02 0 -1
1) "2"
2) "3"
3) "4"
127.0.0.1:6379> LINDEX list01 3
(nil)
127.0.0.1:6379> LINDEX list01 2
"2"
127.0.0.1:6379> LINDEX list02 2
"4"
127.0.0.1:6379> LLEN list01
(integer) 3
127.0.0.1:6379> RPUSH list03 1 1 1 2 2 2 3 3 3 4 4 5 6 7
(integer) 14
127.0.0.1:6379> LREM list03 2 3
(integer) 2
127.0.0.1:6379> LRANGE list03 0 -1
 1) "1"
 2) "1"
 3) "1"
 4) "2"
 5) "2"
 6) "2"
 7) "3"
 8) "4"
 9) "4"
10) "5"
11) "6"
12) "7"
127.0.0.1:6379> DEL list01
(integer) 1
127.0.0.1:6379> LPUSH list01 1 2 3 4 5 6 7 8
(integer) 8
127.0.0.1:6379> LTRIM list 0 4
OK
127.0.0.1:6379> LRANGE list01 0 -1
1) "8"
2) "7"
3) "6"
4) "5"
5) "4"
6) "3"
7) "2"
8) "1"
127.0.0.1:6379> LTRIM list01 0 4
OK
127.0.0.1:6379> LRANGE list01 0 -1
1) "8"
2) "7"
3) "6"
4) "5"
5) "4"
127.0.0.1:6379> LTRIM list01 3 5
OK
127.0.0.1:6379> LRANGE list01 0 -1
1) "5"
2) "4"
127.0.0.1:6379> LRANGE list02 0 -1
1) "2"
2) "3"
3) "4"
127.0.0.1:6379> RPOPLPUSH list01 list02
"4"
127.0.0.1:6379> LRANGE list01 0 -1
1) "5"
127.0.0.1:6379> LRANGE list02 0 -1
1) "4"
2) "2"
3) "3"
4) "4"
127.0.0.1:6379> 
127.0.0.1:6379> LSET list02 1 x
OK
127.0.0.1:6379> LRANGE list02 0 -1
1) "4"
2) "x"
3) "3"
4) "4"
127.0.0.1:6379> LINSERT list02 before x java
(integer) 5
127.0.0.1:6379> LRANGE list02 0 -1
1) "4"
2) "java"
3) "x"
4) "3"
5) "4"
127.0.0.1:6379> LINSERT list02 before x orange
(integer) 6
127.0.0.1:6379> LRANGE list02 0 -1
1) "4"
2) "java"
3) "orange"
4) "x"
5) "3"
6) "4"
127.0.0.1:6379> LINSERT list02 after x mysql
(integer) 7
127.0.0.1:6379> LRANGE list02 0 -1
1) "4"
2) "java"
3) "orange"
4) "x"
5) "mysql"
6) "3"
7) "4"
 

它是一个字符串链表,left、right都可以插入添加;
如果键不存在,创建新的链表;
如果键已存在,新增内容;
如果值全移除,对应的键也就消失了。
链表的操作无论是头和尾效率都极高,但假如是对中间元素进行操作,效率就很惨淡了。

© 著作权归作者所有

共有 人打赏支持
d
粉丝 2
博文 65
码字总数 43479
作品 0
贵港
Redis源码学习

1、Redis内置数据结构之双向链表list http://blog.csdn.net/xiejingfa/article/details/50938028 2、Redis内置数据结构之字符串sds http://blog.csdn.net/xiejingfa/article/details/509725......

workming ⋅ 2016/05/20 ⋅ 0

redis基本类型 redis的键

最好坚持一种模式。例如:”object-type:id:field”就是个不错的注意,像这样”user:1000:password”。我喜欢对多单词的字段名中加上一个点,就像这样:”comment:1234:reply.to”。 虽然字符...

xpttxsok ⋅ 2016/05/16 ⋅ 0

python-redis连接管理

Redis 数据类型 Redis支持五种数据类型: string(字符串) hash(哈希) list(列表) set(集合) zset(sorted set:有序集合) string: key:name value:runoob 128.127.0.0.1:6379> SET n...

jiekegz ⋅ 05/22 ⋅ 0

python操作redis

一、字符串操作 redis中的string在内存中都是按照一个key对应一个value来存储的。 1)set(name, value, ex=None, px=None, nx=False, xx=False) ex,过期时间(秒) px,过期时间(毫秒) nx...

huangzp168 ⋅ 2017/11/24 ⋅ 0

Redis不同数据类型的的数据结构实现

原文:Redis不同数据类型的的数据结构实现 我们知道Redis支持五种数据类型, 分别是字符串、哈希表(map)、列表(list)、集合(set)和有序集合,和Java的集合框架类似,不同数据类型的数据...

杰克.陈 ⋅ 2017/12/19 ⋅ 0

(3)redis队列功能

Redis队列功能介绍 List 常用命令: Blpop删除,并获得该列表中的第一元素,或阻塞,直到有一个可用 Brpop删除,并获得该列表中的最后一个元素,或阻塞,直到有一个可用 Brpoplpush Lindex获...

Airship ⋅ 2016/01/26 ⋅ 0

Redis 数据类型及抽象

原文同步至 (若打不开,请翻墙,或者使用https访问) Redis 不仅仅是简单的 key value 存储,实际上它还是一个 data strutures server(据数结构服务器),用以支持不同的数值类型。在 key ...

waylau ⋅ 2016/09/18 ⋅ 0

java操作redis

Java操作redis(增删改查) Java代码 package sgh.main.powersite; import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.......

lvzjane ⋅ 2014/04/17 ⋅ 0

为什么会有Memlink? redis

为什么会有Memlink? 对于大型论坛服务,比如百度贴吧、天涯论坛,日均发帖量过百万或千万,日均PV过亿,日积月累下来的帖子数量可能几十亿到上百亿。这种超级论坛,其海量存储、海量访问都是...

玄觉 ⋅ 2013/04/21 ⋅ 0

Jedis分片连接池(分布式)

一下内容来自网络,但是很多细节没有写出来,所以我经过自己琢磨,终于找到原因了。 Redis-2.4.15目前没有提供集群的功能,Redis作者在博客中说将在3.0中实现集群机制。目前Redis实现集群的方...

Zero零_度 ⋅ 2016/08/29 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

聊聊spring cloud gateway的LoadBalancerClientFilter

序 本文主要研究一下spring cloud gateway的LoadBalancerClientFilter GatewayLoadBalancerClientAutoConfiguration spring-cloud-gateway-core-2.0.0.RELEASE-sources.jar!/org/springfram......

go4it ⋅ 38分钟前 ⋅ 0

详解:Nginx反代实现Kibana登录认证功能

Kibana 5.5 版后,已不支持认证功能,也就是说,直接打开页面就能管理,想想都不安全,不过官方提供了 X-Pack 认证,但有时间限制。毕竟X-Pack是商业版。 下面我将操作如何使用Nginx反向代理...

问题终结者 ⋅ 44分钟前 ⋅ 0

002、nginx配置虚拟主机

一、nginx配置虚拟主机可分为三种方式,分别为: 1、基于域名的虚拟主机,通过域名来区分虚拟主机——应用:外部网站 2、基于端口的虚拟主机,通过端口来区分虚拟主机——应用:公司内部网站...

北岩 ⋅ 47分钟前 ⋅ 0

shell脚本之死循环写法

最近在学习写shell脚本,在练习if while等流程控制时,突然它们的死循环写法是怎么样的?经过百度与亲测记录如下: for死循环 #! /bin/bashfor ((;;));do date sleep 1d...

hensemlee ⋅ 50分钟前 ⋅ 0

苹果的ARKit2.0有多可怕,看了就知道

序言 ARKit主要由三部分组成: 跟踪(Tracking) 跟踪是ARKit的核心组件之一,其提供了设备在物理世界中的位置与方向信息,并对物体进行跟踪,如人脸。 2.场景理解(Scene Understanding) 场...

_小迷糊 ⋅ 50分钟前 ⋅ 0

5.1 vim介绍 5.2 vim移动光标 5.3 ,5.4vim一般模式下移动光标,复制粘贴

vim命令 vim是vi的一个升级版;vim可以显示文字的颜色 安装vim这一个包vim-enhanced 如果不知道安装包,可以使用 命令下面命令来查看vim命令是那个包安装的。 [root@linux-128 ~]# yum prov...

Linux_老吴 ⋅ 54分钟前 ⋅ 0

vim一般模式

vim 是什么 vim是什么 ? 在之前接触Linux,编辑网卡配置文件的时候我们用过了vi ,vim简单说就是vi的升级版,它跟vi一样是Linux系统中的一个文本编辑工具。 如果系统中没有vim ,需要安装一...

李超小牛子 ⋅ 今天 ⋅ 0

docker实战

构建企业级Docker虚拟化平台实战 重点剖析虚拟化和云计算概念; 分析Docker虚拟化的概念和原理; 从0开始实战Docker虚拟化平台; 基于Docker构建Nginx WEB服务器和CentOS虚拟机; 基于开源监...

寰宇01 ⋅ 今天 ⋅ 0

vim介绍、vim颜色显示和移动光标、vim一般模式下移动光标、一般模式下复制粘贴剪切

VIM Vim 是 UNIX 文本编辑器 Vi 的加强版本,加入了更多特性来帮助编辑源代码。Vim 的部分增强功能包括文件比较(vimdiff),语法高亮,全面的帮助系统,本地脚本(Vimscript),和便于选择的...

蛋黄Yolks ⋅ 今天 ⋅ 0

springboot+mockito测试controller层遇到的问题

使用MockitoJUnitRunner测试的一个例子,原来报错无法找到bean, 类似的异常如下:createBeanError..... 原因:是因为@Runwith使用了SpringRunner,应该修改为MockitoJUnitRunner 代码如下: ...

writeademo ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部