当前位置: 首页 > news >正文

Redis 常用命令

目录

全局命令

1)keys

2)exists

3) del(delete)

4)expire

5)type

SET命令

GET命令

MSET 和 MGET命令

其他SET命令

计数命令

redis-cli,进入redis

最核心的命令:我们这里只是先介绍 set 和 get 最简单的操作,后面有详细介绍

set: 存储 key 和 value

get: 根据 key 来取 value

key 和 value 的类型都是字符串

get 查询不存在的值会返回一个 nil

全局命令

1)keys

用来查询当前服务器上的匹配的 key

通过一下特殊符号(通配符)来描述 key 的模样,匹配上述模样的 key 就会被查出来。

keys pattern,pattern 是包含特殊符号的字符串。

pattern 所支持的统配样式:

“?” 可以匹配任意一个字符

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

keys * 可以查询所有的 key

[ae] 只能匹配到 a/e 两个字符之一

[^e] 表示排除 e ,除了 e 之外可以匹配其他字符

[a-e] 匹配 a - e 范围内的字符,包含 a 和 e

注意:keys 的时间复杂度是 O(N)。在生产环境上,一般都会禁止使用 keys 命令。

2)exists

判定 key 是否存在。

exists key [key ...],返回值:返回 key 存在的个数

时间复杂度:O(N),此处的 N 是检查的 key 的个数

3) del(delete)

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

del key [key ...], 返回值:返回删除 key 的个数

时间复杂度:O(N),此处的 N 是成功删除的 key 的个数

4)expire

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

expire key seconds, expire 设置的时间单位是 秒。pexpire key 毫秒, pexpire 设置的时间单位是毫秒

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

时间复杂度:O(1)。

ttl(time to live) 查询 key 的过期时间,单位秒。pttl 和 pexpire 搭配使用。


时间复杂度:O(1)。

返回值:剩余过期时间;-1 表示么有设置过期时间;-2 表示 key 不存在。

redis 的过期策略是怎么实现的?

如果直接遍历所有的 key,显然是不可能的,所有redis 采取了两种方式相结合:

1.定期删除

每隔一定时间,抽取一部分 key 检查是否到达删除时间,每次抽取一部分可以有效保证效率,不会浪费太多时间。 如果扫描过期 key 消耗的时间太多了,就可能会导致正常处理请求命令就阻塞了。

2.惰性删除

假设这个 key 已经到了过期时间,但是暂时还没有将其删除,key 依然存在,接下来再访问该 key 的时候,就会触发 redis 的删除操作,同时返回一个 nil。

redis 为了应对上述策略,还提供了一系列的内存淘汰策略。

5)type

type key,返回 key 对应的 value 的数据类型。

SET命令

SET key value [NX | XX] [GET] [EX seconds | PX milliseconds |EXAT unix-time-seconds | PXAT unix-time-milliseconds | KEEPTTL]

NX:如果 key 不存在,才设置,如果 key 存在,则不设置(返回nil)

XX:如果 key 存在,才设置(相当于更新 key 的 value),如果 key 不存在,则不设置(返回nil)

EX:设置过期时间,单位秒

PS:设置过期时间,单位毫秒

EXAT:设置 key 过期的指定 Unix 时间(以秒为单位)

PXAT:设置 key 过期的指定 Unix 时间(以毫秒为单位)

KEEPTTL:保存与 key 相关联的生存时间

set key value ex 10,就相当于set key value 和 expire key 10

因为 key2 已经过期了,所以我们在设置 key2 时加上 NX,成功设置 key2。由于 key1 已经存在,所以加上 NX 会返回一个 nil。

GET命令

GET key,需要注意的是,GET 只能获取到字符串类型的 value,如果 value 是其他类型,使用 GET 获取就会出错!

MSET 和 MGET命令

MSET key value [key value],MSET 可以设置多组键值对,MGET key key,MGET 可以获取多个 key 的 value。

MSET 和 MGET 的时间复杂度都是 O(N),N为 key 的个数。

其他SET命令

SETNX:不存在才能设置,存在则设置失败。

SETEX:设置 key 的过期时间(以秒为单位)

PSETEX:设置 key 的过期时间(以毫秒为单位)

计数命令

incr 针对 value + 1

INCR key,此时 key 对应的 value 必须是整数。

返回值:原 value +1 的结果

无论是字符串还是小数,还是太大的数(超出规定范围),都不能完成该操作

如果 incr 操作的 key 不存在,那么就会将这个 key 默认为0来操作

incrby 针对 value + n

INCRBY key increment,incrby 的使用规则和 incr 一样,都只能对整数使用,我们就不再进行演示了。

incrby 不仅仅可以加一个正数,还能够加负数

decr 针对 value + 1

DECR key

返回值:返回 value-1 后的结果

对一个不存在的 key 进行该操作,同样默认该 key 的 value 为0

decrby 针对 value - n

DECRBY key decrement

incrbyfloat

incrbyfloat key increment,把 key 对应的 value 进行 + - 运算,运算的操作数可以是浮点数

注意:Redis 中不存在 decrbyfloat,只能通过 incrbyfloat+ 负数来实现减法

相关文章:

Redis 常用命令

目录 全局命令 1)keys 2)exists 3) del(delete) 4)expire 5)type SET命令 GET命令 MSET 和 MGET命令 其他SET命令 计数命令 redis-cli,进入redis 最核心的命令:我们这里只是先介绍 set 和 get 最简单的操作…...

Integer.valueOf()用于字符和字符串的区别

LeetCode 17 电话号码的字母组合 先贴代码 class Solution {List<String> result new ArrayList<>();String temp new String("");Integer num;public List<String> letterCombinations(String digits) {dfs(digits, 0);return result;} publi…...

机械寿命预测(基于NASA C-MAPSS数据的剩余使用寿命RUL预测,Python代码,CNN_LSTM模型,有详细中文注释)

1.效果视频&#xff1a;机械寿命预测&#xff08;NASA涡轮风扇发动机剩余使用寿命RUL预测&#xff0c;Python代码&#xff0c;CNN_LSTM模型&#xff0c;有详细中文注释&#xff09;_哔哩哔哩_bilibili 环境库版本&#xff1a; 2.数据来源&#xff1a;https://www.nasa.gov/int…...

ConfigMaps-1

文章目录 主要内容一.使用 YAML 文件创建1.在data节点创建了一些键值&#xff1a;代码如下&#xff08;示例&#xff09;: 2.解释 二.使用命令行创建1.创建了一个名为 person 的键值&#xff1a;代码如下&#xff08;示例&#xff09;: 2.解释3.创建了一个 index.html 文件&…...

docker上安装es

安装docker 1 安装docker依赖 yum install -y yum-utils2 设置docker仓库镜像地址 yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo3 安装制定版本的docker yum -y install docker-ce-20.10.17-3.el74 查看是否安装成功 y…...

#循循渐进学51单片机#c语言基础和流水灯实现#not.3

1、熟练掌握二进制、十进制和十六进制的转换方法。 多少进制就是多少之间相加&#xff0c;比如十六进制就是十六一次一加&#xff1b;二进制转化十六进制&#xff0c;分成四个一组。 2、C语言变量类型与取值范围&#xff0c;for、while等基本语句的用法。 for、while等基本语句…...

算法刷题 week3

这里写目录标题 1.重建二叉树题目题解(递归) O(n) 2.二叉树的下一个节点题目题解(模拟) O(h) 3.用两个栈实现队列题目题解(栈&#xff0c;队列) O(n) 1.重建二叉树 题目 题解 (递归) O(n) 递归建立整棵二叉树&#xff1a;先递归创建左右子树&#xff0c;然后创建根节点&…...

TCP详解之流量控制

TCP详解之流量控制 发送方不能无脑的发数据给接收方&#xff0c;要考虑接收方处理能力。 如果一直无脑的发数据给对方&#xff0c;但对方处理不过来&#xff0c;那么就会导致触发重发机制&#xff0c;从而导致网络流量的无端的浪费。 为了解决这种现象发生&#xff0c;TCP 提…...

mac根目录下创建文件不能问题

mac根目录下创建文件不能问题 解决办法2: 原因 mac os引入了系统完整性保护&#xff08;SIP&#xff09;机制&#xff0c;无法在/、/usr目录下新建文件 解决办法1&#xff1a; 打开终端&#xff0c;输入 csrutil status显示enabled表示启用了SIP&#xff0c;接下来需要禁用SIP…...

stable diffusion model训练遇到的问题【No module named ‘triton‘】

一天早晨过来&#xff0c;发现昨天还能跑的diffusion代码&#xff0c;突然出现了【No module named ‘triton’】的问题&#xff0c;导致本就不富裕的显存和优化速度雪上加霜&#xff0c;因此好好探究了解决方案。 首先是原因&#xff0c;由于早晨过来发现【电脑重启】导致了【…...

线性dp,优化记录,273. 分级

273. 分级 273. 分级 - AcWing题库 给定长度为 N 的序列 A&#xff0c;构造一个长度为 N 的序列 B&#xff0c;满足&#xff1a; B 非严格单调&#xff0c;即 B1≤B2≤…≤BN 或 B1≥B2≥…≥BN。最小化 S∑Ni1|Ai−Bi|。 只需要求出这个最小值 S。 输入格式 第一行包含一…...

JWT 安全及案例实战

文章目录 一、JWT (json web token)安全1. Cookie&#xff08;放在浏览器&#xff09;2. Session&#xff08;放在服务器&#xff09;3. Token4. JWT (json web token)4.1 头部4.1.1 alg4.1.2 typ 4.2 payload4.3 签名4.4 通信流程 5. 防御措施 二、漏洞实例&#xff08;webgoa…...

Vue2+Vue3

文章目录 Vue快速上手Vue是什么第一个Vue程序插值表达式Vue核心特性&#xff1a;响应式 Vue指令v-htmlv-show 与 v-ifv-else 与 v-else-ifv-onv-bindv-forv-model指令修饰符 计算属性watch侦听器&#xff08;监视器&#xff09;watch——简写watch——完整写法 Vue生命周期 和 …...

华为云云耀云服务器L实例评测|redis漏洞回顾 MySQL数据安全解决 搭建主从集群MySQL 相关设置

前言 最近华为云云耀云服务器L实例上新&#xff0c;也搞了一台来玩&#xff0c;期间遇到过MySQL数据库被攻击的情况&#xff0c;数据丢失&#xff0c;还好我有几份备份&#xff0c;没有造成太大的损失&#xff1b;后来有发现Redis数据库被攻击的情况&#xff0c;加入了redis密…...

【C++】详解std::thread

2023年9月10日&#xff0c;周日下午开始 2023年9月10日&#xff0c;周日晚上23:35完成 虽然这篇博客我今天花了很多时间去写&#xff0c;但是我对std::thread有了一个完整的认识 不过有些内容还没完善&#xff0c;以后有空再更新.... 目录 头文件类的成员类型方法(construc…...

Apache HTTPD 漏洞复现

文章目录 Apache HTTPD 漏洞复现1. Apache HTTPD 多后缀解析漏洞1.1 漏洞描述1.2 漏洞复现1.3 漏洞利用1.4 获取GetShell1.5 漏洞防御 2. Apache HTTPD 换行解析漏洞-CVE-2017-157152.1 漏洞描述2.2 漏洞复现2.3 漏洞利用2.4 修复建议 3. Apache HTTP Server_2.4.49 路径遍历和…...

【C++从入门到精通】第2篇:C++基础知识(中)

文章目录 2.1 iostream介绍&#xff1a;cout、cin和endl2.1.1 输入/输出库2.1.2 std::cout2.1.3 std::endl2.1.4 std::cout是缓冲的2.1.5 std::endl与\n2.1.6 std::cin2.1.7 总结2.1.8 练习时间 2.2 未初始化的变量和未定义的行为2.2.1 未初始化的变量2.2.2 未定义行为2.2.3 明…...

【RuoYi移动端】uni-app中实现生成二维码功能(代码示例)

完整示例&#xff1a; <template><view><view class"titleBar">执法检查“通行码”信息</view><view class"twoCode"><canvas canvas-id"qrcode"></canvas></view></view> </templat…...

深度解剖数据在栈中的应用

> 作者简介&#xff1a;დ旧言~&#xff0c;目前大一&#xff0c;现在学习Java&#xff0c;c&#xff0c;c&#xff0c;Python等 > 座右铭&#xff1a;松树千年终是朽&#xff0c;槿花一日自为荣。 > 望小伙伴们点赞&#x1f44d;收藏✨加关注哟&#x1f495;&#x1…...

Android10 SystemUI系列 需求定制(一)状态栏控制中心默认tile定制属性适配

一、前言 SystemUI 所包含的界面和模块比较多,这一节主要分享一下控制中心默认tile 列表的实现,通过配置可以实现 下拉状态栏,控制中心默认的tile显示 二、准备工作 按照惯例先找一下控制中心的代码,主要在下面这个路径下 frameworks/base/packages/SystemUI/src/com/andr…...

【微信小程序】文章设置

设置基本字体样式&#xff1a;行高、首行缩进 font-size: 32rpx;line-height: 1.6em;text-indent: 2em;padding: 20rpx 0;border-bottom: 1px dashed var(--themColor); 两端对齐 text-align: justify; css文字两行或者几行显示省略号 css文字两行或者几行显示省略号_css…...

程序员在线周刊(冒泡算法篇)

大家好&#xff0c;欢迎来到程序员在线周刊&#xff01;本期我们将深入探讨一种经典的排序算法——冒泡算法&#xff0c;并附上具体的代码实现。 目录 简介代码原理广告广告1广告2广告3 简介 冒泡算法是一种简单但效率较低的排序算法&#xff0c;它的原理非常直观&#xff1a…...

string

目录 六、STL简介 (一)什么是STL (二)STL的版本 (三)STL六大组件 七、string (一)标准库中的string 1、string类 2、string常用的接口 1)string类对象的常见构造 2)string类对象的容量操作 3)string类对象的访问及遍历操作 4)string类对象的修改操作 5)string类非成…...

