熊熊出没 发表于 2024-12-1 21:27:57

【Redis】Set范例常用下令

一. Set集合范例简介.



[*]Redis中Set范例是一种集合数据结构, Set集合中存储的元素是不答应重复的.
[*]Set范例的特征:
[*]无序性: Set中的元素是无须的, 这意味着你不能通过索引来访问(每次查询同一个元素在Set集合中的位置都是不固定的)
[*]唯一性: Set中的每个元素都是唯一的, 不答应有重复的元素.
[*]动态性: 可以随时向Set中添加大概删除元素.

[*]Redis底层的编码方式:
[*]intset(整数集合): 当一个Set集合只包含整数值元素,并且这些元素的个数不高出512个时,Redis会使用intset作为底层存储结构。intset内部现实上是一个数组,用于存储整数范例的数据。由于数组是有序的,因此在查找数据时可以通过二分查找法实现快速查询,时间复杂度接近O(log n)。
[*]hashtable(哈希表): 假如Set集合的元素不满是整数大概元素数目高出512个,Redis则会使用hashtable作为底层存储结构。在hashtable中,key为Set的值,value始终为null。这种设计使得Set能够高效地举行添加、删除和查找利用,由于哈希表的平均时间复杂度为O(1)。
https://i-blog.csdnimg.cn/direct/d8e02a3989994daca58131066eeb19fd.png

二. 增长元素相关下令

2.1 向集合中添加元素(sadd)



[*]下令根本格式:
   SADD key member


[*]时间复杂度
   O(N) N是member的元素个数, 一般可以近似看作是O(1)


[*]演示下令的使用:
https://i-blog.csdnimg.cn/direct/501ee909349c47819f540482041099a8.png
2.2 从集合中移动元素( smove )



[*]下令根本格式:
   SMOVE source destination member


[*]时间复杂度
   O(1)


[*]演示下令的使用:
https://i-blog.csdnimg.cn/direct/c25ac2bc423d466ea5f70b858ae0caee.png
三. 查询元素相关利用.

3.1 查询集合中存在的全部元素.( smembers )



[*]下令根本格式:
   SMEMBERS key


[*]时间复杂度
   O(N) N为集合中元素的个数.


[*]演示下令的使用:
https://i-blog.csdnimg.cn/direct/5a7ebb28ae7e4eea9c80e75a3972788e.png
3.2 查询集合中是否存在member( sismember )



[*]下令根本格式:
   SISMEMBER key member


[*]时间复杂度
   O(1)


[*]演示下令的使用:
https://i-blog.csdnimg.cn/direct/5bc5252b496f4c6da29a53fb7ab394d4.png
四. 随机获取集合中的元素

4.1 随机获取集合中的n个元素.(srandmember)



[*]下令根本格式:
   SRANDMEMBER key


[*]时间复杂度
   O(N) N是count的值, 一般可以近似看作是O(1)


[*]演示下令的使用:
https://i-blog.csdnimg.cn/direct/67ef9f75867545328b4a361e1f15b56f.png
五. 删除元素相关利用

5.1 随机删除集合中的n个元素( spop )



[*]下令根本格式:
   SPOP key


[*]时间复杂度
   O(N) N是count的值, 一般可以近似看作是O(1)


[*]演示下令的使用:
https://i-blog.csdnimg.cn/direct/d29ce3ec513b4a469ae8a7f8bb66c310.png
5.2 指定删除集合中的n个元素.(srem)



[*]下令根本格式:
   SREM key member


[*]时间复杂度:
   O(N) N是要移除元素的个数, 一般可以近似看作是O(1)


[*]演示下令的使用:
https://i-blog.csdnimg.cn/direct/43382dd08fc649f79e7c9784b9dcb9da.png
六. 集合运算的相关利用.

6.1 求集合交集的利用(sinter)—>直接返回交集的结果



[*]下令根本格式:
   SINTER key


[*]时间复杂度:
   O( N*M ) N表示这些集合当中最小集合的元素个数, M表示求交集的集合个数.
6.2 求集合交集的利用(sinterstore)---->将返回结果存储到另一个集合当中.



[*]下令根本格式:
   SINTERSTORE destination key


[*]时间复杂度:
   O( N*M ) N表示这些集合当中最小集合的元素个数, M表示求交集的集合个数.


[*]演示下令的使用:
https://i-blog.csdnimg.cn/direct/75e74f85a12944229fccbe03a613cec7.png
6.3 求集归并集的利用(sunion)---->直接返回并集的结果



[*]下令根本格式:
   SUNION key


[*]时间复杂度:
   O(N) 其中N是给定集合中全部元素的个数.
6.4 求集归并集的利用(sunionstore)---->将返回结果存储到另一个集合当中



[*]下令根本格式:
   SUNIONSTORE destination key


[*]时间复杂度:
   O(N) 其中N是给定集合中全部元素的个数.


[*]演示下令的使用:
https://i-blog.csdnimg.cn/direct/5c3b5883389d4f068e815c938272197d.png
6.5 求集合差集的利用(sdiff)—>直接返回差集的结果



[*]下令根本格式:
   SDIFF key


[*]时间复杂度:
   O(N) 其中N是全部给定集合中元素的总数。
6.6 求集合差集的利用(sdiffstore)—>将返回结果存储到另一个集合当中



[*]下令根本格式:
   SDIFFSTORE destination key


[*]时间复杂度:
   O(N) 其中N是全部给定集合中元素的总数。


[*]演示下令的使用:
https://i-blog.csdnimg.cn/direct/f444c2f26d6f48e59c03c3b810fe97f6.png

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: 【Redis】Set范例常用下令