1、使用数据结构:set
2、使用操作命令:Redis 集合(Set)
// 向集合添加一个或多个成员
SADD key member1 [member2]
// 移除集合中一个或多个成员
SREM key member1 [member2]
// 判断 member 元素是否是集合 key 的成员
SISMEMBER key member
3、实现原理:把用户ID存入set 中,判断是否存在
- 使用 SADD key member 保存用户ID,使用 SREM key member 移除用户ID
- 使用 SISMEMBER key member 判断是否存在
4*、 如果用户数量大的话可以使用布隆过滤器
原理和set 一样,只是存放的用户ID的指纹(使用 多个 hash 函数对 key 进行运算,算得一个证书索引值,然后对位数组长度进行取模运算得到一个位置,每个 hash 函数都会算得一个不同的位置,再把位数组的这几个位置都置为 1,就得到了一个指纹)
判断是否存在时,在使用相同的方法判断每个位置上是否都为1
如果判断不存在,那必然是不存在;但是如果判断是存在时,布隆过滤器会有0.1%的误差,因为有可能某个位置上的1是其他key产生的