Redis key键

Redis 是一种键值(key-value)型的缓存型数据库,它将数据全部以键值对的形式存储在内存中,并且 key 与 value 一一对应。这里的 key 被形象的称之为密钥,Redis 提供了诸多操作这把“密钥”的命令,从而实现了对存储数据的管理。

可以把 key 看成 value 的变量,通过检索 key 就可以找到对应的 value 值:

  • key 的类型
  • key 的命名规范
  • key 的过期时间

了解key的特点

1) key的类型

key 的类型对应着 value 的类型,同样也有五种(string、list、hash、set、zset)。如果 key 指向的是一个字符串类型的值,那么 key 的类型就是字符串。我们可以通过TYPE命令来查看 key 的类型,示例如下

# 字符串
redis> SET weather "sunny"
OK
redis> TYPE weather
string# 列表
redis> LPUSH book_list "programming in scala"
(integer) 1
redis> TYPE book_list
list# 集合
redis> SADD pat "dog"
(integer) 1
redis> TYPE pat
set
2) key的命名规范

key 的命名需要遵循以下规则:

  • key 取值不可以太长,否则会影响 value 的查找效率,并且浪费内存空间。
  • key 取值也不能过短,否则会使得 key 可读性变差。
3) key过期时间

Redis 允许你为 key 设置一个过期时间(使用 EXPIRE 等命令),也就是“到点自动删除”,这在实际业务中是非常有用的,一是它可以避免使用频率不高的 key 长期存在,从而占用内存资源;二是控制缓存的失效时间。

Redis 会把每个设置了过期时间的 key 存放到一个独立的字典中,并且会定时遍历这个字典来删除到期的 key。除了定时遍历之外,它还会使用“惰性策略”来删除过期的 key。所谓“惰性策略”指的是当客户端访问这个 key 的时候,Redis 对 key 的过期时间进行检查,如果过期了就立即删除。Redis 使用两种方式相结合的方法来处理过去的 key。 

过期时间,有许多的应用场景,比如购物 App 会在特定的时间节点推出相关的活动,比如双十一、双十二、618购物节等,这些活动都是一年一度如期开办,因此当下一期举行时,上一期的活动的数据就没有意义了,在这种情景下就可以给 key 设置一个过期时间,从而减少无用数据占用内存资源。 

Redis key命令格式

和 key 相关的命令,它的语法格式如下所示: 

 redis 127.0.0.1:6379> COMMAND KEY_NAME

  • COMMAND:表示 key 的命令;
  • KEY_NAME:表示 key 的名字。

示例: DEL代表删除命令,而 cc 是键。如果成功删除了键,则将的返回整数 1,否则将返回整数 0。如下:

redis 127.0.0.1:6379> SET cc "你好"
OK
#删除key
redis 127.0.0.1:6379> DEL  cc
(integer) 1
#若键不存在删除失败
redis 127.0.0.1:6379> DEL age
(integer) 0

Redis键命令汇总

下表对常用的 Redis 键命令做了简单的总结:

Redis 键命令
命令说明
DEL key若键存在的情况下,该命令用于删除键。
DUMP key用于序列化给定 key ,并返回被序列化的值。
EXISTS key用于检查键是否存在,若存在则返回 1,否则返回 0。
EXPIRE key设置 key 的过期时间,以秒为单位。
EXPIREAT key该命令与 EXPIRE 相似,用于为 key 设置过期时间,不同在于,它的时间参数值采用的是时间戳格式。
PEXPIRE key设置 key 的过期,以毫秒为单位。
PEXPIREAT key与 PEXPIRE 相似,用于为 key 设置过期时间,采用以毫秒为单位的时间戳格式。
KEYS pattern此命令用于查找与指定 pattern 匹配的 key。
MOVE key db将当前数据库中的 key 移动至指定的数据库中(默认存储为 0 库,可选 1-15中的任意库)。
PERSIST key该命令用于删除 key 的过期时间,然后 key 将一直存在,不会过期。
PTTL key用于检查 key 还剩多长时间过期,以毫秒为单位。
TTL key用于检查 key 还剩多长时间过期,以秒为单位。
RANDOMKEY从当前数据库中随机返回一个 key。
RENAME key newkey修改 key 的名称。
RENAMENX key newkey如果新键名不重复,则将 key 修改为 newkey。
SCAN cursor基于游标的迭代器,用于迭代数据库中存在的所有键,cursor 指的是迭代游标。
TYPE key该命令用于获取 value 的数据类型。

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

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

相关文章

财报解读:电商GMV增长30%后,快手将坚守本地生活?

快手逐渐讲好了其高质量成长的故事。 根据财报,快手三季度业绩超出预期,其中,营收279.5亿元,同比增长20.8%;调整后净利润31.7亿元,同比扭亏为盈。 而联系市场环境来看,三季度广告、电商市场较…

超详细的pytest玩转HTML报告:修改、汉化和优化

前言 Pytest框架可以使用两种测试报告,其中一种就是使用pytest-html插件生成的测试报告,但是报告中有一些信息没有什么用途或者显示的不太好看,还有一些我们想要在报告中展示的信息却没有,最近又有人问我pytest-html生成的报告&a…

javascript Math相关计算取值属性方法

