redis基本数据结构-列表
redis基本数据结构-列表list
- 特性
- 每个列表键最多存储 2^32 - 1个字符串元素
- 元素在列表中有序
- 元素在列表中不唯一
- 向列表左侧添加元素
lpush key value
lpush number 1 lpush number 2
number = [2, 1]
- 向列表右侧添加元素
rpush key value
rpush number 3 rpush number 4 rpush number 5
number = [2, 1, 3, 4, 5]
- 从列表左侧弹出元素
lpop key
lpop number
返回2, number = [1, 3, 4, 5]
- 从列表右侧弹出元素
rpop key
rpop number
返回5, number = [1, 3, 4]
- 获取列表中元素个数
llen key
llen number
返回3, number = [1, 3, 4]
- 获取列表片段(切片)
lrange key startIndex endIndex
lrange number 0 1
返回1, 3
lrange number 0 -1
返回1, 3, 4
说明: [startIndex, endIndex] 为闭区间, 负数index指示从后往前的index,最后一个为-1
- 删除列表中的前count个元素中置为value的元素
lren key count value
lpush number 3
number = [3, 1, 3, 4]
lrem number 3 3 // 删除前3个元素中值为3的元素
lrem number 3 3
返回2(实际删除个数)
number = [1, 4]
- 获取指定位置的元素值
lindex key index
lpush number 2
number = [2, 1, 4]
lindex number 0 === 2
lindex number 1 === 1
lindex number 2 === lindex number -1 === 4
- 设置指定位置的元素值
lset key index value
lset number 0 hello
number = [hello, 1, 4]
- 删除置顶范围以外的元素
ltrim key startIndex endIndex
说明: [startIndex, endIndex] 为闭区间
ltrim number 0 1
number = [hello, 1]
- 向列表中指定元素值前/后插入元素(是在从左侧开始第一个该指定值出现的位置前/后)
linsert key BEFORE/AFTER pivot value
lpush number 1
number = [1, hello, 1]
linsert number before 1 2
number = [2, 1, hello, 1]
linsert number after 1 3
number = [2, 1, 3, hello, 1]
- 将一个列表移动到另一个列表(每次只移动一个元素)
rpoplpush key1 key2
number = [2, 1, 3, hello, 1]
rpoplpush number number2
number = [2, 1, 3, hello]
number2 = [1]
rpoplpush number number2
number = [2, 1, 3]
number2 = [hello, 1]
redis基本数据结构-列表的更多相关文章
- redis底层数据结构之快速列表(quicklist)
快速列表(quicklist) redis3 .2版本之前,List类型数据使用的底层数据结构是压缩列表(ziplist)或双向链表(linkedlist),当列表元素个数比较少并且每个元素占用空间比 ...
- Redis基本数据结构总结之STRING和LIST
Redis基本数据结构总结前言 Redis的特点在于其读写速度特别快,因为是存储在内存中的,其非常适合于处理大数据量的情况:还有一个是其不同于其他的关系型数据库,Redis是非关系型数据库,也就是我们 ...
- Redis基本数据结构总结之SET、ZSET和HASH
Redis基本数据结构总结 前言 Redis的特点在于其读写速度特别快,因为是存储在内存中的,其非常适合于处理大数据量的情况:还有一个是其不同于其他的关系型数据库,Redis是非关系型数据库,也就是我 ...
- 聊一聊Redis的数据结构
如果没有记错的话,应该是在两个月前把 我们经常看到此类的文章: Redis的五种数据结构 Redis的数据结构以及对应的使用场景 其实以数据结构这个词去说明Redis的String.Hash.List ...
- 高可用Redis(四):列表,集合与有序集合
1.列表类型 1.1 列表数据结构 左边为key,是字符串类型 右边为value,是一个有序的队列,与python的列表结构相同 可以在Redis中对列表的value进行如下操作 从左边添加元素 从右 ...
- Redis学习——数据结构介绍(四)
一.简介 作为一款key-value 的NoSQL数据库,Redis支持的数据结构比较丰富,有:String(字符串) .List(列表) .Set(集合) .Hash(哈希) .Zset(有序集合) ...
- Redis常用数据结构
Redis常用数据结构包括字符串(strings),列表(lists),哈希(hashes),集合(sets),有序集合(sorted sets). redis的key最大不能超过512M,可通过re ...
- Redis的数据结构、通用操作及其特性
Redis的数据结构 五种数据类型: 字符串(String).字符串列表(list).字符串集合(set).有序字符串集合(sorted set).哈希(hash) key定义的注意点: 不要过长,不 ...
- Redis学习笔记之Redis基本数据结构
Redis基础数据结构 Redis有5种基本数据结构:String(字符串).list(列表).set(集合).hash(哈希).zset(有序集合) 字符串string 字符串类型是Redis的va ...
- 你真的懂redis的数据结构了吗?redis内部数据结构和外部数据结构揭秘
Redis有哪些数据结构? 字符串String.字典Hash.列表List.集合Set.有序集合SortedSet. 很多人面试时都遇到过这种场景吧? 其实除了上面的几种常见数据结构,还需要加上数据结 ...
随机推荐
- (图形界面)Dbever连接MySQL8 报错mysql8 安装The server time zone value '�й���ʱ��' is unrecognized or represents more than one time zone.
问题原因是没有设置时区,这个在Mysql8中会有 解决方式: 在这个位置加上UTC时区就可以了. IDEA添加方式 设置Advanced的allowPublicKeyRetrieval为true 同时 ...
- Java学习之数据类型转换
package com.zhang.LectCode; public class 各种数据间的相互转换 { public static void main(String[] args) { //将St ...
- Chart.js (v2.9.4)概要介绍
chart.js是一个非常优秀的开源图表插件,扩展非常灵活,同时也提供了大量的钩子函数,给与用户添加自定义插件,实现个性化的需求. 具体的优势特点,这里不详述,网上大把资料,现开始正式深入了解这个插件 ...
- vue4 项目的创建
1,安装vue cli 脚手架,是全局安装npm install -g @vue/cli 可以在输出信息中看到安装位置,例如:C:\Users\xiaochangjian\AppData\Roamin ...
- ObjectArx 创建一个自定义实体项目步骤
我使用的环境是cad2018+objectarx2018+vs2015+win10.先要安装desk向导程序,用向导创建项目对于初学者来说是很方便的,然后在配置程序编译链接的环境,最后就可以写一个项目 ...
- Java中获取类声明泛型的Class对象(WEB开发Dao层的抽取)
在WEB开发中,用到三层架构中经常会遇到代码抽取的情况,例如在dao层中,我们需要对数据库的基本操作进行抽取例如这样,在抽取之前我们需要定义抽取类的接口: public interface BaseD ...
- Django中的ORM转换为SQL语句日志
如果想打印ORM转换过程中的SQL,需要在settings中进行如下配置: LOGGING = { 'version': 1, 'disable_existing_loggers': False, ' ...
- Ubuntu20.04安装MySQL5.7
ubuntu 20.04系统自带源直接安装的是MySQL 8.0,要安装MySQL 5.7的话,需要先换源. 1.换源 sudo cp /etc/apt/sources.list /etc/apt/s ...
- Android 13 - Media框架(1)- 总览
关注公众号免费阅读全文,进入音视频开发技术分享群! 为了加深对Android Media框架的理解,决定在这里记录下学习过程中碰到的问题以及一些个人思考.由于本人水平有限,笔记的内容可能会有一些错误, ...
- 鸿蒙极速入门(一)-HarmonyOS简介
1.华为官网介绍 2.OpenHarmony开源项目 3.技术架构 内核层 内核子系统:采用多内核(Linux内核或者LiteOS)设计,支持针对不同资源受限设备选用适合的OS内核 驱动子系统:驱动框 ...