论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
应用中心
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
IT评测·应用市场-qidao123.com技术社区
»
论坛
›
数据库
›
Oracle
›
Redis键(Keys)
Redis键(Keys)
金歌
论坛元老
|
2024-8-5 00:42:34
|
显示全部楼层
|
阅读模式
楼主
主题
1712
|
帖子
1712
|
积分
5136
媒介
在 Redis 中,键(Keys)是非常紧张的概念,它们代表了存储在数据库中的数据的标识符。对键的有用管理和操作是使用 Redis 数据库的关键一环,它直接影响到数据的存取效率、系统的稳固性和
开发
的便利性。
本文将深入探究 Redis 中键的管理和操作,包罗键的命名规范、常用的键操作下令以及一些最佳实践。我们将详细先容怎样公道命名键、怎样使用键的过期和持久化特性、怎样批量删除键等技巧,旨在资助读者更好地理解并机动运用 Redis 中的键,从而进步数据管理和操作的效率和可靠性。
Redis键是二进制安全的,这意味着你可以使用任何二进制序列作为键,从像”foo” 如许的字符串到一个 JPEG文件的内容。空字符串也是正当的键。
一、键的一些设计规则
不要使用太长的键。比方,不要使用一个1024字节的键,不但是由于占用内存,而且在数据集中查找key时需要多次耗时的key比力。
不要使用太短的key。比方,user:1001比u1001更具有现实意义,相对于key自己以及value对象来说,增长的空间微乎其微。当然,短的键会消耗少的内存,需要找到平衡点。
规范一种模式 (schema)。用冒号大概下横线来连接多单词字段,比方:”user:1001”大概"user_1001"。
二、Key的常用API
1、KEYS 返回指定pattern的全部key
语法:keys pattern
复制代码
MSET user:1001 user1 user:1002 user2 addr:1001 guangzhou addr:1002 zhuhai
复制代码
这条下令将会把以下键值对设置到 Redis 中:
键 "user:1001" 对应的值为 "user1"
键 "user:1002" 对应的值为 "user2"
键 "addr:1001" 对应的值为 "guangzhou"
键 "addr:1002" 对应的值为 "zhuhai"
通过如许的方式,你可以一次性地设置多个键值对,这在某些场景下可以进步效率。
"KEYS" 下令用于搜索并返回与给定模式匹配的键名列表。在你的例子中,你使用了以下下令:
"KEYS user*":返回全部以 "user" 开头的键名列表。
"KEYS addr*":返回全部以 "addr" 开头的键名列表。
"KEYS *":返回全部键名的列表。
需要注意的是,"KEYS" 下令在 Redis 中是一个相对较慢的操作,特别是当 Redis 有大量键时。它会遍历整个键空间来匹配模式,并返回匹配的键名列表。因此,在生产情况中使用 "KEYS" 下令要谨慎,以免对 Redis 性能造成影响。
2、EXISTS 判断一个key是否存在。存在返回后1,否则返回0。
语法:exists key
复制代码
"EXISTS user:1001" 下令用于检查键名为 "user:1001" 的键是否存在。
执行该下令后,如果键 "user:1001" 存在,下令将返回 1;如果键不存在,下令将返回 0。
这个下令通常用于检查某个键是否存在,以便进行相应的处理或判断条件。
3、RENAME 重命名key
语法:rename key newkey
复制代码
"RENAME user:1001 user_1001" 下令的作用是将键名为 "user:1001" 的键重命名为 "user_1001"。
执行该下令后,原来的键名 "user:1001" 将被修改为 "user_1001",但是键的值不会发生变化。如许可以通过修改键名来更好地构造和管理键的聚集。
需要注意的是,如果在执行重命名操作时,新的键名已经存在,则新的键名对应的值将被覆盖。以是请确保新的键名不会与其他键名冲突。
4、TYPE 根据key返回value的范例。
语法:type key
复制代码
"TYPE user:1002" 下令用于获取键名为 "user:1002" 的键存储的值的数据范例。
该下令返回的效果可能是以下几种数据范例之一:
"string":表示存储的值是字符串范例。
"list":表示存储的值是列表范例。
"set":表示存储的值是聚集范例。
"zset":表示存储的值是有序聚集范例。
"hash":表示存储的值是哈希范例。
"none":表示键不存在。
执行 "TYPE user:1002" 下令后,返回的效果将是上述数据范例之一,指示键存储值的范例。如果键不存在,则返回 "none"。
5、EXPIRE
语法:expire key seconds
复制代码
设置key的生存时间。Redis的数据是缓存在内存中的,然后很多时间数据一样平常都会设置一个过期时间(即到期后销毁数据,从而释放更多的内存)。过期时间默认以秒为单元,默认值为-1,表示永不外期。
"EXPIRE user:1002 3600" 下令的意思是将键名为 "user:1002" 的键设置为具有过期时间。该键将在 3600 秒(即 1 小时)后自动过期并被删除。
这条下令用于设置键的过期时间,让键在肯定时间后自动失效。在上述例子中,执行下令后,键 "user:1002" 将在 1 小时后自动过期。
当键过期时,它将从 Redis 中自动删除,这可以用于在缓存数据或临时数据中设置一个固定的有用期。
也可以在设值的时间指定过期时间(秒)
SET user:1001 user1 EX 1000" 下令的意思是将键名为 "user:1001" 的键设置为值 "user1",并设置其过期时间为 1000 秒。这意味着在 1000 秒后,Redis 将自动删除这个键。
"TTL user:1001" 下令用于获取键名为 "user:1001" 的键的剩余过期时间(Time To Live,以秒为单元)。如果键存在且具有设置的过期时间,下令返回键的剩余过期时间;如果键不存在大概没有设置过期时间,下令返回 -1。如果键已颠末期,下令返回 -2。
因此,执行完 "SET user:1001 user1 EX 1000" 后,可以通过 "TTL user:1001" 下令来查询键 "user:1001" 的剩余过期时间,以相识该键间隔过期尚有多长时间。
这些下令通常用于对某些数据进行临时性存储或缓存,并检查该数据是否已颠末期。
6、TTL 查看key剩余的过期时间。
语法:ttl key
复制代码
"TTL user:1001" 下令用于获取键名为 "user:1001" 的键的剩余过期时间(Time To Live,以秒为单元)。
如果键存在且具有设置的过期时间,下令返回键的剩余过期时间;如果键不存在大概没有设置过期时间,下令返回 -1。如果键已颠末期,下令返回 -2。
这个下令通常用于检查某个键是否尚有剩余的过期时间,以及相识数据的实效性。
7、PERSIST 扫除key的过期时间。
语法:persist key
复制代码
"
ERSIST user:1002" 这条下令的意思是将键名为 "user:1002" 的键的过期时间移除,使其永久生存在 Redis 中,不再具有过期时间。
"TTL user:1002" 下令用于获取键名为 "user:1002" 的键的剩余过期时间(Time To Live,以秒为单元),与之前提到的功能相同。
如果键存在且具有设置的过期时间,"TTL user:1002" 下令返回键的剩余过期时间;如果键不存在大概没有设置过期时间,下令返回 -1。如果键已颠末期,下令返回 -2。
因此,当你执行 "
ERSIST user:1002" 下令后,键 "user:1002" 将不再具有过期时间,成为永久生存的键,除非你手动删除它。
8、PEXPIRE 以毫秒为单元设置key的过期时间。
语法:pexpire key
复制代码
设置键名为 "user:1002" 的键在 60 毫秒后过期。换句话说,60 毫秒后 Redis 将自动删除这个键。
也可以在设值的时间指定过期的时间(毫秒)
"SET user:1001 user1 PX 10000" 这条下令的意思是将键名为 "user:1001" 的键设置为值 "user1",并设置其过期时间为 10000 毫秒(即 10 秒)。在 10 秒后,Redis 将自动删除这个键。
"TTL user:1001" 下令用于获取键名为 "user:1001" 的键的剩余过期时间(Time To Live,以秒为单元)。如果键存在且具有设置的过期时间,下令返回键的剩余过期时间;如果键不存在大概没有设置过期时间,下令返回 -1。如果键已颠末期,下令返回 -2。
三、使用 redis keys有什么利益
使用 Redis 的 KEYS 下令有以下几个利益:
模式匹配:KEYS 下令可以根据指定的模式来搜索并返回与之匹配的键名列表。这对于需要按照特定模式进行键名查询或操作的情况非常有用。比方,你可以使用 KEYS user:* 来获取全部以 "user:" 开头的键。
批量操作:通过获取符合特定模式的键名列表,你可以方便地对这些键进行批量操作。比方,你可以使用 DEL 下令删除匹配的键,大概使用 GET 下令获取匹配的键的值。
快速检索:当你需要快速检索某个特定模式的键时,KEYS 下令可以提供一个简朴的方式。你可以使用通配符来匹配键名,以获取所需的键列表。
需要注意的是,KEYS 下令在处理大量键时可能会对 Redis 服务器的性能产生影响。因此,在生产情况中,如果只需要获取匹配的键名数量大概进行遍历操作,更好的选择是使用 SCAN 下令,它以游标方式渐渐迭代键空间,避免对服务器性能造成负担。
总体而言,KEYS 下令在特定的使用场景下是非常方便的,但需要谨慎使用以避免对 Redis 性能产生不利影响。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
回复
使用道具
举报
0 个回复
倒序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
发新帖
回复
金歌
论坛元老
这个人很懒什么都没写!
楼主热帖
iOS 集成WebRTC相关知识点总结 ...
SQL Server 2014完全卸载与SQL Server ...
白鲸开源 DataOps 平台加速数据分析和 ...
iOS直播/游戏怎么利用特殊音效制造娱乐 ...
.NET ORM框架HiSql实战-第一章-集成HiS ...
查漏补缺——路由显示的是http://local ...
【docker专栏6】详解docker容器状态转 ...
贩卖和售前,如何与**商一起“玩耍”? ...
一个工作薄中快速新建多个数据表 ...
Kubernetes(K8S) Controller - Statefu ...
标签云
集成商
AI
运维
CIO
存储
服务器
浏览过的版块
Postrge-SQL技术社区
Java
.Net
数据仓库与分析
登录参与点评抽奖加入IT实名职场社区
下次自动登录
忘记密码?点此找回!
登陆
新用户注册
用其它账号登录:
关闭
快速回复
返回顶部
返回列表