初识Redis——list和set数据类型

551 阅读2分钟

「这是我参与2022首次更文挑战的第21天,活动详情查看:2022首次更文挑战」。

前言

大家好,我是程序猿小白 gw_Gw,很高兴能和大家一起学习进步。

以下内容部分来自于网络,如有侵权,请联系我删除,本文仅用于学习交流,不用作任何商业用途。

摘要

本文主要介绍Redis的list数据类型和set数据类型的使用。

1.1 list类型

list类型保存的数据是string类型,一个key对应一个列表,列表按照插入的顺序进行排序,可以头插也可以尾插,底层以双向链表实现。

基本操作

  1. 添加或修改数据

    【语法】

    左边插入(头插) lpush key value1 value2 ...
    右边插入(尾插) rpush key value1 value2 ...
    

    image-20220216213320731

    image-20220216213355408

  2. 获取数据

    【语法】

    lrange key start end
    lindex key index
    llen key
    

    0 代表列表第一个元素

    -1 代表列表最后一个元素

    image-20220216213444330

    image-20220216213512867

  3. 获取并删除数据

    【语法】

    左边删除 lpop key
    右边删除 rpop key
    

    image-20220216213859837

    可以看出,一次只删除列表的一个,而且是头部。

扩展操作

  1. 规定时间内获取并移除数据

    【语法】

    blpop key1 key2 timeout
    brpop key1 key2 timeout
    

    可以在多个key中获取并删除列表的数据,如果指定的key的列表中都为空,则在指定的等待的时间内处于阻塞状态,如果在这个时间内,该列表被添加了数据,则该数据会被删除并返回。

    image-20220216214838173

  2. 移除指定数据

    【语法】

    lrem key count value
    

    count 指定移除的个数

    value 指定移除的值

    image-20220216215715910

1.2 set类型

set类型其实就是hash类型的一个特例,如果把hash的value全部存nil,就是set集合。set是无序的,并且是唯一的,不允许存放重复元素。

image-20220221210017462

基本操作

  1. 添加数据

    sadd key value1 value2 ...
    

    image-20220221210501429

    返回添加的数量。

  2. 获取全部数据

    smembers key
    

    image-20220221210624736

  3. 删除数据

    srem key value1 value2 ...
    

    image-20220221210648489

  4. 获取数据数量

    scard key
    

    image-20220221210714582

  5. 判断是否存在该数据

    sismember key value
    

    image-20220221210739760

    image-20220221210805330

    存在返回1,不存在返回0.

扩展操作

  1. 随机获取数据

    srandmember key [count]
    

    image-20220221211536394

    默认随机获取1个,可指定数量。

  2. 随机获取数据并删除一个数据。

    spop key
    

    image-20220221211639892

  1. 求两个集合的交、并、差集合。

    交集
    sinter key1 key2
    并集
    sunion key1 key2
    差集
    sdiff key1 key2
    

    image-20220221213614364

    要注意的是,集合的前后顺序不同得到的结果也不同。

  2. 获取两个集合的交、并、差集合并存到指定的集合中。

    sinterstore destination key1 key2
    sunionstore destination key1 key2
    sdiffstore destination key1 key2
    

    image-20220221213829166

  3. 将指定的数据从原始集合移动到指定的集合中。

    smove source destination member
    

    image-20220221213902073

小结

以上就是关于list和set数据类型的一些介绍和使用,希望对读者有所帮助,如有不正之处,欢迎留言指正。