Redis 常用的基本命令

🔥博客主页:fly in the sky - CSDN博客
🚀欢迎各位:点赞👍+收藏⭐️+留言✍️🚀

🎆慢品人间烟火色,闲观万事岁月长🎆

📖希望我写的博客对你有所帮助,如有不足,请指正📖✍️

文章目录

    • Redis 最核心命令:get 和 set
    • Redis 的全局命令
      • keys 命令
      • exists 命令
      • del 命令
      • expire 命令
      • ttl 命令
      • type 命令
    • Redis 常用基本命令的总结

Redis 最核心命令:get 和 set

Redis 是按照键值对Key-Value的方式存储数据的

Redis 最核心命令:get 和 set
get 根据 key 来取 value
set 把 key 和 value 存诸进去

必须要先进入 redis-cli 客户端程序,才能输入Redis命令
通过以下命令启动 Redis,并使用 Redis 自带的客户端来连接服务器

redis-server /etc/redis/redis.conf
redis-cli

代码示例:

set key value1
set key1 value1
set key2 value2
get key1
get key0213

在这里插入图片描述
get 命令直接输入 key 就能得到 value,如果当前 key 不存在,会返回 nil ,和 null/NULL 有些类似

What ls the Difference Between’Null’and’Nil’

'Null’and 'nil’are synonymous and both mean 'zero’or ‘nothing’ in value.The two words differ mainly by what field we use them in. We use 'null’mostly in maths, programming, business, and legal matters.On the otherhand, we use ‘nil’ in sports and games.

nullnil之间的区别 :
Nullnil是同义词,都表示值为0nothing
这两个词的区别主要在于我们使用它们的领域。
我们主要在数学、编程、商业和法律事务中使用null,另一方面,我们在体育和游戏中使用nil


Redis 的全局命令

Redis 支持很多种数据结构,全局命令,就是能够搭配任意一个数据结构来使用的命令
Redis 自身的这些键值对,是通过哈希表的方式来组织的。键值对中的 key 固定是字符串,但是 value 可以是字符串,哈希表,列表,集合,有序集合这些多种类型

keys 命令

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

语法:

KEYS pattern

时间复杂度:O(N)
返回值:匹配 pattern 的所有 key
pattern:包含特殊符号的字符串,翻译成"样式"或者"模式",存在的意义,对匹配字符串要求的描述

pattern 支持的匹配符

  1. ?:匹配任意一个字符
    示例:h?llo 匹配 hellohallohxllo

     set hello 1set hallo 2set hxllo 3 keys h?llo
    

    在这里插入图片描述

  2. *:匹配0个或者多个任意字符
    示例:h*llo 匹配 hlloheeeello

    set hllo 1
    set heeeello 2
    keys h*llo
    

    在这里插入图片描述
    注:keys * => 查询 redis 中所有的 key

  3. [][ae]只能匹配到 a, e。相当于选择题给出固定的选项
    示例:h[ae]llo 匹配 hellohallo, 但不匹配 hillo

    set hello 1
    set hallo 2
    set hillo 3
    keys h[ae]llo
    

    在这里插入图片描述


  4. [^e]:排除 e,只有e匹配不了,其他的都能匹配。可以理解考试时我们做选择题的排除法
    示例:h[^e]llo 匹配 hallo , hbllo , … 但不匹配 hello

    set hallo 1
    set hbllo 2
    set hello 3
    keys h[^e]llo
    

    在这里插入图片描述

  5. [a-b]:匹配 a - b 这个范围内的字符,包含两侧边界
    示例:h[a-b]llo 匹配 hallo hbllo, 但不匹配 hcllo

    set hallo 1
    set hbllo 2
    set hcllo 3
    keys h[a-b]llo
    

    在这里插入图片描述




exists 命令

判断 key 是否存在

语法:

EXISTS key [key ...]

时间复杂度:O(1)
返回值:key 存在的个数(针对多个 key)
Redis 按照哈希表的方式来组织 key 的,哈希表的查询时间复杂度是 O(1)


Redis 已存在的 key
在这里插入图片描述
示例1:

EXISTS hello
EXISTS hallo

示例2:

EXISTS hello hallo

在这里插入图片描述

示例1 和 示例2 的区别:

Redis 是一个客户端服务器结构的程序,客户端和服务器之间通过网络来进行通信;
示例1 相对于示例2 会产生更多轮次的网络通信,效率更低,成本更高

在这里插入图片描述




del 命令

del (delete) 删除指定的 key, 可以一次删除一个或者多个

语法:

DEL key [key ...]

时间复杂度:O(1)
返回值:删除掉的 key 的个数

示例:

keys *
del hillo
del hello hallo aaa
keys *

在这里插入图片描述



expire 命令

expire 作用是给指定的 key 设置过期时间:key 存活时间超出这个指定的值,就会被自动删除
此处设定过期时间,必须是针对已经存在的 key 设置
注: 1. 这里的 expire 时间单位是 秒/s
2. 需要设置毫秒的过期时间,使用 pexpire命令,使用: pexpire key 毫秒

