初识redis:通用命令

news2024/9/20 14:54:45

今天我们简单介绍一些关于redis的基础命令。

目录

get 和 set

全局命令

keys

EXISTS

del(delete)

expire

TTL

Redis的key过期策略是怎么实现的?

type


get 和 set

连接到云服务器后,通过redis-cli命令进入到redis客户端,我们就可以通过get和set命令来存储相关的信息了:

跟hash表类似的方式,set的格式为: set key value

而get的时候,只需要get key则可以拿到属性。如果是不存在该值,则返回的是nil,类似于null,也就是提示我们这个值不存在。

全局命令

Redis支持很多种数据结构,Redis是键值对结构,key固定就是字符串,而value实际上会有很多种类型,全局命令,就是能够搭配任意一个数据结构来使用的命令。

keys

用来查询当前服务器上匹配的key,通过一些特殊符号(通配符),来描述key的样子,就能够查询匹配到key的样子。

patten:包含特殊符号的字符串

为了方便演示,我们提前增加好一些keys和value:

具体来说,包括了一下多种:

  • ? 匹配任意一个字符

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

  • [abcdef] 只能匹配到abcde

  • [^e]排除e,只有e匹配不了,其他的都能匹配

  • [a-e]匹配a-e这个范围内的字符,包含两侧边界

EXISTS

判断某个key是否存在。

请注意,尽量使用EXISTS hello hallo这样的命令,而不是 EXISTS hello  和EXISTS hallo

分开来,会让网络IO量增大,增加成本,所以尽量还是一行操作就完成。

del(delete)

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

expire

给指定的key设置过期时间,key存活时间超出这个指定的值,就会被自动删除。

expire的单位是秒,pexpire的单位是毫秒。

例如很多业务场景,如手机验证码、外卖优惠券,只在指定时间内有效。

此处我们设置一个hello为10,那么在短时间内get,是可以得到结果的,等过了十秒后再get,就发现这个key已经过期了。

TTL

获取指定key的过期时间,秒级。(pTTL则是毫秒级)

Redis的key过期策略是怎么实现的?

一个redis中可以同时存在很多很多的key,这些key中可能有很大一部分key都有过期时间,此时redis服务器是怎么知道哪些key已经过期要被删除,哪些还没过期呢?

redis整体的策略是:

  1. 定期删除:每次抽取一部分,进行验证过期时间,保证这个抽取检查的过程足够快
  2. 惰性删除:假设这个key已经到过期时间了,但是暂时还没有删除它,key还存在,后面又一次的访问正好用到了这个key,于是这次访问就会让redis服务器触发删除key的操作,同时返回一个nil。

type

redis所有的key都是string类型,key对应的value可能会存在多种类型,type的作用就是返回key对应的数据类型。

在遇到不认识的key之前,我们可以查询一下key的类型,以帮助我们了解。

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

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

相关文章

7月21日读Neuroimage Denoiser

Neuroimage Denoiser for removing noise from transient 1 fluorescent signals in functional imaging. Summary Neuroimage Denoiser,这是一种新型的基于U-Net的模型,可以有效去除显微镜记录中瞬时局部荧光信号的噪声。该模型使去噪过程与记录频率和…

sql注入 mysql 执行命令 sql注入以及解决的办法

我们以前很可能听过一个词语叫做SQL注入攻击,其是威胁我们系统安全的最危险的因素之一,那么到底什么是SQL注入攻击呢?这里我会用一个最经典最简单的例子来跟大家解释一下: 众所周知,我们的sql语句都是有逻辑的&#xf…

Python爬虫:代理ip电商数据实战

引言:数据访问管理引发的烦恼 作为一名Python博主,爬虫技能对于获取和分析数据至关重要,经常爬一下,有益身心健康嘛。爬虫技术对很多人来说,不仅仅是一种工具,更像是一种艺术,帮助我们从互联网…

大模型入门学习笔记(非常详细)零基础入门到精通,收藏这一篇就够了

一、认识大模型 1.1 从人工智能到大模型的演变 学完本文后,你将能够: 掌握大模型的特点、重要概念以及工作方式 了解大模型的基本概况和产品矩阵 了解大模型,尤其是大语言模型的应用场景和示例 大模型是人工智能领域的一个重要里程碑&a…

C++相关概念和易错语法(23)(set、仿函数的应用、pair、multiset)

