redis的list类型以及其操作
lists类型
给你个图;'

lists类型以及操作
List是一个链表结构,主要功能是push、pop、获取一个范围的所有值等等,操作中key理解为链表的名字。Redis的list类型其实就是每一个子元素都是String类型的双向链表。我们可以通过push、pop操作从链表的头部或者尾部添加删除元素,这样list既可以作为栈,又可以作为队列。
操作:
lpush
从头部添加字符串元素
127.0.0.1:> lpush list1 one
(integer) //数字表示list的长度
127.0.0.1:> lpush list1 two
(integer)
127.0.0.1:> lrange list1 - // 0表示开始展示的元素所在的下标,1表示最后展示的元素所在位置的下标,最后就是-1.0在头的开始位置
) "two"
) "one"
127.0.0.1:> lpush list1 three four
(integer)
rpush
在key对应的list尾部添加字符串元素
127.0.0.1:> rpush list01 hello
(integer)
127.0.0.1:> rpush list01 world
(integer)
127.0.0.1:> lrange list01 -
) "hello"
) "world"
linsert
向key对应的list的指定元素前或后插入元素
127.0.0.1:> linsert list01 before "world" java
(integer)
127.0.0.1:> lrange list01 -
) "hello"
) "java"
) "world"
127.0.0.1:> linsert list01 after "world" "jiangxi"
(integer)
127.0.0.1:> lrange list01 -
) "hello"
) "java"
) "world"
) "jiangxi"
lrange
查看指定下标范围的对应list中的值
127.0.0.1:> lrange list01 -
) "hello"
) "java"
) "world"
) "jiangxi"
127.0.0.1:> lrange list01
) "java"
) "world"
Lset
设置list中指定下标的值
127.0.0.1:> lset list01 "hi"
OK
127.0.0.1:> lrange list01 -
) "hi"
) "java"
) "world"
) "jiangxi"
127.0.0.1:>
lrem
从key对应的list中删除n个和value相同的元素(n<0从尾删除,n=0全部删除)
127.0.0.1:> lpush list01 hello world hello world world hello hi my my hello hello
(integer)
127.0.0.1:> lrange list01 -
) "hello"
) "hello"
) "my"
) "my"
) "hi"
) "hello"
) "world"
) "world"
) "hello"
) "world"
) "hello"
127.0.0.1:> lrem list01 "hello"
(integer)
127.0.0.1:> lrange list01 -
) "hello"
) "my"
) "my"
) "hi"
) "hello"
) "world"
) "world"
) "hello"
) "world"
) "hello"
127.0.0.1:> lrem list01 - "hello"
(integer)
127.0.0.1:> lrange list01 -
) "hello"
) "my"
) "my"
) "hi"
) "hello"
) "world"
) "world"
) "hello"
) "world"
127.0.0.1:> lrem list01 "hello"
(integer)
127.0.0.1:> lrange list01 -
) "my"
) "my"
) "hi"
) "world"
) "world"
) "world"
127.0.0.1:>
ltrim
保留指定key的值范围内的数据,其他的删除
127.0.0.1:> lrange list01 -
) "my"
) "my"
) "hi"
) "world"
) "world"
) "world"
127.0.0.1:> ltrim list01
OK
127.0.0.1:> lrange list01 -
) "my"
) "hi"
lpop
从list的头部删除元素,并返回删除元素
127.0.0.1:> lrange list01 -
) "my"
) "hi"
127.0.0.1:> lpop list01
"my"
127.0.0.1:> lrange list01 -
) "hi"
rpop
从list的尾部删除元素,并返回删除元素
127.0.0.1:> lrange list01 -
) "my"
) "name"
) "is"
127.0.0.1:> rpop list01
"is"
127.0.0.1:> lrange list01 -
) "my"
) "name"
127.0.0.1:>
rpoplpush
从第一个list的尾部移除元素并添加到第二个list的头部
127.0.0.1:> lrange list01 -
) "my"
) "name"
) "is"
) "guo"
) "daxia"
127.0.0.1:> lpush list02 i like java
(integer)
127.0.0.1:> lrange list02 -
) "java"
) "like"
) "i"
127.0.0.1:> rpoplpush list01 list02
"daxia"
127.0.0.1:> lrange list01 -
) "my"
) "name"
) "is"
) "guo"
127.0.0.1:> lrange list02 -
) "daxia"
) "java"
) "like"
) "i"
lindex
返回名称为key的list中index位置的元素
127.0.0.1:> lrange list01 -
) "my"
) "name"
) "is"
) "guo"
) "daxia"
127.0.0.1:> lindex list01
(nil)
127.0.0.1:> lindex list01
"daxia"
llen
返回key对应的list的长度
127.0.0.1:> lrange list01 -
) "my"
) "name"
) "is"
) "guo"
) "daxia"
127.0.0.1:> llen list01
(integer)
redis的list类型以及其操作的更多相关文章
- redis的Hash类型以及其操作
hashes类型 hashes类型及操作Redis hash是一个string类型的field和value的映射表.它的添加.删除操作都是0(1)(平均).hash特别适合用于存储对象.相较于将对象的 ...
- redis的String类型以及其操作
Redis的数据类型 String类型以及操作 String是最简单的数据类型,一个key对应一个Value,String类型是二进制安全的.Redis的String可以包含任何数据,比如jpg图片或 ...
- 直接在安装了redis的Linux机器上操作redis数据存储类型--对Sorted-Sets操作
一.概述: Sorted-Sets和Sets类型极为相似,它们都是字符串的集合,都不允许重复的成员出现在一个Set中.它们之间的主要差别是Sorted-Sets中的每一个成员都会有一个分数(score ...
- 第二百九十七节,python操作redis缓存-List类型,可以理解为列表
python操作redis缓存-List类型,可以理解为列表,是可以有重复元素的列表 List操作,redis中的List在在内存中按照一个name对应一个List来存储.如图: lpush(name ...
- 第二百九十五节,python操作redis缓存-字符串类型
python操作redis缓存-字符串类型 首先要安装redis-py模块 python连接redis方式,有两种连接方式,一种是直接连接,一张是通过连接池连接 注意:以后我们都用的连接池方式连接,直 ...
- 三:redis的List类型相关操作
</pre><pre name="code" class="php" style="font-size: 14px;"&g ...
- 直接在安装了redis的Linux机器上操作redis数据存储类型--String类型
一.概述: 字符串类型是Redis中最为基础的数据存储类型,它在Redis中是二进制安全的,这便意味着该类型可以接受任何格式的数据,如JPEG图像数据或Json对象描述信息等.在Redis中字符串类型 ...
- 最全的Java操作Redis的工具类,使用StringRedisTemplate实现,封装了对Redis五种基本类型的各种操作!
转载自:https://github.com/whvcse/RedisUtil 代码 ProtoStuffSerializerUtil.java import java.io.ByteArrayInp ...
- [redis] redis 对string类型数据操作
package com.xwolf.java.redis; import org.junit.Before; import org.junit.Test; import redis.clients.j ...
随机推荐
- Spring Boot+BootStrap fileInput 多图片上传
一.依赖文件 <link rel="stylesheet" type="text/css" th:href="@{/js/bootstrap/c ...
- url get与post 请求长度限制
零.总结 文章数据来源于网络,可能存在变动,但是原理是一样的. HTTP 协议 未规定 GET 和POST的长度限制 GET的最大长度显示是因为 浏览器和 web服务器限制了 URI的长度 不同的浏览 ...
- [转]将Eclipse设置为黑色主题 方式一
将Eclipse设置为黑色主题 觉得黑色的主题&配色很高大上,于是花了点时间实践出下面一种方法. 修改代码编辑区配色 修改整个软件主题 先上成果图: 但是进度条依旧是白色的,不知道怎么弄了╮( ...
- 20145328 《Java程序设计》实验一实验报告
20145328 <Java程序设计>实验一实验报告 实验名称 Java开发环境的熟悉(Windows + IDEA) 实验内容 使用JDK编译.运行简单的Java程序: 使用IDEA 编 ...
- 06_zookeeper_原生API使用2
1. 设置znode节点数据(同步) import org.apache.zookeeper.*; import org.apache.zookeeper.data.Stat; import java ...
- Maven打可执行包的pom.xml配置
单独打出可执行包,然后将依赖包打入lib文件价中 <build> <plugins> <plugin> <groupId>org.apache.mave ...
- 做文件上传下载时报这个错com.alibaba.fastjson.JSONException: illegal identifier : \
::-exec-] DEBUG c.i.e.m.I.insertDataEmebeding - <== Updates: ::-exec-] ERROR c.i.e.c.CaseArchiveC ...
- pandas 运算
Data frame 和 series 的运算:横列相加减:按照index ,row 的方向直接相加减.frame-series纵列相加减:按照 columns,运用算术函数,相加减. frame.s ...
- Runtime.getRuntime.exec();
杀死Chrome浏览器进程 private static void closeAllChrome() throws IOException{ Runtime.getRuntime().exec(&qu ...
- TestNG入门--安装和基本介绍
TestNG介绍 TestNG是Java中的一个测试框架, 类似于JUnit 和NUnit, 功能都差不多, 只是功能更加强大,使用也更方便 Java中已经有一个JUnit的测试框架了. Tes ...