Redis - 通用命令

news2025/4/17 8:52:13

目录

  • 了解Redis客户端
  • set 和 get
  • Redis全局命令
    • keys命令
    • exists命令
    • del命令
    • expire命令
    • ttl命令
    • Redis中key的过期策略
    • type

了解Redis客户端

想要输入Redis命令,必须先进入Redis客户端

使用redis-cli连接本机的命令行客户端

redis-cli

如果想连接其他的ip和端口的客户端,可以使用下面命令

redis-cli -h 主机 -p 端口

在这里插入图片描述

遇到不会的命令,可以查看Redis官方文档Commands | Docs

set 和 get

set的用法

set key value

key和value是字符串类型的

例如:
在这里插入图片描述

key和value是不需要加上引号的,如果加上也是可以的(单引号和双引号都行)
在这里插入图片描述

另外,Redis的命令是不区分大小写的

get的用法

get key

在这里插入图片描述

如果输入的key不存在,会返回nil,表示空,和 C++和Java中的NULL、null差不多

在这里插入图片描述

Redis全局命令

Redis是键值对结构,key固定是字符串,value可以是字符串、哈希表、列表、集合、有序集合,操作不同的数据结构会有不同的命令

全局命令,是可以搭配任意一个数据结构来使用的命令

keys命令

keys pattern

上述命令会返回所有满足pattern 样式的key,这个命令的时间复杂度是O(N)

pattern书写规则:

  • ?匹配任意一个字符

  • * 匹配0个或者多个任意字符

  • [ab] 只能匹配a或者b,其他都不行

  • [^a] 表示排除a,除了a其他都能匹配

  • [a-e] 表示a~e这个范围内都匹配(闭区间)

例如:
先设置如下key
在这里插入图片描述

?匹配任意字符
在这里插入图片描述

* 匹配0个或者多个任意字符
在这里插入图片描述

[ae] 匹配a和e
在这里插入图片描述

[^e] 除了e都能匹配
在这里插入图片描述

[a-e] 匹配a~e范围内的值(闭区间)
在这里插入图片描述

查看Redis中所有的key

keys *

在这里插入图片描述

这个命令在生产环境中一般不推荐使用,因为执行keys * 的时间可能会非常长,会使Redis服务器阻塞,无法给其他的客户端提供服务

exists命令

这个命令的作用是判断key是否存在,可以判断一个key,也可以判断多个key,多个key使用空格分开,返回值是key存在的个数,这个操作的时间复杂度是O(N)N只的是key的个数

exists key [key ...]

在这里插入图片描述

exists key1 key2的写法和exists key1、exists key2分开的写法的区别:分开写会产生更多的网络通信,一次网络通信的成本比较高,所以尽可能一次网络通信完成多个操作

del命令

删除指定的key,可以一次删除一个或者多个

del key [key ...]

返回值是删除key的个数
在这里插入图片描述

expire命令

作用是给指定的key设置过期时间(前提是这个key已经存在),单位秒,达到指定的时间之后,这个key就会被自动删除

expire key seconds

返回值1表示设置成功,0表示设置失败

在这里插入图片描述

除了expire外,还有一个命令pexpire用法和expire一致,只不过pexpire的单位是毫秒

pexpire key milliseconds

ttl命令

time to alive,使用这个命令可以查看指定的key的过期时间还剩多少

ttl key

返回值是是剩余的过期时间,-1表示没有设置过期时间,-2表示key不存在,单位是毫秒

在这里插入图片描述

另外还有一个pttl命令,用法和ttl一致,只不过pttl的时间单位是毫秒

pttl key

Redis中key的过期策略

一个Redis中,可能同时存在很多key,这些key中很可能大部分都有过期时间,Redis服务器是如何知道哪些key已经过期要被删除,哪些key还没过期?

Redis的策略是:定期删除和惰性删除结合

1、定期删除:每次只抽取一部分的key检查是否过期,因为如果把所有的key都扫描一遍,成本比较大,Redis是一个单线程的程序,主要任务(处理命令、扫描过期的key等任务)都是在一个线程中完成,如果扫描过期key消耗的时间过多,处理正常请求命令就被阻塞了,这时Redis不能快速的处理请求,所以不能让扫描过期key的时间消耗过多

2、惰性删除:假设这个key已经到过期时间,但是暂时还没删除(还在服务器中存在),后面再次访问这个key时,这次的访问就会让Redis触发删除key的操作,同时返回一个nil。也就是说,当我们不用这个key的时候,这个key已经过期了,但是还在服务器中存储着,当我们使用到的服务器时候发现key已经过期,这时才会触发删除操作。

