Redis学习笔记(十一)--Redis常用操作指令(二)

本文详细介绍了Redis列表数据结构的基本操作,包括插入、获取、删除等常用指令,并对各种操作进行了性能总结。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

List列表常用指令

list是单值多value的数据结构
lpush key value [value]

这里的l是left的意思,将一个或多个值 value 插入到列表 key 的表头,如果有多个值,则从左到右依次插入到表头,例如插入 1 2 3,则存储结构是 3 2 1(表头到表尾)
这里写图片描述

rpush key value [value]

这里的r是right的意思,将一个或多个值 value 插入到列表 key 的表头,如果有多个值,则从右到左依次插入到表头,例如插入 1 2 3,则存储结构是 1 2 3(表头到表尾)

lrange key start stop

根据开始下标和结束下标获取list内容,0 -1获取全部,接下来我们查看一下mylist 和mylist01
这里写图片描述
这里写图片描述
可以看到lpush确实是正进反出,而rpush则是怎么进怎么出

lpop key

lpop是出栈操作,删除栈顶的元素,mylist和mylist01的栈顶元素分别是5 和 1,我们验证一下
这里写图片描述
确实是这样

rpop key

rpop也是出栈操作,不过他是删除栈尾的元素,mylist和mylist01的栈尾分别是1和5,验证
这里写图片描述

lindex key

这里的l是list的简写,不要与lpush和lpop的l搞混,按照索引下标获得元素(从上到下)
经过我们前面的操作,mylist = [4,3,2],mylist01 = [2,3,4],使用lindex获取下标为0的元素
这里写图片描述

llen

获取列表的长度
这里写图片描述

lrem key count value

rem是remove的简写,移除列表中多个相同的值,比如,再定义一个mylist02 = [1 1 1 1 2 2 2 3 3 3]
删除2 个 1
这里写图片描述
可以看到修改后的列表已经删除了两个1

ltrim key start stop

获取指定范围的值后再赋值给key,比如当前的mylist02 = [1 1 2 2 2 3 3 3 ]
这里写图片描述
注意这里截取的范围是左右包含的

rpoplpush 源列表 目的列表

移除源列表的栈尾元素,添加到目的列表的栈顶(表头),例如目前mylist01 = [2 3 4],mylist02 = [ 2 2 2 3],我们把mylist01当做源列表,mylist02当做目的列表,经过rpoplpush之后,结果如下
这里写图片描述
确实是把4这个元素插入到了mylist02的栈顶

lset key index value

修改列表中指定下标的值
这里写图片描述

linsert key before value1 value2

在给定列表指定的值之前插入值
这里写图片描述

linsert key after value1 value2

在给定列表指定的值后面插入值
这里写图片描述

性能总结

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

### Redis 学习笔记概述 Redis 是一种高性能的键值存储系统,支持多种数据结构并提供丰富的功能。为了全面掌握 Redis 的使用方法和技术细节,一份详尽的学习笔记应当覆盖以下几个方面: #### 一、基础概念介绍 - **定义与特性** - Redis 是一个开源的内存数据结构存储库,可以用作数据库、缓存和消息中间件[^1]。 - **应用场景** - 高效的数据读写操作使其适用于高速缓存场景;持久化的选项也允许作为可靠的主数据库。 #### 、环境搭建指南 - **安装过程** - 安装完成后可以通过 `redis-server` 命令启动服务,默认情况下这会在前台运行并且占用当前终端会话[^2]。 - **后台模式配置** - 推荐通过编辑 `/usr/local/src/redis-6.2.6/redis.conf` 文件中的设置项使 Redis 在后台稳定工作。 #### 三、核心功能解析 - **基本命令集** - 包括字符串(Strings)、哈希(Hashes)、列表(Lists)等常见数据类型的增删改查指令- **高级特性应用** - 发布订阅(Pub/Sub),事务处理(Transaction),Lua脚本执行等功能的应用实例。 #### 四、集成开发实践 - **Spring Boot 整合案例** - 使用 Spring Data Redis 提供的 `RedisTemplate` 对象简化 Java 应用程序同 Redis 数据源之间的交互逻辑[^3]。 #### 五、优化策略探讨 - **性能调优技巧** - 考虑到 CPU 并非主要瓶颈因素而是受制于物理 RAM 和网卡吞吐能力的影响,合理规划硬件资源分配对于提升整体效率至关重要。 - **预加载机制说明** - 当应用程序首次上线前预先填充部分热点数据至 Redis 中可以有效缓解高峰期的压力,提高响应速度[^4]。 #### 六、可靠性保障措施 - **持久化方案对比** - RDB 快照方式能够在指定时间间隔内保存数据副本,确保意外断电等情况下的恢复可能性。 ```bash # 启动Redis服务器(建议采用守护进程方式) $ redis-server /path/to/redis.conf --daemonize yes ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值