Redis基础教程(四):redis键(key)

💝💝💝首先,欢迎各位来到我的博客,很高兴能够在这里和您见面!希望您在这里不仅可以有所收获,同时也能感受到一份轻松欢乐的氛围,祝你生活愉快!
💝💝💝如有需要请大家订阅我的专栏【Redis系列】哟!我会定期更新相关系列的文章
💝💝💝关注!关注!!请关注!!!请大家关注下博主,您的支持是我不断创作的最大动力!!!

文章目录

    • 引言
    • 一、键的命名规范
      • 命名建议
      • 案例
    • 二、键的生命周期管理
      • `EXPIRE` 和 `PEXPIRE`
      • `TTL` 和 `PTTL`
      • 案例
    • 三、键的模式匹配
      • `KEYS pattern`
      • `SCAN cursor [MATCH pattern] [COUNT count]`
      • 案例
    • 总结

引言

Redis 的键(Key)是其数据模型的核心组成部分,几乎所有的数据操作都是围绕键来进行的。键在 Redis 中用于唯一标识数据,可以存储各种类型的数据,包括字符串、哈希、列表、集合、有序集合等。本文将深入探讨 Redis 键的管理,包括键的命名规范、键的生命周期管理、键的模式匹配以及 KEYSSCAN 等命令的使用,通过具体的案例来展示键在实际项目中的应用和管理策略。

一、键的命名规范

键的命名规范对于数据的组织和管理至关重要。良好的命名规范可以使数据结构更加清晰,便于维护和查询。

命名建议

  1. 层次结构:使用冒号(:)分隔键的不同部分,形成层次结构。例如,user:123:profile 表示用户ID为123的个人资料。

  2. 可预测性:键的命名应当直观,易于理解和记忆,避免使用模糊或含义不明的缩写。

  3. 唯一性:确保键在全局范围内是唯一的,防止键冲突。

  4. 避免特殊字符:虽然 Redis 支持大多数字符,但建议避免使用空格、换行符等特殊字符,以减少潜在的编码和解析问题。

案例

假设我们正在构建一个电子商务网站,需要存储用户信息、购物车和订单数据。

# 用户信息
redis-cli SET user:123:name "John Doe"
redis-cli SET user:123:email "john.doe@example.com"# 购物车
redis-cli SADD cart:123 item1
redis-cli SADD cart:123 item2# 订单
redis-cli HMSET order:123:details status "pending" total "100"

二、键的生命周期管理

Redis 键具有生命周期,可以通过设置过期时间来自动删除不再需要的键,以释放内存。

EXPIREPEXPIRE

EXPIRE 命令用于设置键的生存时间,以秒为单位。PEXPIRE 类似,但时间单位为毫秒。

# 设置键过期时间
redis-cli EXPIRE user:123:session 3600  # 1小时后过期

TTLPTTL

TTL 命令用于查询键的剩余生存时间,以秒为单位。PTTL 类似,但返回毫秒为单位的时间。

# 查询键的剩余生存时间
redis-cli TTL user:123:session

案例

假设我们正在实现一个用户会话管理系统,需要确保用户会话在一段时间后自动失效。

# 设置用户会话
redis-cli SET user:123:session "session_data"
redis-cli EXPIRE user:123:session 1800  # 30分钟后过期# 查询会话剩余时间
redis-cli TTL user:123:session

三、键的模式匹配

Redis 提供了模式匹配功能,用于查找符合特定模式的键。

KEYS pattern

KEYS 命令用于查找所有符合给定模式的键。然而,KEYS 命令在大数据集上可能会导致阻塞,因此在生产环境中应谨慎使用。

# 查找所有用户相关的键
redis-cli KEYS user:*

SCAN cursor [MATCH pattern] [COUNT count]

SCAN 命令提供了一种迭代查找键的方式,可以避免阻塞问题,更适用于生产环境。

# 使用 SCAN 迭代查找所有用户相关的键
redis-cli SCAN 0 MATCH user:* COUNT 100

案例

假设我们需要清理过期的用户会话,但又不想影响当前的数据库操作。

# 使用 SCAN 查找所有用户会话键
SCAN 0 MATCH user:*:session# 遍历并删除过期的会话
while true; doredis-cli SCAN $cursor MATCH user:*:session COUNT 100 | while read cursor keys; dofor key in $keys; doif [[ $(redis-cli TTL $key) -lt 0 ]]; thenredis-cli DEL $keyfidonedone
done