html的日期选择插件

1.效果 2.文档 https://layui.gitee.io/v2/docs/ 3.引入 官网地址&#xff1a; https://layui.gitee.io/v2/ 引入&#xff08;在官网下载&#xff0c;&#xff09;jquery-1.7.2.min.js,layui/layui.js **<link href"js/layui/css/layui.css" rel"stylesh…...

OPPO哲库事件 “ 始末 ” ! 集体打哑谜?

1►OPPO哲库解散 2019 年&#xff0c;美国商务部以“科技网络安全”为由&#xff0c;将华为公司及其70家附属公司列入出口管制“实体名单”。与此同时&#xff0c;OPPO 创始人兼 CEO陈明永对外宣布&#xff0c;公司将为未来三年内投入 500 亿元用于前沿技术和深水区技术的探索…...

数据聚类分析

K均值 1.1 数据来源(随机生成) import matplotlib.pyplot as plt from sklearn.datasets import make_blobsX, y make_blobs(n_samples150,n_features2,centers3,cluster_std0.5,shuffleTrue,random_state0) # plt.scatter(X[:, 0], X[:, 1], cwhite, markero, edgecolorsbl…...

前 40 个 Microsoft Excel 面试问题答案

1&#xff09;什么是 Microsoft Excel&#xff1f; Microsoft Excel 是一个电子电子表格应用程序&#xff0c;使用户可以使用按行和列细分的电子表格系统&#xff0c;使用公式存储&#xff0c;组织&#xff0c;计算和处理数据。 它还提供了使用外部数据库进行分析&#xff0c;…...