语法:

EXPIRE key seconds

时间复杂度:O(1)
返回值:1 表⽰设置成功,0 表⽰设置失败

使用场景:比如手机验证码,该验证码,5分钟内有效;点外卖,优惠券,在指定时间之内有效
设置成功返回1,设置失败返回0

示例:

set hello 1
expire hello 7
get hello
get hello

在这里插入图片描述



ttl 命令

TTL (Time To Live),查看当前指定 key 的过期时间,秒级
注:有pttl 命令与上述的 pexpire 命令是对应的

语法:

TTL key

时间复杂度:O(1)
返回值:剩余过期时间,-1 表⽰没有关联过期时间,-2 表⽰ key 不存在

示例:

set fly 0213
expire fly 7
ttl fly
ttl fly
ttl fly
ttl fly

在这里插入图片描述

再次 get hello, 会发现 hello 已经消失了,说明 这个 key 时间到,就被删除了

get hello

在这里插入图片描述




type 命令

Redis 所有的 key 都是 string,但是 key 对应的 value 是可能会存在多种类型的, type 命令就是会返回 key 对应的数据类型

语法:

TYPE key

时间复杂度:O(1)
返回值: none , string , list , set , zset , hash and stream …。
注意: stream 是 Redis 作为消息队列的时候,使用这个类型的 value

示例:

  1. none
    127.0.0.1:6379> type key1
    none
    
  2. string
    127.0.0.1:6379> set key2 222
    OK
    127.0.0.1:6379> type key2
    string
    
  3. list
    127.0.0.1:6379> lpush key3 111 222 333
    (integer) 6
    127.0.0.1:6379> type key3
    list
    
  4. set
    127.0.0.1:6379> sadd key4 111 222 333
    (integer) 1
    127.0.0.1:6379> type key4
    set
    
  5. hash
    127.0.0.1:6379> hset key5 field1 value1
    (integer) 1
    127.0.0.1:6379> type key5
    hash
    



Redis 常用基本命令的总结


命令对应的作用
keys用来查看匹配规则的 key
exists用来判定指定 key 是否存在
del删除指定的 key
expire给 key 设置过期时间
ttl查询 key 的过期时间
type查询 key 对应的 value 的类型

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

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

相关文章

群联AI云防护中的防盗链技术原理及其作用探析---

一、引言 随着云计算和AI技术的快速发展,云防护方案已经成为现代企业防范网络攻击和保护数字资产的重要手段之一。群联科技作为存储解决方案和技术服务的领导者,已将其AI技术应用于云端防护系统中,并特别强化了防盗链功能,以帮助…

MQTT协议特点及数据包结构详解(值得珍藏)

点击下载《MQTT协议特点及数据包结构详解(值得珍藏)》 1. 前言 MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议),是一种基于发布/订阅(publish/subscribe)模式的“轻量级”通讯协议,该协议构建于TCP/IP协议上,由IBM在1999年发布。 MQTT最大优点在…

SVD图像处理(MATLAB)

使用SVD处理图像模拟演示 参考文献 https://github.com/matzewolf/Image_compression_SVD/blob/master/svd_compress.m MATLAB代码 clc; clearvars; close all;A_orgimread("lena256.bmp"); compr20; A_orgdouble(A_org);A_red svd_compress( A_org, compr ); s…

yolov7的改进工地安全帽佩戴检测系统-协同双注意力机制CDAM2(教程+代码)

研究的背景和意义 随着工业化和城市化的快速发展,建筑工地的安全问题日益凸显。在建筑工地中,工人的安全是至关重要的,而工地安全帽的佩戴是保障工人安全的重要措施之一。然而,由于工地环境复杂多变,工人的佩戴情况往…

为什么企业都用企微文档?真的好用吗?

现在很多企业都在使用企微文档,还没开始使用的企业难免会产生疑惑,企微文档真的好用吗?其实企业选择使用企微文档的原因有很多,主要的原因是企微文档能够满足企业在文件管理和协作方面的多种需求,从而提高办公效率。 下…

未来客服行业的趋势与展望:构建更高效、个性化的客户体验

客服行业是商业领域中的重要组成部分,它直接影响着企业的品牌形象和客户满意度。随着科技的飞速发展,客服行业也正在经历深刻的变革。今天将描绘未来客服行业的发展趋势,帮助我们更好地理解这个行业的未来走向。 1. 人工智能和机器学习的广泛…

汽车充电桩主板在出厂前需要做哪些检测?

充电桩主板作为核心组件承载着充电桩的关键功能,其性能和稳定性直接影响着用户充电体验、桩企产品合规和市场竞争力,以及主板厂商的品牌知名度。因此,对充电桩主板进行全面的测试尤为重要。 下面将详细介绍充电桩主板检测的内容,包…

信息素养与终身学习解锁题目搜索之道的新引擎【文末送书】