喜欢博主的同学,请给博主一丢丢打赏吧↓↓↓您的支持是我不断创作的最大动力哟!感谢您的支持哦😘😘😘
打赏下吧

💝💝💝如有需要请大家订阅我的专栏【Redis系列】哟!我会定期更新相关系列的文章
💝💝💝关注!关注!!请关注!!!请大家关注下博主,您的支持是我不断创作的最大动力!!!

总结

键(Key)是 Redis 数据模型的核心,正确的键管理策略对于构建高效、可维护的 Redis 应用至关重要。通过遵循良好的命名规范、合理设置键的生命周期以及使用适当的命令进行键的查找和清理,可以最大限度地发挥 Redis 的性能和功能。在实际项目中,应根据具体需求灵活应用上述技术和策略,以实现数据的有效管理和利用。

Redis相关文章索引文章链接
Redis基础教程(一):redis配置Redis基础教程(一):redis配置
Redis基础教程(二):redis数据类型Redis基础教程(二):redis数据类型
Redis基础教程(三):redis命令Redis基础教程(三):redis命令

❤️❤️❤️觉得有用的话点个赞 👍🏻 呗。
❤️❤️❤️本人水平有限,如有纰漏,欢迎各位大佬评论批评指正!😄😄😄
💘💘💘如果觉得这篇文对你有帮助的话,也请给个点赞、收藏下吧,非常感谢!👍 👍 👍
🔥🔥🔥Stay Hungry Stay Foolish 道阻且长,行则将至,让我们一起加油吧!🌙🌙🌙

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/864032.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MicroBin好用的粘贴板工具

有时候你可能想从一台电脑上粘贴文本到另一台电脑上,或者是你想要分享一张图片或者是一些文件,某些设备上登陆qq和微信有不太方便,那么就可以使用MicroBin,它不但可以实现跨设备复制粘贴的功能,还支持文件上传等功能 …

微信小程序的在线客服系统源码 附带完整的源代码包以及搭建部署教程

系统概述 微信小程序的在线客服系统源码是一套专门为微信小程序开发的客服解决方案。它通过与微信小程序的紧密集成,为用户提供了便捷、高效的客服沟通渠道。该系统源码采用先进的技术架构,具备良好的稳定性和扩展性,能够满足不同规模企业的…

韩顺平0基础学java——第34天

p675-689 UDP网络编程 1.类 DatagramSocket和 DatagramPacket[数据包/数据报]实现了基于UDP协议网络程序。 2.UDP数据报通过数据报套接字DatagramSocket发送和接收,系统不保证UDP数据报一定能够安全送到目的地,也不能确定什么时候可以抵达。 3.DatagramPacket对象…

【前端】从零开始学习编写HTML

目录 一、什么是前端 二、什么是HTML 三、HTML文件的基本结构 四、HTML常见标签 4.1 注释标签 4.2 标题标签 4.3 段落标签 4.4 换行标签 4.5 格式化标签 4.6 图片标签 4.7 超链接标签 4.8 表格标签 4.9 列表标签 4.10 表单标签 (1)form标…

MySQL高可用(MHA高可用)

什么是 MHA MHA(MasterHigh Availability)是一套优秀的MySQL高可用环境下故障切换和主从复制的软件。 MHA 的出现就是解决MySQL 单点的问题。 MySQL故障切换过程中,MHA能做到0-30秒内自动完成故障切换操作。 MHA能在故障切换的过程中最大…

内容营销专家刘鑫炜:如何撰写一篇吸睛又能转化的医疗推广软文?

在我每天要处理的稿件中,有1/3以上是医疗软文,但稿件质量情况不容乐观,大部分医疗软文甚至用极其糟糕来形容都为过,互联网都到下半场了,很多医疗机构营销人员的营销思维还是停留在二十几年前,投放的软文还是…

SpringMVC系列八: 手动实现SpringMVC底层机制-第三阶段

手动实现SpringMVC底层机制 实现任务阶段六🍍完成控制器方法获取参数-RequestParam1.🥦将 方法的 HttpServletRequest 和 HttpServletResponse 参数封装到数组, 进行反射调用2.🥦在方法形参处, 指定 RequestParam, 将对应的实参封装到参数数组…

Redis缓存问题二、缓存雪崩

