一、String 类型

1、什么是 String 类型

String 类型,也就是字符串类型,是 Redis 最基础、最常用的数据类型。它是一个key-value 结构,key 是字符串,value 也是字符串(可以存文本、数字、JSON、二进制)。

2、String 的常用命令

(1)SET

  • 语法:SET key value,添加或修改一个已经存在的键值对
  • 例如:SET k1 v1

(2)GET

  • 语法:GET key,根据 key 获取value
  • 例如:GET k1

在这里插入图片描述

(3) MSET

  • 语法:MSET key value key1 value1 …,一次性添加多个键值对
  • 例如:MSET k1 v1 k2 v2 k3 v3,一次性添加了三个键值对

在这里插入图片描述

(4)MGET

  • 语法:MGET key key1 key2 …,根据 key 一次性获取多个 value
  • 例如:MGET k1 k2 k3 ----> 返回 v1 v2 v3

在这里插入图片描述

(5)SETNX

  • 语法:SETNX key value,这个 key 不存在就创建,存在相当于什么都不是做
  • 例如:SETNX k1 hello,此时 k1 已存在

在这里插入图片描述

(6)DEL

  • 语法:DEL key,删除键
  • 例如:删除 k

在这里插入图片描述

(7)SETEX

  • 语法:SETEX key seconds value,给键值对设置过期时间,过期后该键值对存在
  • 例如:给 k4 设置 5 秒后过期 值为 v4

在这里插入图片描述

(8)EXPIRE

  • 语法:EXPIRE key seconds,给 key 设置一个过期时间
  • 例如:给 k3 设置一个 5s 的过期时间

在这里插入图片描述

(9)INCR

  • 语法:INCR key,让一个整型的 key 自增1
  • 例如:设置一个 count 键,值为1,做自增

在这里插入图片描述

(10)INCRBY

  • 语法:INCRBY key num,让一个整型的 key 自增并指定步长,num 可以是任何数
  • 例如:让 count 键自增 5

在这里插入图片描述

(11)DECR

  • 语法:DECR key,让一个整型的 key 减 1
  • 例如:让 count 键减1

在这里插入图片描述

(12)DECRBY

  • 语法:DECRBY key num
  • 例如:让 count 键,减2

在这里插入图片描述

3、Key 的层级格式(对象缓存)

  • 在 Redis 中,允许 key 有多个单词形成层级结构,多个单词之间用 “:” 隔开,格式如下:

项目名 : 业务名 : 类型 : id
这个格式并非固定,根据自己的需求设置

  • 一个项目名叫 project,有 user 和 product 两种不同类型,可以这样定义:

user 相关的 key:project : user : 1
product 相关的 key:project : product : 1

  • 如果 value 是一个对象,例如 user 对象,则可以将对象序列化为 JSON 字符串后存储
  • 例如:给 user : 100,设置名字和年龄

在这里插入图片描述

二、Hash (哈希) 类型

1、什么是 Hash 类型

  • Hash类型 ,也叫散列,是一个 key 对应多个 field-value 的映射结构, 相当于字典,适合存对象、结构化数据。

2、Hash 的常用命令

# 1. 设置字段(可批量)
HSET key field value [field value ...]
# 给user:100 设置两个字段,一个name,一个age
HSET user:100 name zhangsan age 20

# 2. 获取单个字段
HGET key field
# 获取 user:100 的 name
HGET user:100 name

# 3. 批量获取多个字段
HMGET key f1 f2
# 获取 user:100 的 name 和 age
HGET user:100 name age

# 4. 获取所有字段+值
HGETALL key
# 获取 user:100 的所有字段和值
HGETALL user:100

# 5. 获取所有字段名
HKEYS key
# 获取 user:100 的所有字段名
HKEYS user:100

# 6. 获取所有值
HVALS key
# 获取 user:100 的所有值
HVALS user:100

# 7. 删除字段
HDEL key field
# 删除 name 字段
HDEL user:100 name

# 8. 字段是否存在
HEXISTS key field
# 检查 name 字段是否存在,存在返回1,不存在返回0
HEXISTS user:100 name

