一. 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)。
二. 增长元素相关下令
2.1 向集合中添加元素(sadd)
SADD key member [member ...]
O(N) N是member的元素个数, 一般可以近似看作是O(1)
2.2 从集合中移动元素( smove )
SMOVE source destination member
O(1)
三. 查询元素相关利用.
3.1 查询集合中存在的全部元素.( smembers )
SMEMBERS key
O(N) N为集合中元素的个数.
3.2 查询集合中是否存在member( sismember )
SISMEMBER key member
O(1)
四. 随机获取集合中的元素
4.1 随机获取集合中的n个元素.(srandmember)
SRANDMEMBER key [count]
O(N) N是count的值, 一般可以近似看作是O(1)
五. 删除元素相关利用
5.1 随机删除集合中的n个元素( spop )
SPOP key [count]
O(N) N是count的值, 一般可以近似看作是O(1)
5.2 指定删除集合中的n个元素.(srem)
SREM key member [member ...]
O(N) N是要移除元素的个数, 一般可以近似看作是O(1)
六. 集合运算的相关利用.
6.1 求集合交集的利用(sinter)—>直接返回交集的结果
SINTER key [key ...]
O( N*M ) N表示这些集合当中最小集合的元素个数, M表示求交集的集合个数.
6.2 求集合交集的利用(sinterstore)---->将返回结果存储到另一个集合当中.
SINTERSTORE destination key [key ...]
O( N*M ) N表示这些集合当中最小集合的元素个数, M表示求交集的集合个数.
6.3 求集归并集的利用(sunion)---->直接返回并集的结果
SUNION key [key ...]
O(N) 其中N是给定集合中全部元素的个数.
6.4 求集归并集的利用(sunionstore)---->将返回结果存储到另一个集合当中
SUNIONSTORE destination key [key ...]
O(N) 其中N是给定集合中全部元素的个数.
6.5 求集合差集的利用(sdiff)—>直接返回差集的结果
SDIFF key [key ...]
O(N) 其中N是全部给定集合中元素的总数。
6.6 求集合差集的利用(sdiffstore)—>将返回结果存储到另一个集合当中
SDIFFSTORE destination key [key ...]
O(N) 其中N是全部给定集合中元素的总数。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |