• Redis之五大基础数据结构及简单操作


    Redis之五大基础数据结构及简单操作

    1.分类

    redis存储的是:key,value格式的数据,其中key都是字符串,value有5种 不同的数据结构
    redis 自身是一个 Map,其中所有的数据都是采用 key : value 的形式存储
    数据类型指的是存储的数据的类型,也就是 value 部分的类型,key 部分永远都是字符串

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3biDFoqs-1656140137206)(C:/Users/86158/AppData/Roaming/Typora/typora-user-images/image-20220625110658787.png)]

    目前为止Redis支持的键值数据类型如下:
    1)字符串类型 string:

    2)哈希类型 hash:

    map格式:先起一个key,再为这个key对应的 value再起一个key与value

    3)列表类型 list:

    linkedlist格式,支持重复元素即允许插入相同元素,按照插入头尾顺序排序,可以支持导入元素于头部或者尾部

    4)集合类型 set:

    不允许重复元素即不允许插入相同元素, 元 素无顺序(即输出所有values的时候不按照插入顺序进行输出,而是随机打乱进行输出)

    5)有序集合类型 sortedset:

    不允许重复元素即不允许插入相同元素,且相同元素有顺序

    注:不管是哪种的数据结构,key的名字不能重复

    在这里插入图片描述

    2.string

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XSMNCIRH-1656140137208)(C:/Users/86158/AppData/Roaming/Typora/typora-user-images/image-20220625112110496.png)]

    image-20220315164650114

    2.1set

    set:不管是对键第一次赋值还是第二次赋值,SET 命令总是返回 OK;
    注意:不能一次性设置多个

    SET KEY_NAME VALUE
    
    • 1

    img
    img

    2.2get

    get: 命令用于获取指定 key 的值。如果 key 不存在,返回 nil 。如果key 储存的值不是字符串类型,返回一个错误

    GET KEY_NAME
    
    • 1

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

    3.hash

    image-20220315164747802

    3.1hset

    hset :命令用于为哈希表中的字段赋值;
    如果哈希表不存在,一个新的哈希表被创建并进行 HSET 操作;
    如果字段已经存在于哈希表中,旧值将被覆盖;
    如果字段是哈希表中的一个新建字段,并且值设置成功,返回 1 ;
    如果哈希表中域字段已经存在且旧值已被新值覆盖,返回 0

    HSET KEY_NAME FIELD VALUE
    
    • 1

    在这里插入图片描述

    3.2hget

    Hget :命令用于返回哈希表中指定字段的值;
    返回给定字段的值;
    如果给定的字段或 key 不存在时,返回 nil

    HGET KEY_NAME FIELD_NAME 
    
    • 1

    在这里插入图片描述

    3.3getall

    getall 命令用于返回哈希表中,所有的字段和值;
    在返回值里,紧跟每个字段名(field name)之后是字段的值(value),所以返回值的长度是哈希表大小的两倍;
    以列表形式返回哈希表的字段及字段值;
    若 key 不存在或者这个key是空的,则返回空列表

    HGETALL KEY_NAME
    
    • 1

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SDZikUsv-1656140137208)(C:/Users/86158/AppData/Roaming/Typora/typora-user-images/image-20220625114823850.png)]

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

    3.4hdel

    hdel :返回删除的filed的个数;
    如果其中有filed不存在,则不会计不存在的filed的数量

    HDEL KEY_NAME FIELD1.. FIELDN 
    
    • 1

    在这里插入图片描述4.list
    在这里插入图片描述

    4.list

    image-20220315164739767

    4.1lpush

    lpush: 命令将一个或多个值插入到列表头部。;
    如果 key 不存在,一个空列表会被创建并执行 LPUSH 操作;
    当 key 存在但不是列表类型时,返回一个错误。
    返回列表的新长度

    LPUSH KEY_NAME VALUE1.. VALUEN
    
    • 1

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-D0FrkFhu-1656140137209)(C:/Users/86158/AppData/Roaming/Typora/typora-user-images/image-20220625120720378.png)]

    4.2lrange

    Lrange: 返回列表中指定区间内的元素,区间以偏移量 START 和 END 指定;
    其中 0 表示列表的第一个元素, 1 表示列表的第二个元素,以此类推;
    也可以使用负数下标,以 -1 表示列表的最后一个元素, -2 表示列表的倒数第二个元素,以此类推;
    返回一个列表,包含指定区间内的元素;
    列表不存在或者空列表时返回(empty list or set)

    LRANGE KEY_NAME START END
    
    • 1

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rN40rM1D-1656140137209)(C:/Users/86158/AppData/Roaming/Typora/typora-user-images/image-20220625142751706.png)]

    4.3lpop

    Lpop: 命令用于移除并返回列表的第一个元素;
    返回列表的第一个元素;
    当列表 key 不存在时,返回 nil

    在这里插入图片描述

    在这里插入图片描述

    5.set

    image-20220315164812320

    5.1sadd

    sadd:命令将一个或多个成员元素加入到集合中,已经存在于集合的成员元素将被忽略;
    假如集合 key 不存在,则创建一个只包含添加的元素作成员的集合;
    当集合 key 不是集合类型时,返回一个错误;
    返回的是被添加到集合中的新元素的数量,不包括被忽略的元素;

    SADD KEY_NAME VALUE1..VALUEN
    
    • 1

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vyxNxhTv-1656140137210)(C:/Users/86158/AppData/Roaming/Typora/typora-user-images/image-20220625143331584.png)]

    5.2smembers

    smembers:命令返回集合中的所有的成员;
    不存在的集合 key 被视为空集合;
    返回集合中的所有成员

    SMEMBERS KEY VALUE
    
    • 1

    在这里插入图片描述

    5.3srem

    srem:命令用于移除集合中的一个或多个成员元素,不存在的成员元素会被忽略;
    当 key 不是集合类型,返回一个错误;
    被成功移除的元素的数量,不包括被忽略的元素

    SREM KEY MEMBER1..MEMBERN
    
    • 1

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wsrejdso-1656140137210)(C:/Users/86158/AppData/Roaming/Typora/typora-user-images/image-20220625143642902.png)]

    6.sortedset

    image-20220315164847885

    6.1zadd

    Zadd :命令用于将一个或多个成员元素及其分数值加入到有序集当中;
    如果某个成员已经是有序集的成员,那么更新这个成员的分数值,并通过重新插入这个成员元素,来保证该成员在正确的位置上;
    分数值可以是整数值或双精度浮点数;
    如果有序集合 key 不存在,则创建一个空的有序集并执行 ZADD 操作;
    当 key 存在但不是有序集类型时,返回一个错误;
    命令返回被成功添加的新成员的数量,不包括那些被更新的、已经存在的成员

    ZADD KEY_NAME SCORE1 VALUE1.. SCOREN VALUEN
    
    • 1

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pTt7WQU3-1656140137211)(C:/Users/86158/AppData/Roaming/Typora/typora-user-images/image-20220625143911621.png)]

    6.2zrange

    zrange:返回有序集中,指定区间内的成员;
    其中成员的位置按分数值递增(从小到大)来排序;
    具有相同分数值的成员按字典序(lexicographical order )来排列;
    如果你需要成员按值递减(从大到小)来排列,请使用 ZREVRANGE 命令;
    下标参数 start 和 stop 都以 0 为底,也就是说,以 0 表示有序集第一个成员,以 1 表示有序集第二个成员,以此类推;
    你也可以使用负数下标,以 -1 表示最后一个成员, -2 表示倒数第二个成员,以此类推;
    指定区间内,带有分数值(可选)的有序集成员的列表

    ZRANGE key start stop [WITHSCORES]
    
    • 1

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-biNRfwXh-1656140137212)(C:/Users/86158/AppData/Roaming/Typora/typora-user-images/image-20220625144934680.png)]

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Cz9ni48k-1656140137213)(C:/Users/86158/AppData/Roaming/Typora/typora-user-images/image-20220625144943440.png)]

    6.3zcrem

    zcrem:命令用于移除有序集中的一个或多个成员,不存在的成员将被忽略。
    当 key 存在但不是有序集类型时,返回一个错误;
    返回被成功移除的成员的数量,不包括被忽略的成员

     zrem  key member [member ...]
    
    • 1
  • 相关阅读:
    Django思维导图-路由
    ica1靶机(hydra爆破)
    PCF8563模块不走时(海振电子PCF8653模块)
    FFmpeg--packet数据包和frame数据帧的区别
    上海计算机学会 2024年4月月赛 丙组T3 交换的次数
    (论文阅读32/100)Flowing convnets for human pose estimation in videos
    如何进入 mysql?
    安装lrzsz
    20年上海站D题Walker(二分,简洁)
    自己设计CPU学习之路——基于《Xilinx FPGA应用开发》
  • 原文地址:https://blog.csdn.net/qq_53267860/article/details/125459477