缓存雪崩 缓存雪崩:是指在同一时段大量的缓存key同时失效或者Redis服务宕机,导致大量请求到达数据库,带来巨大压力。 缓存雪崩的解决方案: 给不同的Key的TTL添加随机值利用Redis集群提高服务的可用性给缓存业务添加降级限流策略…

sql-语句

文章目录 SQL语句的学习sql是什么sql的内置命令sql的种类sql mode库,表属性介绍:字符集,存储引擎列的数据类型:数字,字符串,时间列的约束DDL: 数据定义语言库表 Online DDL(ALGORITHM) *DML :数据操纵语言资…

SpringBoot实现文章点赞功能

提示:今日是2024年的6月30日,未来的你看到这篇文章,希望你依旧快乐 文章目录 前言 首先在这里前缀部分我就不做要求了,比如说登录信息什么的 数据库表格 这里实现点赞功能,主要是围绕论坛项目完成的 user_info代表用户信息表 for…

SprongBoot3整合Knife4j

大家好,我是晓凡。 写在前面 在上一篇文章,我们详细介绍了SpringBoot3 怎么整合SpringDoc实现在线接口文档。但是,有不少小伙伴 都觉得接口界面太丑了。有没有什么更美观一点的UI界面呢? 当然是有的了,毕竟这是一…

抖音直播自动点赞脚本:让点赞变得简单

抖音直播自动点赞脚本:让点赞变得简单 简介 点赞是社交媒体上表达喜爱的一种方式,尤其在抖音这样的平台上,点赞不仅能够增加主播的人气,还能鼓励他们创作更多优质内容。然而,手动点赞往往既耗时又费力。为了解决这个…

云服务出现故障这样处理

无法连接云服务器 服务器远程无法连接时,可通过7ECloud控制台进行连接。 常见故障现象 1、ping不通 2、ping丢包 3、部分端口telnet不通 4、全部端口telnet不通 5、广告、弹窗植入 6、域名无法访问IP访问正常 常见故障原因 1、云服务器过期、关机或者EIP被…

深度学习基准模型Transformer

深度学习基准模型Transformer 深度学习基准模型Transformer,最初由Vaswani等人在2017年的论文《Attention is All You Need》中提出,是自然语言处理(NLP)领域的一个里程碑式模型。它在许多序列到序列(seq2seq&#xf…

恭喜了!全体前端彻底狂欢吧!这个好消息来得太及时!

在这个快速变化的科技时代,作为独立开发者,你是否常常被繁琐的开发任务压得喘不过气?前端开发要操心后端的各种服务搭建和接口开发,这些琐碎而耗时的工作常常让人头大。但现在,你可以松一口气了,因为MemFir…

【ARM-Linux篇】项目:智能家居

一、项目概述 •项目功能 通过语音控制客厅灯、卧室灯、风扇、人脸识别开门等,可以进行火灾险情监测,可以并且实现Sockect发送指令远程控制各类家电等 •项目描述 全志H616通过串口连接各模块硬件,检测语音的识别结果,分析语音识别的结果来对家电设备进行控制。摄像头拍…

视频上面怎样编辑文字?4种视频编辑文字方法分享

视频已成为我们日常生活中不可或缺的一部分。无论是社交分享、商业宣传还是个人记录,视频都以其直观、生动的特点吸引着观众的眼球。然而,一个优质的视频,除了画面和音效,文字编辑也是提升观看体验的关键。那么,如何在…

Webpack: 并行构建

概述 受限于 Node.js 的单线程架构,原生 Webpack 对所有资源文件做的所有解析、转译、合并操作本质上都是在同一个线程内串行执行,CPU 利用率极低,因此,理所当然地,社区出现了一些以多进程方式运行 Webpack&#xff0…

Redis学习——Redisson 分布式锁集成及其简单使用

文章目录 引言1. Redisson概述1.1 Redisson的基本概念1.2 Redisson的主要功能1.3 Redisson的优点 2. 开发环境3. Redisson的安装与配置3.1 添加依赖3.2 配置Redisson 4. 使用Redisson4.1 可重入锁4.1.1 可重入锁的概念4.1.2 可重入锁的实现原理4.1.3 简单使用锁的获取和释放 4.…

在线疫苗预约小程序的设计

管理员账户功能包括:系统首页,个人中心,工作人员管理,管理员管理,用户管理,疫苗管理,论坛管理,公告管理 微信端账号功能包括:系统首页,公告,疫苗&…