背景:
邀请活动进行了改造,需要前置判断是否新用户
用户id很长(19位)
思路:
判断是否不存在,第一反应布隆过滤器;
布隆过滤器:
布隆过滤器无法修改,只能重建,不适合拓新业务
是否新用户,只有两种可能,是/不是,试试bitmap
bitmap:
用户的id位数19位,消耗内存太大(1开头19位就需要过亿gb存储)
兼容方式:创建另外的id映射表,从1开始,通过映射表的id来构建bitmap,但是需要额外关联查表
redis缓存
redis set
redis的set是用hash表实现的,查找的时间复杂度为o(1)
消耗内存每个用户8位