后端如何过滤已推荐过的内容

感谢各位大佬提供思路

需求:对已推荐过的内容不再对用户推荐;

有个content表,数据大概300w条。

如何对已推荐过的内容,不再推荐,查询不能按照id排序,需要添加过滤条件。而这些过滤条件会变化。

阅读 2.2k
2 个回答

可以考虑布隆过滤器.
在正常进行过滤条件筛选出内容后,再进行一次布隆过滤器剔除出疑似推荐过的.

我的思路是将需要推送信息的用户拿出来放到缓存中,完成对一个用户的推荐就删除一个用户,
通过缓存的方式来实现对用户一次性的消息推送.
考虑使用缓存的目的是实现消息推送业务不影响原先业务,因为为了不给相同用户二次推送消息,那就需要一个标识来判断该用户是否已经推送了消息.标识需要一个持久化存储方式,考虑到服务宕机,重启等情况,这个持久化方式需要在服务发生问题重启后状态依旧存在,所以就2种方式,一种是数据库,一种是缓存,缓存可以使用经典的redis,它有持久化机制.存数据库的话,那后面每次对推送业务进行拓展的时候就需要添加字段作为标识,不符合可配置(偷懒)目的,所以使用缓存,将标识加推送业务的信息进行拼接作为当前推送业务的用户的唯一标识了

已参与了 SegmentFault 思否社区 10 周年「问答」打卡 ,欢迎正在阅读的你也加入。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题