Redis 常用的基本命令

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

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

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

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 1
     set hallo 2
     set 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 的类型

相关推荐

  1. linux常用基础命令

    2024-04-10 06:58:04       24 阅读
  2. Redis基础命令详解

    2024-04-10 06:58:04       39 阅读
  3. Redis基本命令和数据类型

    2024-04-10 06:58:04       55 阅读
  4. 实战Redis常见命令使用

    2024-04-10 06:58:04       38 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-10 06:58:04       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-10 06:58:04       106 阅读
  3. 在Django里面运行非项目文件

    2024-04-10 06:58:04       87 阅读
  4. Python语言-面向对象

    2024-04-10 06:58:04       96 阅读

热门阅读

  1. 【图论】Leetcode 207. 课程表【中等】

    2024-04-10 06:58:04       38 阅读
  2. [尚硅谷flink学习笔记] 实战案例TopN 问题

    2024-04-10 06:58:04       31 阅读
  3. 同一个pdf在windows和linux中的页数不一样

    2024-04-10 06:58:04       40 阅读
  4. 前端小白的学习之路(Vue2 二)

    2024-04-10 06:58:04       42 阅读