*向上取整【只要有小数就+1】 Math.ceil(3.14); // 4 *向下取整【有小数就舍弃】 Math.floor(3.14); // 3 parseInt(3.14); // 3 // 常用于字符串类型的数字转为十进制的数据 四舍五入【小数点后部分】 Math.round(11.5)); //12 Math.round(-11.5)); //-11 取两数…

6-使用nacos作为注册中心

本文讲解项目中集成nacos,并将nacos作为注册中心使用的过程。本文不涉及nacos的原理。 1、项目简介 以一个演示项目为例,项目包含三个服务,调用及依赖如下图: 由图中可以看出,coupon-customer-serv为服务的消费者&a…

基于element自动表格

需求是根据JSON文件生成表格,包含配置和自动props属性以及过滤器; 数据示例: 表格设置: /*** 表格表头信息* chineseToPinYin: 这是封装的根据中文汉字转换为拼音的方法* prop: 表头字段名* filter: 数据过滤器* label: 表头显示…

最长连续序列【中等】

leetcode链接 给定一个未排序的整数数组 nums ,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。 请你设计并实现时间复杂度为 O(n) 的算法解决此问题。 示例 1:输入:nums [100,4,200,1,3,2] 输出&am…

『new Date 在 IOS 失效 の bug』

问题:new Date()在安卓下正常,在IOS下显示不出来。 原因:在IOS下,new Date(“2000-2-22 00:10”),返回的是undefined,因为IOS不支持这种类型格式。 解决:更换下格式:new Date(“2000/2/22”) …

类初始化,类加载,类加载器

类初始化,类加载,类加载器 1. 类加载1.1. 类的加载1.2. 类的链接1.2.1. 验证1.2.2. 准备1.2.3. 解析 2. 类加载器2.1. 类加载器分为四种:前三种为虚拟机自带的加载器。2.2. 类加载有三种方式:2.3. **JVM类加载机制**2.4. 双亲委派…

GeoTrust通配符证书:保护您的网站安全

GeoTrust通配符 SSL证书是一种特殊的 SSL 证书类型,它可以同时为您的主域名及其所有子域提供安全保护。无论您有多少个不同的子域需要保障,都可以通过单一的 GeoTrust 通配符 SSL 证书轻松实现,极大地简化了管理流程并降低了成本。 此外&…

1688商品详情数据接口(1688.item_get)

1688商品详情数据接口是一种程序化的接口,通过这个接口,商家或开发者可以使用自己的编程技能,对1688平台上的商品信息进行查询、获取和更新。这个接口允许商家根据自身的需求,获取商品的详细信息,例如价格、库存、描述…

JUC(Java Util Concurrent)多线程并发库

JUC(Java Util Concurrent)是Java中用于编写多线程并发程序的库。开发过程中使用JUC主要有以下几个好处: 1. 提高程序性能:使用JUC可以实现多线程并发执行,充分利用多核CPU,提高程序的性能。 2. 简化代码…

群晖NAS搭建WebDav服务做文件共享,可随时随地远程访问

文章目录 1. 在群晖套件中心安装WebDav Server套件1.1 安装完成后,启动webdav服务,并勾选HTTP复选框 2. 局域网测试WebDav服务2.1 下载RaiDrive客户端2.2 打开RaiDrive,设置界面语言可以选择中文2.3 点击添加按钮,新建虚拟驱动区2…

从事软件测试8年,对业务测试人员的一些思考

自从事测试工作八年多以来,经历过三个部门多条业务线,也经历过测试转型再回到测试,在此过程中对测试工作和角色的认知也逐步有些思考,想把这些思考分享给大家,希望为业务测试同学提供一些有价值的思路。 同时&#xff…

YOLOV7主干改进,使用fasternet轻量化改进主干(完整教程)

1,Pconv(来自Fasternet)(可作为模型中的基础卷积模块使用) 论文链接:https://arxiv.org/abs/2303.03667 2,为了大家方便的使用,这里我对原本的PConv的代码做了部分的改动&#xff0…

立哥尖端技术-云安全整合方案

云安全管理中心 安全管理中心具有集中管控云环境整体安全态势的功能,具备以下功能: (1)部署方式:与云平台紧耦合,可实现云平台一键下单,自动交付。 (2)安全态势总览&a…

拿下挣值管理,软考集成你就成功了一半!

在备考软考集成的时候,挣值管理有多重要呢?挣值管理的计算题考的频率非常高,基本上每年都会考。 而且,计算题基本上都是20分左右,只要能在这道计算题上得满分,那么45分及格的考试就已经成功了一半。 今天…

豪华程度堪比飞机头等舱?奔驰在北美发布Tourrider系列巴士

今年三月,奔驰工厂附近出现了一台特殊的测试车。其突出的前保险杠以及竖置双风挡等特殊配置,都在暗示着它并非是为欧洲市场打造。 根据特征推测,这台车应该是为北美市场打造。 就在昨天,奔驰发布了旗下全新Tourrider系列豪华客车&…

python数据分析高效代码合集

文章目录 问题:我有5个dataframe,都包含time 列,如何将它们根据time列取交集,并保存到同一个excel的不同sheet页中。**df1,df2, df3, df4, df5,其也要用取交集后的time列**问题:我有5个dataframe,都包含time 列,如何将它们根据time列取交集,并保存到同一个excel的不同…

npm安装 node-sass

第一步:安装node-gyp 1.: npm install node-gyp -g2.: node-gyp install3.: npm install node-sass