【Redis】key相关命令

1.前言

Redis 是一个基于键值对(key-value)的数据结构存储系统,在学习Redis数据类型之前,先来了解一下key相关的命令吧

2. 获取和设置Key的值

  • SET key value:设置key对应的值。
  • GET key:获取key对应的值。
  • SETNX key value:只有当key不存在时,才设置key的值。
  • 示例:
127.0.0.1:6379> set k1 hello
OK
127.0.0.1:6379> get k1
"hello"
127.0.0.1:6379> setnx k1 1 # k1存在,不修改
(integer) 0
127.0.0.1:6379> get k1
"hello"
127.0.0.1:6379> setnx k2 2 # k2不存在,生成key并赋值
(integer) 1
127.0.0.1:6379> get k2
"2"
127.0.0.1:6379>

3. Key的生存时间

  • EXPIRE key seconds:为key设置过期时间(单位秒)。
  • SETEX key seconds value:设置key的值,并为其设置过期时间(单位秒)。
  • TTL key:获取key的剩余生存时间(单位秒),如果key没有设置过期时间则返回-1,如果key不存在则返回-2。
  • PTTL key:同TTL,但返回毫秒精度的剩余生存时间。
  • PEXPIRE key milliseconds:为key设置过期时间(单位毫秒)。
  • PERSIST key:移除key的过期时间,使其永不过期。
  • 示例:
127.0.0.1:6379> set k1 1 # 没设置过期时间
OK
127.0.0.1:6379> ttl k1 
(integer) -1  
127.0.0.1:6379> expire k1 5 # 设置过期时间 5s
(integer) 1
127.0.0.1:6379> ttl k1
(integer) 3 
127.0.0.1:6379> ttl k1
(integer) 1
127.0.0.1:6379> ttl k1
(integer) -2 # 已过期
     
127.0.0.1:6379> setex k2 5 2 # 设置key并设置过期时间
OK
127.0.0.1:6379> ttl k2
(integer) 4
127.0.0.1:6379> ttl k2
(integer) 1
127.0.0.1:6379> ttl k2
(integer) -2
127.0.0.1:6379> 
     
127.0.0.1:6379> setex k3 100 3 
OK
127.0.0.1:6379> ttl k3
(integer) 96
127.0.0.1:6379> persist k3 # 移除k3的过期时间
(integer) 1
127.0.0.1:6379> ttl k3
(integer) -1
127.0.0.1:6379> 

4. 删除Key

  • DEL key [key ...]:删除一个或多个key。
  • 示例:
127.0.0.1:6379> set k1 1
OK
127.0.0.1:6379> set k2 2
OK
127.0.0.1:6379> set k3 3
OK
127.0.0.1:6379> del k1
(integer) 1
127.0.0.1:6379> del k2 k3
(integer) 2
127.0.0.1:6379> 
  • ⭐UNLINK key [key ...]:非阻塞地删除一个或多个key(仅仅将keys从keyspace元数据中删除,真正的删除会在后续异步中操作,这个命令很重要!)。

5. 检查Key的存在性

  • EXISTS key:检查key是否存在,存在返回1,否则返回0。
  • TYPE key:返回key所储存的值的类型。
  • 示例:
127.0.0.1:6379> set k1 1
OK
127.0.0.1:6379> exists k1
(integer) 1
127.0.0.1:6379> exists k2
(integer) 0
127.0.0.1:6379> type k1
string
127.0.0.1:6379> 

6. Key的计数

  • DBSIZE:返回当前数据库中key的数量。
  • 示例:
127.0.0.1:6379> keys *
1) "k1"
127.0.0.1:6379> dbsize 
(integer) 1
127.0.0.1:6379> 

7. 遍历和查找Key

  • KEYS pattern:查找所有符合给定模式的key,但此命令可能阻塞服务器,慎用。
  • 示例:
127.0.0.1:6379> set k1 1
OK
127.0.0.1:6379> set k2 2
OK
127.0.0.1:6379> keys * #key * 这个操作十分危险,慎用!
1) "k2"
2) "k1"
127.0.0.1:6379> 

8. 数据库的相关key的操作

  • MOVE key dbindex:将key移动到另一个数据库dbindex中。
  • select dbindex: 切换数据库
  • 示例:
 # Redis中默认是有16个数据库,数据库下标从0开始
 # 数据库数量 可在Redis的配置文件中修改
