• 【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 GET

    获取旧值并设定新值 GETSET

    一次性设置多个值 MSET ...
    一次性获取多个值 MGET ...


    获取字符串字节长度 STRLEN sentence

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


    整形自增 1 INCR
    数值加法 INCRBY
    数值减法 DECRBY

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


    Key 层级结构

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

    比如:zhiller:user:1


    Hash

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

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

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

    获取指定数据库的指定值 HGET

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

    让指定字段的值自增 HINCRBY [自增值]


    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:求交、并、差集

  • 相关阅读:
    【图论 树 深度优先搜索】2246. 相邻字符不同的最长路径
    Shiro中的session和cookie
    Linux编译安装libmodbus库
    【JavaSE】static关键词
    《动手学深度学习 Pytorch版》 9.6 编码器-解码器架构
    从C过渡到C++(1)——GNU/Linux
    Elasticsearch:使用 Open AI 和 Langchain 的 RAG - Retrieval Augmented Generation (二)
    C++基础知识要点--字符串、向量和数组
    mac. homebrew bundle dump 失败 status 128
    百度文心一言API调用,千帆大模型获取API Key和API Secret图解
  • 原文地址:https://blog.csdn.net/delete_you/article/details/132760100