# 9. 字段数字+N(原子)
HINCRBY key field N
# 年龄字段 加5
HINCRBY user:100 age 5

# 10. 字段个数
HLEN key
# 获取 user:100 的字段个数
HLEN user:100

3、应用场景

在这里插入图片描述

三、List 类型

1、什么是 List 类型

  • List 是 Redis 基于双向链表实现的有序、可重复的字符串列表。一个 key 对应一串按顺序排列的元素,支持从左边、右边快速添加或删除。
  • 左推演示
    在这里插入图片描述

2、List 常用命令

# 左边添加元素
LPUSH key value1 value2 ...
# k1 从左边添加 a、b、c 三个元素
LPUSH k1 a b c 

# 右边添加元素
RPUSH key value1 value2 ...
# k2 从右边添加元素 d、e、f
RPUSH k2 d e f

# 左边弹出元素(弹出左边下标为 0 的元素,弹出后元素不存在)
LPOP key

# 右边弹出元素(弹出右边下标为 -1 的元素)
RPOP key

# 查看列表元素(0 开始,-1 代表最后一个)
LRANGE key start stop
# 查看列表所有元素(0,-1)
LRANGE k1 0 -1

# 获取列表长度
LLEN key
# 获取 k1 的长度
LLEM k1 

# 删除指定元素
LREM key count value
# count 大于0 从左边删除 count 个与 value 匹配的元素,count 小于0 从右边删除 count 个与 value 匹配的元素, count 等于0,删除所有与 value 匹配的元素
# 例如 k1 = [b,d,a,b,c,e] 从左边删除两个 b
LREM k1 2 b

# 截取列表(保留范围内元素,把不在范围内的元素全部删掉)
LTRIM key start stop

# 阻塞队列
# 从 key key1 .. 表头弹出一个元素,如列表中没有这个元素,阻塞等待 timeout 秒,如果 timeout = 0,一直阻塞等待
BLPOP key key1 ... timeout
# 从表尾弹出元素
BRPOP key key1 ... timeout 

3、应用场景

在这里插入图片描述

四、Set 类型

1、什么是Set类型

Set 是 Redis 无序、不可重复的 String 类型集合。一个 key 存一堆元素,自动去重,不保证顺序,支持交集、并集、差集。

2、Set 的常用命令

# 添加元素
SADD key member1 member2 ...

# 查看所有元素
SMEMBERS key

# 判断元素是否存在
SISMEMBER key member

# 删除指定元素
SREM key member1 member2 ...

# 随机挑 count 个元素展示
SRANDMEMBER key count

# 随机弹出一个元素并删除
SPOP key [count]

# 查看元素个数
SCARD key

# 求两个集合的交集
SINTER key1 key2

# 将交集结果存入新集合 destination 中
SINTERSTORE destionation key key1 ...

# 求两个集合的并集
SUNION key1 key2

# 将并集结果存入新集合 destination 中
SUNIONSTORE destionation key key1 ...

# 求两个集合的差集(key1 有、key2 没有)
SDIFF key1 key2

# 将差集结果存入新集合 destination 中
SDIFFSTORE destionation key key1 ...

3、应用场景

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

五、Sorted Set(ZSet)

1、什么是 Sorted Set(ZSet)

一个 key 存多个元素,每个元素绑定一个分数,Redis 按分数自动排序。元素唯一,分数可以重复,按 score 分数自动排序(升序或降序)。

2、ZSet 常用命令

# 1. 添加元素(往有序集合 key 中加入带分值元素)
ZADD key score member

# 2. 按分数正序查看(withscores 带上分数)
ZRANGE key start stop [WITHSCORES]

# 3. 按分数倒序查看(从大到小)
ZREVRANGE key start stop [WITHSCORES]

# 4. 删除指定元素
ZREM key member

# 5. 查看元素个数
ZCARD key

# 6. 查看元素的排名(正序/从小到大)
ZRANK key member

# 7. 查看元素的分数
ZSCORE key member

3、应用场景

在这里插入图片描述

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