面试题答案
一键面试Redis集合对象(Set)数据去重基本原理
Redis的Set是一种无序且不允许重复元素的数据结构。在实现上,它通过哈希表来存储元素,利用哈希表的特性,在插入元素时,先计算元素的哈希值,通过哈希值判断元素是否已经存在于集合中。如果哈希值冲突(不同元素计算出相同哈希值),再通过比较元素本身来确定是否重复,若重复则不插入,以此实现数据去重。
常用命令及作用
- SADD key member [member ...]
- 作用:向集合
key
中添加一个或多个成员元素。如果元素已存在于集合中,则该元素不会被重复添加,从而实现去重效果。例如SADD myset "apple" "banana" "apple"
,最终集合myset
只会包含"apple"
和"banana"
两个元素。
- 作用:向集合
- SMEMBERS key
- 作用:返回集合
key
中的所有成员。可用于查看去重后的集合元素,确认去重效果。例如执行SMEMBERS myset
会返回集合myset
中的所有不重复元素。
- 作用:返回集合
- SISMEMBER key member
- 作用:判断成员
member
是否是集合key
的成员。可以用来检查某个元素在去重后的集合中是否存在。比如执行SISMEMBER myset "apple"
,若返回1表示apple
在集合myset
中,若返回0则表示不在。
- 作用:判断成员