【Redis速通】基础知识2 - 常用数据结构

Redis 通用指令

下面是一些 Redis 的通用命令,你可以根据下表进行简单的复习:

  1. 键操作命令:

    • SET:设置指定键的值。
    • GET:获取指定键的值。
    • DEL:删除指定键。
    • EXISTS:检查指定键是否存在。
    • KEYS:获取匹配指定模式的键列表。
  2. 字符串操作命令:

    • APPEND:将指定值追加到键的末尾。
    • STRLEN:获取指定键值的长度。
    • INCR:将指定键的值增加 1。
    • DECR:将指定键的值减少 1。
  3. 列表操作命令:

    • LPUSH:将一个或多个值插入列表的左侧。
    • RPUSH:将一个或多个值插入列表的右侧。
    • LPOP:移除并返回列表的左侧第一个元素。
    • RPOP:移除并返回列表的右侧第一个元素。
    • LLEN:获取列表的长度。
  4. 哈希操作命令:

    • HSET:在哈希中设置字段和值。
    • HGET:获取哈希中指定字段的值。
    • HGETALL:获取哈希中所有字段和值。
    • HDEL:从哈希中删除指定字段。
    • HKEYS:获取哈希中的所有字段。
  5. 集合操作命令:

    • SADD:向集合中添加一个或多个成员。
    • SMEMBERS:获取集合中的所有成员。
    • SREM:从集合中删除一个或多个成员。
    • SINTER:返回多个集合的交集。
    • SUNION:返回多个集合的并集。
  6. 有序集合操作命令:

    • ZADD:向有序集合中添加一个或多个成员,并指定分数。
    • ZRANGE:按照分数顺序获取有序集合中的成员。
    • ZREM:从有序集合中删除一个或多个成员。
    • ZSCORE:获取有序集合中指定成员的分数。
    • ZCOUNT:计算有序集合中指定分数范围内的成员数量。

基本字符串操作

所有的 redis 指令都对大小写不敏感,直接全大写写起来比较好区分

设置单个值(安装键值对) SET <key> <value>

查询给定 key GET <key>

获取旧值并设定新值 GETSET <key> <value>

一次性设置多个值 MSET <key1> <value1> <key2> <value2> ...
一次性获取多个值 MGET <key1> <key2> ...


获取字符串字节长度 STRLEN sentence

获取字符串指定索引文本(以下代码表示获取索引 0-4 的文本)
GETRANGE msg 0 4


整形自增 1 INCR <K>
数值加法 INCRBY <K> <V>
数值减法 DECRBY <K> <V>

如果省略 value 不写,则表示+1 或者-1


Key 层级结构

Redis 的 key 运行多个单词外加冒号来命名,命名格式基本如下
项目名:业务名:类型:ID

比如:zhiller:user:1


Hash

创建 hash 的格式:HSET <KEY> <FIELD> <VALUE> (三个值分别表示键、字段名、值)

新建 key: hello,并向其中填入两个键值对
HSET hello a 10
HSET hello b 10

仅在字段不存在的情况下为其赋值 HSETNX

获取指定数据库的指定值 HGET <K> <F>

获取所有 fields HKEYS
获取所有 values HVALS
获取以上二者 HGETALL

让指定字段的值自增 HINCRBY <K> <F> [自增值]


List

在 Redis 中,List(列表)是一种有序、可重复的数据结构。它可以存储一个有序的字符串元素列表,允许在列表的两端进行插入和删除操作。

以下是一些常用的 Redis List 命令:

  1. LPUSH:将一个或多个元素插入到列表的左侧(头部)。
  2. RPUSH:将一个或多个元素插入到列表的右侧(尾部)。
  3. LPOP:移除并返回列表的左侧(头部)第一个元素。
  4. RPOP:移除并返回列表的右侧(尾部)第一个元素。
  5. LLEN:获取列表的长度。
  6. LRANGE:获取列表中指定范围内的元素。
  7. LINDEX:获取列表中指定索引位置的元素。
  8. LSET:设置列表中指定索引位置的元素值。
  9. LREM:从列表中删除指定数量的指定元素。
  10. LINSERT:在列表中指定元素的前面或后面插入一个新元素。
  11. LTRIM:修剪(裁剪)列表,只保留指定范围内的元素。
  12. RPOPLPUSH:将列表的最后一个元素移除,并添加到另一个列表的头部。

Redis 的 List 结构是基于链表实现,在头部和尾部进行插入和删除操作的时间复杂度是 O(1),在列表中间进行插入和删除操作的时间复杂度是 O(N)的(N 为列表长度)。


SET

类似于 HashSet,无序、元素不可重复、查找快、支持交集差集并集

以下是 SET 集合指令及其简要介绍:

  1. SADD:添加一个或多个成员到集合中。
  2. SREM:从集合中移除一个或多个成员。
  3. SMEMBERS:获取集合中的所有成员。
  4. SISMEMBER:检查一个成员是否存在于集合中。
  5. SCARD:获取集合的成员数量。
  6. SPOP:随机移除并返回集合中的一个成员。
  7. SRANDMEMBER:随机获取集合中的一个或多个成员。
  8. SINTER:获取多个集合的交集。
  9. SUNION:获取多个集合的并集。
  10. SDIFF:获取多个集合的差集。

SortedSet

可排序、元素不重复、查询速度快

底层基于一个跳表+hash 表实现;
其中的每一个元素都要 score 属性,可以基于 score 属性进行排序;

SortedSet 常用指令介绍

  1. ZADD:向有序集合中添加一个或多个成员,每个成员关联着一个分数。
  2. ZREM:从有序集合中移除一个或多个成员。
  3. ZRANGE:按照分数从小到大的顺序,返回指定索引范围内的成员。
  4. ZREVRANGE:按照分数从大到小的顺序,返回指定索引范围内的成员。
  5. ZRANK:获取指定成员在有序集合中的排名(按照分数从小到大的顺序)。
  6. ZREVRANK:获取指定成员在有序集合中的排名(按照分数从大到小的顺序)。
  7. ZSCORE:获取指定成员在有序集合中的分数。
  8. ZCARD:获取有序集合的成员数量。
  9. ZCOUNT:计算有序集合中指定分数范围内的成员数量。
  10. ZINCRBY:将指定成员的分数增加指定的增量。
  11. ZINTER ZUNION ZDIFF:求交、并、差集

猜你喜欢

转载自blog.csdn.net/delete_you/article/details/132760100