Redis 常用的基本命令-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
    



上一篇:软件工程


下一篇:网络基础——IPV6地址及介绍