1.set和map存在的意义 (1)set和map的底层都是二叉搜索树,可以达到快速排序(当我们按照迭代器的顺序来遍历set和map,其实是按照中序来遍历的,是排过序的)、去重、搜索的目的。 (2&a…

展馆导览系统架构解析,从需求分析到上线运维

在物质生活日益丰富的当下,人们对精神世界的追求愈发强烈,博物馆、展馆、纪念馆等场所成为人们丰富知识、滋养心灵的热门选择。与此同时,人们对展馆的导航体验也提出了更高要求,展馆导览系统作为一种基于室内外地图相结合的位置引…

STM32智能农业监测与控制系统教程

目录 引言环境准备智能农业监测与控制系统基础代码实现:实现智能农业监测与控制系统 4.1 数据采集模块 4.2 数据处理与分析模块 4.3 通信与网络系统实现 4.4 用户界面与数据可视化应用场景:农业监测与优化问题解决方案与优化收尾与总结 1. 引言 智能农…

电脑基础知识 | 电脑的基本组成

电脑作为我们日常工作和娱乐的重要工具,扮演着举足轻重的角色。当我们谈论电脑的基本组成时,其实是在探讨电脑硬件和软件两个核心部分。硬件是电脑看得见、摸得着的物理设备,而软件则是运行在这些硬件之上的程序和指令。两者相辅相成&#xf…

深入浅出mediasoup—WebRtcTransport

mediasoup 提供了多种 transport,包括 WebRtcTransport、PipeTransport、DirectTransport、PlainTransport 等,用来实现不同目的和场景的媒体通信。WebRtcTransport 是 mediasoup 实现与 WebRTC 客户端进行媒体通信的对象,是 mediasoup 最重要…

Electron案例解析——切换主题颜色的案例

效果图 核心 Electron的 nativeTheme.themeSource属性,值是string。有三个参数:system, light 和 dark,用来覆盖、重写Chromium内部的相应的值 Election的api描述值nativeTheme.themeSource被用来覆盖、重写Chromium内部的相应的值system, …

swagger-ui.html报错404

问题1:权限受限无法访问 由于采用的Shiro安全框架,需要在配置类ShiroConfig下的Shiro 的过滤器链放行该页面:【添加:filterChainDefinitionMap.put("/swagger-ui.html", "anon");】 public ShiroFilterFact…

springboot失物招领论坛系统-计算机毕业设计源码56603

目 录 1 绪论 1.1 研究背景与意义 1.2国内外研究现状 1.3论文结构与章节安排 2 系统分析 2.1 可行性分析 2.1.1 技术可行性分析 2.1.2 经济可行性分析 2.1.3 法律可行性分析 2.2 系统功能分析 2.2.1 功能性分析 2.2.2 非功能性分析 2.3 系统用例分析 2.4 系统流程…

QT 信号槽机制

核心函数为 QMetaObject::Connection QObject::connect(const QObject *sender, const char *signal, const QObject *receiver, const char *method, Qt::ConnectionType type Qt::AutoConnection) 参数为 1.信号发生对象 2.信号发生对象的信号 3.槽对象 4.槽对象的槽函…

CAD框架介绍

1、适用范围:矢量编辑软件如 服装模板软件、CAD软件、绘图软件 2、支持PLT,DXF,PDF,GCode(服装裁割指令)等矢量文件导入 3、支持简易的自动手动排料 4、直线,曲线等编辑功能 5、分页输出绘图指令 6、良好的框架结构:绘图引擎…

单向链表

目录 思维导图: 学习内容: 1. 链表的引入 1.1 顺序表的优缺点 1.1.1 优点 1.1.2 不足 1.1.3 缺点 1.2 链表的概念 1.2.1 链式存储的线性表叫做链表 1.2.2 链表的基础概念 1.3 链表的分类 2. 单向链表 2.1 节点结构体类型 2.2 创建链表 2.…

员工网络监控软件:把控员工网络活动的标尺

在竞争激烈的漩涡之中,企业如同一只不断旋转的陀螺,努力保持着自身的平衡和稳定,而员工的网络活动则是那无形却强大的力量,时刻影响着企业的运转。员工网络监控软件仿佛一根坚固无比的轴心,以其精准的标尺帮助企业实现…

分类模型-逻辑回归和Fisher线性判别分析★★★★

该博客为个人学习清风建模的学习笔记,部分课程可以在B站:【强烈推荐】清风:数学建模算法、编程和写作培训的视频课程以及Matlab等软件教学_哔哩哔哩_bilibili 目录 1理论 1.1逻辑回归模型 1.2线性概率模型 1.3线性判别分析 1.4两点分布…

基于区块链的算力交易平台

目录 基于区块链的算力交易平台 核心技术 创新点 算力交易流程和拍卖算法 关键技术 创新点 基于区块链的算力交易平台 核心技术 智能合约: 定义:智能合约是一组情景应对型的程序化规则和逻辑,通过部署在区块链上的去中心化、可信共享的脚本代码实现。作用:智能合…

leetcode10 -- 正则表达式匹配

题目描述: 给你一个字符串 s 和一个字符规律 p,请你来实现一个支持 . 和 * 的正则表达式匹配。 . 匹配任意单个字符* 匹配零个或多个前面的那一个元素 所谓匹配,是要涵盖 整个 字符串 s的,而不是部分字符串。 示例 1&#xff1…

【工具】轻松转换JSON与Markdown表格——自制Obsidian插件

文章目录 一、插件简介二、功能详解三、使用教程四、插件代码五、总结 一、插件简介 JsonMdTableConverter是一款用于Obsidian的插件,它可以帮助用户在JSON格式和Markdown表格之间进行快速转换。这款插件具有以下特点: 轻松识别并转换JSON与Markdown表格…