虽然有上述两种策略的结合,但是可能还会有很多过期的key残留,因此Redis提供了内存淘汰策略

type

查看key对应的value的类型

type key

key对应的value的类型有:none(表示key不存在)、string(字符串)、list(列表)、set(集合)、zset(有序集合)、hash(哈希表)、stream(当Redis作为消息队列时使用stream类型的value),type命令时间复杂度为O(1)

在这里插入图片描述

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

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

相关文章

重学SpringBoot3-WebClient配置与使用详解

更多SpringBoot3内容请关注我的专栏:《SpringBoot3》 期待您的点赞??收藏评论 重学SpringBoot3-WebClient配置与使用详解 1. 简介2. 环境准备 2.1 依赖配置 3. WebClient配置 3.1 基础配置3.2 高级配置3.3 retrieve()和exchange()区别 4. 使用示例 4.1 基本请求操…

HTML5 新表单属性详解

HTML5 为 <form> 和 <input> 标签引入了一系列新属性&#xff0c;极大地增强了表单的功能和用户体验。这些新属性不仅简化了开发者的工作&#xff0c;还为用户提供了更友好、更高效的交互方式。本文将详细介绍这些新属性&#xff0c;并结合代码示例帮助大家更好地理…

【专题】为2025制定可付诸实践的IT战略规划报告汇总PDF洞察(附原数据表)

原文链接&#xff1a;https://tecdat.cn/?p39055 在当今瞬息万变的商业环境中&#xff0c;制定有效的 IT 战略规划对于企业的成功与可持续发展至关重要。本报告深入探讨了制定 IT 战略规划的关键活动&#xff0c;旨在为企业和决策者提供全面且实用的指导。 Gartner的《为202…

JAVA实战开源项目:课程作业管理系统(Vue+SpringBoot) 附源码

本文项目编号 T 023 &#xff0c;文末自助获取源码 \color{red}{T023&#xff0c;文末自助获取源码} T023&#xff0c;文末自助获取源码 目录 一、系统介绍二、演示录屏三、启动教程四、功能截图五、文案资料5.1 选题背景5.2 国内外研究现状5.3 可行性分析 六、核心代码6.1 查…

代码随想录算法训练营day32

代码随想录算法训练营 —day32 文章目录 代码随想录算法训练营前言一、动态规划理论基础二、509. 斐波那契数动态规划动态规划优化空间版递归法 三、70. 爬楼梯动态规划动态规划空间优化 746. 使用最小花费爬楼梯动态规划空间优化 总结 前言 今天是算法营的第32天&#xff0c…

设计模式的艺术-开闭原则

原则使用频率图&#xff08;仅供参考&#xff09; 1.如何理解开闭原则 简单来说&#xff0c;开闭原则指的是 “对扩展开放&#xff0c;对修改关闭”。 当软件系统需要增加新的功能时&#xff0c;应该通过扩展现有代码的方式来实现&#xff0c;而不是去修改已有的代码。 例如我…

grafana新增email告警

选择一个面板 比如cpu 新增一个临界点表达式 input选A 就是A的值达到某个临界点 触发告警 我这边IS ABOVE0.15就是cpu大于0.15%就触发报警&#xff0c;这个值怎么填看指标的值显示 这里要设置一下报警条件 这边随便配置下 配置标签和通知&#xff0c;选择你的邮件 看下告警…

C++17 新特性深入解析:constexpr 扩展、if constexpr 和 constexpr lambda

C17 不仅增强了现有特性&#xff0c;还引入了一些全新的编程工具&#xff0c;极大地提升了代码的效率和表达力。在这篇文章中&#xff0c;我们将深入探讨 C17 中与 constexpr 相关的三个重要特性&#xff1a;constexpr 的扩展用法、if constexpr 和 constexpr lambda。这些特性…

ChatGPT 摘要,以 ESS 作为你的私有数据存储

作者&#xff1a;来自 Elastic Ryan_Earle 本教程介绍如何设置 Elasticsearch 网络爬虫&#xff0c;将网站索引到 Elasticsearch 中&#xff0c;然后利用 ChatGPT 使用我们的私人数据来总结对其提出的问题。 Python 脚本的 Github Repo&#xff1a;https://github.com/Gunner…

算法刷题笔记——图论篇

