「这是我参与2022首次更文挑战的第21天,活动详情查看:2022首次更文挑战」。
前言
大家好,我是程序猿小白 gw_Gw,很高兴能和大家一起学习进步。
以下内容部分来自于网络,如有侵权,请联系我删除,本文仅用于学习交流,不用作任何商业用途。
摘要
本文主要介绍Redis的list数据类型和set数据类型的使用。
1.1 list类型
list类型保存的数据是string类型,一个key对应一个列表,列表按照插入的顺序进行排序,可以头插也可以尾插,底层以双向链表实现。
基本操作
-
添加或修改数据
【语法】
左边插入(头插) lpush key value1 value2 ... 右边插入(尾插) rpush key value1 value2 ...
-
获取数据
【语法】
lrange key start end lindex key index llen key
0 代表列表第一个元素
-1 代表列表最后一个元素
-
获取并删除数据
【语法】
左边删除 lpop key 右边删除 rpop key
可以看出,一次只删除列表的一个,而且是头部。
扩展操作
-
规定时间内获取并移除数据
【语法】
blpop key1 key2 timeout brpop key1 key2 timeout
可以在多个key中获取并删除列表的数据,如果指定的key的列表中都为空,则在指定的等待的时间内处于阻塞状态,如果在这个时间内,该列表被添加了数据,则该数据会被删除并返回。
-
移除指定数据
【语法】
lrem key count value
count 指定移除的个数
value 指定移除的值
1.2 set类型
set类型其实就是hash类型的一个特例,如果把hash的value全部存nil,就是set集合。set是无序的,并且是唯一的,不允许存放重复元素。
基本操作
-
添加数据
sadd key value1 value2 ...
返回添加的数量。
-
获取全部数据
smembers key
-
删除数据
srem key value1 value2 ...
-
获取数据数量
scard key
-
判断是否存在该数据
sismember key value
存在返回1,不存在返回0.
扩展操作
-
随机获取数据
srandmember key [count]
默认随机获取1个,可指定数量。
-
随机获取数据并删除一个数据。
spop key
-
求两个集合的交、并、差集合。
交集 sinter key1 key2 并集 sunion key1 key2 差集 sdiff key1 key2
要注意的是,集合的前后顺序不同得到的结果也不同。
-
获取两个集合的交、并、差集合并存到指定的集合中。
sinterstore destination key1 key2 sunionstore destination key1 key2 sdiffstore destination key1 key2
-
将指定的数据从原始集合移动到指定的集合中。
smove source destination member
小结
以上就是关于list和set数据类型的一些介绍和使用,希望对读者有所帮助,如有不正之处,欢迎留言指正。