redis的list类型
redis里面关于list的命令几乎都以l打头
###################
lpush,rpush
127.0.0.1:6379> lpush list one 将一个值或者多个值插入列表的头部
(integer) 1
127.0.0.1:6379> lpush list two
(integer) 2
127.0.0.1:6379> lpush list three
(integer) 3
127.0.0.1:6379> LRANGE list 0 -1
- “three”
- “two”
- “one”
注意:如果想把一个元素,插入列表的尾部,请用rpush
###################
lpop,rpop
127.0.0.1:6379> lpop list 移除列表的第一个元素
“three”
127.0.0.1:6379> lrange list 0 -1
“two”
“one”
“right”
127.0.0.1:6379> rpop list 移除列表的最后一个元素
“right”
127.0.0.1:6379> lrange list 0 -1
“two”
“One”
#####################
lindex 列表中的位置元素
127.0.0.1:6379> lindex list 0 查看列表中的第一元素
“two”
127.0.0.1:6379> lindex list 1
“one”
#####################
llen
127.0.0.1:6379> lpush list one
(integer) 1
127.0.0.1:6379> lpush list two
(integer) 2
127.0.0.1:6379> lpush list three
(integer) 3
127.0.0.1:6379> llen list 显示list当前长度,也就是当前list存储着多少个元素
(integer) 3
#######################
移除指定的值
例子:取关某个人uid
lrem
如: lrem list 1 three 移除list的three元素,1个,如果有两个three都想移除干净
lrem list 2 three 以此类推
#######################
trim 修剪
127.0.0.1:6379> rpush mylist hello
(integer) 1
127.0.0.1:6379> rpush mylist hello1
(integer) 2
127.0.0.1:6379> rpush mylist hello2
(integer) 3
127.0.0.1:6379> rpush mylist hello3
(integer) 4
127.0.0.1:6379> lrange mylist 0 -1
“hello”
“hello1”
“hello2”
“hello3”
127.0.0.1:6379> ltrim mylist 1 2
OK
127.0.0.1:6379> lrange mylist 0 -1“hello1”
“hello2”
push完之后截取指定的长度。mylist只剩下我们截取的长度了。
###########################
rpoplpush 移除列表最后一个元素,并将该元素添加到另外一个列表
127.0.0.1:6379> rpush mylist hello
(integer) 1
127.0.0.1:6379> rpush mylist hello1
(integer) 2
127.0.0.1:6379> rpush mylist hello2
(integer) 3
127.0.0.1:6379> RPOPlpush mylist myotherlist
“hello2”
127.0.0.1:6379> lrange mylist 0 -1 查看原来的列表
- “hello”
- “hello1”
127.0.0.1:6379> lrange myotherlist 0 -1 查看新的列表 - “hello2”
##########################
lset 为一个列表中某个元素重新设置值,原列表对应位置存在命令执行成功,否则命令执行失败
127.0.0.1:6379> exists list 判断列表是否存在,如果不存在更新报错
(integer) 0
127.0.0.1:6379> lset list 0 item
(error) ERR no such key
127.0.0.1:6379> lpush list value1
(integer) 1
127.0.0.1:6379> lrange list 0 -1
“value1”
127.0.0.1:6379> lset list 0 item list的第一个元素,存在设置新值
OK
127.0.0.1:6379> lrange list 0 -1“item”
127.0.0.1:6379> lset list 1 other. list的第二个元素不存在,命令执行失败
(error) ERR index out of range
###########################
127.0.0.1:6379> rpush mylist “hello”
(integer) 1
127.0.0.1:6379> rpush mylist “world”
(integer) 2
127.0.0.1:6379> linsert mylist before “world” “other” 在指定位置插入数据(某个value的前面或者后面)
(integer) 3
127.0.0.1:6379> lrange mylist 0 -1
- “hello”
- “other”
- “world”
小结:
·它实际上是一个链表,before Node after,left,right都可以插入值
·如果key不存在,创建新的链表
·如果key存在,新增内容
·如果key移除了所有值,空链表,也代表不存在
·在两边插入或者改动值,效率最高,中间元素相对来说,效率低点。
消息排队,消息队列
redis的list类型相关推荐
- Redis 基础——五大类型与数据结构
引言 Redis 区分于 memcahced 的一个重要不同就是它具有明确的类型概念,在Redis 的使用过程中,都离不开这些类型的学习,它不仅是 Redis 能力的基础,同时也是一些重要数据结构和算 ...
- jedis操作set_Jedis对redis的五大类型操作代码详解
本篇主要阐述Jedis对redis的五大类型的操作:字符串.列表.散列.集合.有序集合. JedisUtil 这里的测试用例采用junit4进行运行,准备代码如下: private static fi ...
- redis 自增_坏了,Redis的字符串类型竟然被张三学明白了?
Redis简介 Redis(Remote dictionary server) 是一款高性能的开源非关系型缓存数据库,Redis使用C语言编写,支持多种类型的数据结构,如字符串,字典,列表,集合,有序 ...
- python redis缓存_第二百九十五节,python操作redis缓存-字符串类型
python操作redis缓存-字符串类型 首先要安装redis-py模块 python连接redis方式,有两种连接方式,一种是直接连接,一张是通过连接池连接 注意:以后我们都用的连接池方式连接,直 ...
- 【Redis之ZSet类型的详解ZSet类型中常用命令的实践】
Redis之ZSet类型的详解&ZSet类型中常用命令的实践 知识回顾: 通过对Redis中的String的命令做了充分的讲解以及实践学习 通过对Redis中String类型之Bit命令的详解 ...
- 系统性详解Redis操作Hash类型数据(带源码分析及测试结果)
1 缘起 系统讲解Redis的Hash类型CURD, 帮助学习者系统且准确学习Hash数据操作, 逐步养成测试的好习惯, 本文较长,Hash的操作比较多,请耐心看, 既可以集中时间看,亦可以碎片时间学 ...
- Redis 数据类型 Strings 类型详解
Redis 数据类型 Strings 类型详解 bitmap 操作 SETBIT • SETBIT key offset value 起始版本:2.2.0 时间复杂度:O(1) 设置或者清空key的v ...
- Redis Geospatial 地理位置 类型
Redis Geospatial 地理位置 类型 1.geoadd 将指定的地理空间位置(经度.纬度.名称)添加到指定的key中 2.geopos 从key里返回所有给定位置元素的位置(经度和纬度) ...
- Redis五大基本类型三种特殊数据类型事务操作(悲观锁,乐观锁)
Redis五大基本类型 Redis是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库.缓存和消息中间件.它支持多种类型的数据 结构,如字符串(strings),散列(hashes) ...
- redis有序集合类型sort set
redis的数据类型之-有序集合 sort set和set类型一样,也是string类型元素的集合,也没有重复的元素,不同的是sort set每个元素都会关联一个权,通过权值可以有序的获取集合中的元素 ...
最新文章
- 读写EXCEL的例子
- go语言学习(6)select的使用
- java序列化与反序列化(转)
- AJAX代码示例(不使用AJAX控件)
- jQuery-H5-css3转盘抽奖-遁地龙卷风
- Mac下安装和使用GunPG(GPG)
- Web服务生存周期内发生的事件/Soap扩展的阶段/Soap扩展的步骤
- Python struct模块与简单使用
- linux内核percpu变量声明,Linux内核对per-cpu变量的实现
- 尚品汇笔记——尚硅谷
- 容器精华问答 | Docker是否比虚拟技术要好?
- 网络电视机顶盒的工作原理
- 苹果系统版本依次顺序_苹果手机机型排行顺序
- docker swarm英文文档学习-7-在集群中管理节点
- Jackson多克隆抗体丨艾美捷Jackson纳米二级抗体研究
- TP5——workerman在线客服
- Floyd-傻子也能看懂的弗洛伊德算法(转)
- 《人人都是产品经理》读书摘抄(二)
- 【51】PWM控制使用
- 软件著作权、商事主体、企业域名备案 免费查询