ros2学习笔记:shell环境变量脚本setup.bash[-z][-n][-f]参数作用

-n作用 [ -n 字符串 ] or [ 字符串 ] 字符串的长度为非零&#xff08;有内容&#xff09;则为真。加-n与不加-n结果相同。 -z作用 [ -z 字符串 ] 字符串的长度为零则为真。 字符串为空即NULL时为真&#xff0c;与上面的-n相反。 -f作用 [ -f FILE ] 如果 FILE 存在且是一…...

xss渗透(跨站脚本攻击)

一、什么是XSS? XSS全称是Cross Site Scripting即跨站脚本&#xff0c;当目标网站目标用户浏览器渲染HTML文档的过程中&#xff0c;出现了不被预期的脚本指令并执行时&#xff0c;XSS就发生了。 这里我们主要注意四点&#xff1a; 1、目标网站目标用户&#xff1b; 2、浏览…...

9参数化重采样时频变换,基于MATLAB平台,程序已调通,可直接替换数据进行分析。

参数化重采样时频变换&#xff0c;基于MATLAB平台&#xff0c;程序已调通&#xff0c;可直接替换数据进行分析。 9matlab参数化重采样时频变换 (xiaohongshu.com)...

食品公司建设网站目的/seo是搜索引擎吗

https://github.com/gaoconggit/MyMVC...

收录软件最多的网站/深圳网络营销推广渠道

另一列中写入 IF(COUNTIF(C:C,C1)>1,"有重复","") 其余往下拖拉公式 我在想如果可以有不往下拖的呢? 不过好像筛选中也有类似的选项.转载于:https://www.cnblogs.com/vimmer/p/3445794.html...

wordpress扁平化主题/成都seo的方法

——阶段 动态规划问题通常都具有时间或空间上的次序性&#xff0c;因此求解这类问题时&#xff0c;首先要将问题按一定的次序划分成若干相互联系的阶段&#xff0c;以便能按一定次序去求解。如例1&#xff0c;可以按空间次序划分为A—B—C—D—E 4个阶段&#xff0c;而例2&…...

网站建设时间影响因素/济南seo

为了更好地理解需求获取过程中用户描述的问题&#xff0c;可以采用创建模型的方式实现。这就是分析建模的过程。模型&#xff0c;就是为了理解事物所做出的一种抽象&#xff0c;是对事物无歧视义的书面描述。模型由一组图形符号组成这些符号的规则所组成。分析模型软件的分析模…...

wordpress手机自适应/上海seo关键词优化

2019年电商行业发生了诸多变化&#xff0c;体现在&#xff1a;社群运营、私域流量、多渠道会员通三个关键词&#xff0c;即所谓的“私域会员”&#xff0c;无论对于品牌商还是对于中小电商卖家来说“私域会员体系”已经越来越重要了&#xff0c;重要到如果缺了它&#xff0c;后…...

网站建设公司比较/seo系统培训班

第五章 泛型 23、 请不要在新代码中使用原生态类型 声明中具有一个或者多个类型参数的类或者接口&#xff0c;就是泛型类或者泛型接口。泛型类和接口统称为泛型。 每种泛型可以定义一种参数化的类型&#xff0c;格式为&#xff1a;先是类或者接口的名称&#xff0c;接…...