文章目录 信息素养:搜索前的准备终身学习:搜索后的深化新引擎的构建与运行 搜索之道:信息素养与终身学习的新引擎【文末送书】 随着互联网的快速发展和信息技术的日益成熟,搜索已经成为获取知识和信息的主要途径之一。然而&#x…

STM32CubeIDE基础学习-舵机控制实验

STM32CubeIDE基础学习-舵机控制实验 文章目录 STM32CubeIDE基础学习-舵机控制实验前言第1章 硬件介绍第2章 工程配置2.1 基础工程配置部分2.2 生成工程代码部分 第3章 代码编写第4章 实验现象总结 前言 SG90、MG996舵机在机器人领域用得非常多,因为舵机有内置控制电…

基于51单片机的数字时钟与日历显示控制设计

**单片机设计介绍, 基于51单片机的数字时钟与日历显示控制设计 文章目录 一 概要二、功能设计设计思路 三、 软件设计原理图 五、 程序六、 文章目录 一 概要 基于51单片机的数字时钟与日历显示控制设计是一个结合了硬件与软件技术的综合性项目。以下是该设计的概要…

SpringBoot中application.yml引入多个YML文件

系列文章目录 文章目录 系列文章目录前言前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男女通用,看懂了就去分享给你的码吧。 首先,你要了解SpringBoot配置文件加载顺序,加载位置(代码内,Nacos等)…

从零开始搭建后端信息管理系统(新手小白比如)

如果你是新手小白,首先我们要进行一些准备工作,安装一些基础软件, 备注一下:这里安装的vue环境的后台管理系统,不同的后台管理系统,需要安装不同的插件 准备工作: 安装 Visual Studio Code …

刷代码随想录有感(27):重复的子字符串

题干&#xff1a; 代码&#xff1a; class Solution { public:void getNext(int *next, string &s){int j 0;next[0] 0;for(int i 1; i < s.size(); i){while(j > 0 && s[i] ! s[j]){j next[j - 1];}if(s[i] s[j]){j;}next[i] j;}}bool repeatedSubst…

基于java+springboot+vue实现的农产品智慧物流系统(文末源码+Lw)23-239

摘 要 互联网发展至今&#xff0c;无论是其理论还是技术都已经成熟&#xff0c;而且它广泛参与在社会中的方方面面。它让信息都可以通过网络传播&#xff0c;搭配信息管理工具可以很好地为人们提供服务。针对信息管理混乱&#xff0c;出错率高&#xff0c;信息安全性差&#…

Python创建现代GUI应用程序库之ttkbootstrap使用详解

概要 ttkbootstrap是一个基于Python的Tkinter库构建的,用于创建现代GUI应用程序。它结合了Tkinter的简洁性和Bootstrap框架的美观,提供了丰富的组件和样式,使开发人员能够快速构建美观、响应式的桌面应用程序。 安装 通过pip可以轻松安装ttkbootstrap: pip install ttkb…

阿里云服务器北京地域多少钱?北京地域最新收费标准及便宜购买教程

阿里云服务器在国内有十几个地域可选&#xff0c;北京地域主要适合北方用户选择&#xff0c;2024年阿里云中国内地地域云服务器做了降价调整&#xff0c;因此收费标准也有所变化&#xff0c;本文为大家展示阿里云服务器北京地域最新的收费标准&#xff0c;以及在实际购买过程中…

JUC-线程的创建、运行与查看

创建和运行线程 Thread创建线程 Thread 创建线程方式&#xff1a;创建线程类&#xff0c;匿名内部类方式 start() 方法底层其实是给 CPU 注册当前线程&#xff0c;并且触发 run() 方法执行线程的启动必须调用 start() 方法&#xff0c;如果线程直接调用 run() 方法&#xff…

设计模式-接口隔离原则

基本介绍 客户端不应该依赖它不需要的接口&#xff0c;即一个类对另一个类的依赖应该建立在最小的接口上先看一张图: 类A通过接口Interface1 依赖类B&#xff0c;类C通过接口Interface1 依赖类D&#xff0c;如果接口Interface1对于类A和类C来说不是最小接口&#xff0c;那么类…

什么是多路复用器滤波器

本章将更深入地介绍多路复用器滤波器&#xff0c;以及它们如何用于各种应用中。您将了解到多路复用器如何帮助设计人员创造出更复杂的无线产品。 了解多路复用器 多路复用器是一组射频(RF)滤波器&#xff0c;它们组合在一起&#xff0c;但不会彼此加载&#xff0c;可以在输出之…

Linux网络名称空间与网络协议栈:区别、联系与理解

在深入探讨Linux网络名称空间和网络协议栈之间的区别和联系之前&#xff0c;重要的是先明确这两个概念的定义。网络名称空间是Linux提供的一种虚拟化技术&#xff0c;允许在同一物理机器上运行的不同进程组拥有独立的网络环境&#x1f3e2;。而网络协议栈是操作系统用于实现网络…