127.0.0.1:6379> set k1 1
OK
127.0.0.1:6379> set k2 2
OK
127.0.0.1:6379> move k1 6 #将k1从0号数据库移到6号数据库
(integer) 1
127.0.0.1:6379> keys *
1) "k2" 
127.0.0.1:6379> select 6 # 进入6号数据库
OK
127.0.0.1:6379[6]> keys *
1) "k1" 
127.0.0.1:6379[6]> select 15 # 第16个数据库
OK
127.0.0.1:6379[15]> select 16 
(error) ERR DB index is out of range 
127.0.0.1:6379[15]> 
  • RANDOMKEY:随机返回数据库中的一个key。
  • flushdb: 清空当前数据库
  • flushall: 清空全部数据库
  • 示例:
127.0.0.1:6379> keys *
1) "k4"
2) "k2"
3) "k3"
127.0.0.1:6379> randomkey
"k4"
127.0.0.1:6379> randomkey
"k4"
127.0.0.1:6379> randomkey
"k3"
127.0.0.1:6379> randomkey
"k2"
    
127.0.0.1:6379> flushdb # 清空当前数据库
OK
127.0.0.1:6379> keys *
(empty array)
127.0.0.1:6379> 127.0.0.1:6379> select 6 # 查看6号数据库
OK
127.0.0.1:6379[6]> keys *
1) "k1" # 6号库key没有被清除 

127.0.0.1:6379[6]> select 0 # 进入0号数据库
OK
127.0.0.1:6379> flushall # 清空全部数据库
OK
127.0.0.1:6379> select 6 
OK
127.0.0.1:6379[6]> keys * 
(empty array) # 6号库key已被清除

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Aker(安碁科技)晶振产品应用和选型

一、石英晶体振荡器简介 在电子电路系统中,特定的动作需要严格按照一定的顺序进行,以确保数据被正确处理和操作,时钟信号就成了系统工作的重要引导者。而且在多模块复杂电路系统中,为了确保不同功能模块能协调一致地工作&#xf…

C#调用skiasharp操作并绘制图片

之前学习ViewFaceCore时采用Panel控件和GDI将图片及识别出的人脸方框和关键点绘制出来,本文将其修改为基于SKControl和SKCanvas实现相同的显示效果并支持保存为本地图片。   新建Winform项目,在Nuget包管理器中搜索并安装一下SkiaSharp和ViewFaceCore…

三维SDMTSP:GWO灰狼优化算法求解三维单仓库多旅行商问题,可以更改数据集和起点(MATLAB代码)

一、单仓库多旅行商问题 多旅行商问题(Multiple Traveling Salesman Problem, MTSP)是著名的旅行商问题(Traveling Salesman Problem, TSP)的延伸,多旅行商问题定义为:给定一个𝑛座城市的城市集…

springboot 集成 flowable

随着企业对于业务流程管理需求的增加,流程引擎在企业信息化建设中的作用越来越重要。Flowable是一个开源的轻量级业务流程管理(BPM)和工作流引擎,它支持BPMN 2.0标准。 Flowable的一些特点: 安装集成:Flow…

hdfs安全模式

hdfs安全模式 1.安全模式 查看hdfs是否在安全模式:不能上传数据 删除 修改 但是能查看 ------------------------ $>hdfs dfsadmin -safemode enter //进入 $>hdfs dfsadmin -safemode get //查看 $>hdfs dfsadmin -saf…

巧用 TiCDC Syncpiont 构建银行实时交易和准实时计算一体化架构

本文阐述了某商业银行如何利用 TiCDC Syncpoint 功能,在 TiDB 平台上构建一个既能处理实时交易又能进行准实时计算的一体化架构,用以优化其零售资格业务系统的实践。通过迁移到 TiDB 并巧妙应用 Syncpoint,该银行成功解决了原有多个 MySQL 集…

解决TIVA飞控玄学类问题的通解,用魔法打败魔法

问题:我遭遇了玄学问题,出现飞机在起降过程中,位置晃动,突然出现的,昨天还好好的,位置地点都没换,今天中午测试了5、6次每次都这样,现在茫然无措,小哥救我? 这…