这里写目录标题 理论基础图的基本概念图的种类度 连通性连通图强连通图连通分量强连通分量 图的构造邻接矩阵邻接表 图的遍历方式 深度优先搜索理论基础dfs 与 bfs 区别dfs 搜索过程深搜三部曲所有可达路径广度优先搜索理论基础广搜的使用场景广搜的过程 岛屿数量孤岛的总面积沉…

神经网络:什么是交叉熵?

在机器学习和深度学习中&#xff0c;交叉熵&#xff08;Cross Entropy&#xff09; 是一种常见的损失函数&#xff0c;特别适用于分类问题。尽管这个术语听起来可能有点复杂&#xff0c;但通过一个类比&#xff0c;我们可以更直观地理解它的含义和作用。 类比场景&#xff1a;…

数据结构——队列和栈(介绍、类型、Java手搓实现循环队列)

我是一个计算机专业研0的学生卡蒙Camel&#x1f42b;&#x1f42b;&#x1f42b;&#xff08;刚保研&#xff09; 记录每天学习过程&#xff08;主要学习Java、python、人工智能&#xff09;&#xff0c;总结知识点&#xff08;内容来自&#xff1a;自我总结网上借鉴&#xff0…

[Spring] OpenFeign的使用

&#x1f338;个人主页:https://blog.csdn.net/2301_80050796?spm1000.2115.3001.5343 &#x1f3f5;️热门专栏: &#x1f9ca; Java基本语法(97平均质量分)https://blog.csdn.net/2301_80050796/category_12615970.html?spm1001.2014.3001.5482 &#x1f355; Collection与…

LangChain + llamaFactory + Qwen2-7b-VL 构建本地RAG问答系统

单纯仅靠LLM会产生误导性的 “幻觉”&#xff0c;训练数据会过时&#xff0c;处理特定知识时效率不高&#xff0c;缺乏专业领域的深度洞察&#xff0c;同时在推理能力上也有所欠缺。 正是在这样的背景下&#xff0c;检索增强生成技术&#xff08;Retrieval-Augmented Generati…

SpringCloud Gateway 集成 Sentinel 详解 及实现动态监听Nacos规则配置实时更新流控规则

目录 一、前言二、版本选择和适配2.1、本文使用各组件版本2.2、官方推荐版本 三、部署sentinel-dashboard3.1、下载 sentinel-dashboard jar包3.2、启动 sentinel-dashboard 四、Gateway 集成 Sentinel实现控制台配置流控规则测试4.1、添加Gateway 集成 Sentinel 包4.2、添加 G…

三相电变为家庭220V,市电火线和零线关系,为什么用三相电输送

参考&#xff1a; https://www.zhihu.com/question/30555841/answer/85723024 上面是电力系统的主要组成&#xff0c;发电站发电后升压传输&#xff0c;然后到各大城市再降压使用。 我们看到电塔上都是三根线&#xff0c;那么因为整个过程都是三相电。 为什么用三相电&#xff…

YOLOv8改进,YOLOv8检测头融合DSConv(动态蛇形卷积),并添加小目标检测层(四头检测),适合目标检测、分割等

精确分割拓扑管状结构例如血管和道路,对各个领域至关重要,可确保下游任务的准确性和效率。然而,许多因素使任务变得复杂,包括细小脆弱的局部结构和复杂多变的全局形态。在这项工作中,注意到管状结构的特殊特征,并利用这一知识来引导 DSCNet 在三个阶段同时增强感知:特征…

DNS未响应服务问题的解决(电脑连着网但浏览器访问不了网页)

天行健&#xff0c;君子以自强不息&#xff1b;地势坤&#xff0c;君子以厚德载物。 每个人都有惰性&#xff0c;但不断学习是好好生活的根本&#xff0c;共勉&#xff01; 文章均为学习整理笔记&#xff0c;分享记录为主&#xff0c;如有错误请指正&#xff0c;共同学习进步。…

鸿蒙Harmony json转对象(1)

案例1 运行代码如下 上图的运行结果如下: 附加1 Json_msg interface 案例2 import {JSON } from kit.ArkTS; export interface commonRes {status: numberreturnJSON: ESObject;time: string } export interface returnRes {uid: stringuserType: number; }Entry Component …

Transformer详解:Attention机制原理

前言 Hello&#xff0c;大家好&#xff0c;我是GISer Liu&#x1f601;&#xff0c;一名热爱AI技术的GIS开发者&#xff0c;本系列文章是作者参加DataWhale2025年1月份学习赛&#xff0c;旨在讲解Transformer模型的理论和实践。&#x1f632; 本文将详细探讨Attention机制的原理…