数据库管理-第179期 分库分表vs分布式(20240430

数据库管理179期 2024-04-30 数据库管理-第179期 分库分表vs分布式(20240430)1 分库分表1.1 分库1.2 分表1.3 组合1.4 问题 2 分布式3 常见分布式数据库4 期望总结 数据库管理-第179期 分库分表vs分布式(20240430) 作者&#xff1…

vue路由(路由基本使用,传参,多级路由)

目录 vue-router简介路由配置和使用嵌套(多级)路由路由传参方式1:路由的query参数方式2:路由的params参数props配置 命名路由取消路由组件在前进后退 vue-router简介 vue的一个插件库,专门用来实现SPA应用 路由配置…

k8s环境prometheus operator监控集群外资源

文章目录 k8s环境添加其他节点基于prometheus operator k8s环境prometheus operator添加node-exporter方式一:通过 ServiceMonitor 方式可以写多个监控node节点运行 external-node.yaml查看资源有没有被创建热更新 外部需要被监控服务器安装 node-exporterdocker 方…

git如何将多个commit合并成一个?

我们使用git进行版本控制,在本地开发完某个功能时,需要提交commit,然后push至开发分支。简单的功能还好,几个commit可能就好了。但是如果功能比较复杂,commit多达十几甚至几十个时,commit管理就会很冗长。比…

使用Pandas和Matplotlib实现数据探索性可视化

👽发现宝藏 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。【点击进入巨牛的人工智能学习网站】。 使用 Pandas 和 Matplotlib 实现数据探索性可视化 在数据分析和机器学习领域,数…

Apache POI 在java中处理excel

介绍: Apache POI 是一个处理Miscrosoft Office各种文件格式的开源项目。简单来说就是&#xff0c;我们可以使用 POI 在 Java 程序中对Miscrosoft Office各种文件进行读写操作。 一般情况下&#xff0c;POI 都是用于操作 Excel 文件。 如何使用: 1.maven坐标引入 <depend…

实验八智能手机互联网程序设计(微信程序方向)实验报告

请在上一次实验的基础之上完成“手机快速注册”页面、“企业用户注册”页面&#xff0c;并实现点击手机快速注册和企业用户注册后转跳至该页面在“手机快速注册”页面&#xff0c;输入框内输入内容并失去焦点后&#xff0c;下方的按钮会变化 在企业用户注册页面&#xff0c;用户…

思考!思考!jmeter线程数≠用户并发数

最近又在搞性能测试了&#xff0c;相较于之前的写脚本出数据就完事&#xff0c;这次深入的思考了一下测试出来的指标&#xff0c;到底有什么意义&#xff1f;&#xff1f;&#xff1f; 绞尽脑汁思考了好几天&#xff0c;终于有了点思路&#xff0c;写出来与大家分享&#xff0…

掌握JavaScript面向对象编程核心密码:深入解析JavaScript面向对象机制对象基础、原型模式与继承策略全面指南,高效创建高质量、可维护代码

ECMAScript&#xff08;简称ES&#xff0c;是JavaScript的标准规范&#xff09;支持面向对象编程&#xff0c;通过构造函数模拟类&#xff0c;原型链实现继承&#xff0c;以及ES6引入的class语法糖简化面向对象开发。对象可通过构造函数创建&#xff0c;使用原型链共享方法和属…

基于RK1126的小型化低功耗AI相机,支持人体特征识别、人脸特征识别、案例帽识别等

提供可定制的⼀套 AI相机软硬件开发平台&#xff0c; 硬件采⽤ RockchipRV1126处理器解决 ⽅案&#xff0c;可选择搭配 SonyIMX系列传感器&#xff0c;POE供电与数据传输&#xff0c;采⽤ 38板标准结构设计&#xff0c;快速按需定制外壳&#xff0c;⽀撑从开发到验证到批量⽣产…

基于Matlab使用深度学习的多曝光图像融合

欢迎大家点赞、收藏、关注、评论啦 &#xff0c;由于篇幅有限&#xff0c;只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 一、项目背景 在图像处理领域&#xff0c;多曝光图像融合技术是一种重要的技术&#xff0c;它可以将不同曝光条件下…

Ubuntu安装Neo4j

Ubuntu&#xff08;在线版&#xff09; 更新软件源 sudo apt-get update 添加Neo4j官方存储库 wget -O - https://debian.neo4j.com/neotechnology.gpg.key | sudo apt-key add - 将地址添加到系统的软件包源列表中 echo deb https://debian.neo4j.com stable latest | su…

update_min_vruntime()流程图

linux kernel scheduler cfs的update_min_vruntime() 看起来还挺绕的。含义其实也简单&#xff0c;总一句话&#xff0c;将 cfs_rq->min_vruntime 设置为&#xff1a; max( cfs_rq->vruntime, min(leftmost_se->vruntime, cfs_rq->curr->vruntime) )。 画个流…
最新文章