【发布时间】:2015-10-30 22:22:26
【问题描述】:
我有一个用户通知系统。可以通过 id 向用户发送个人通知或向所有用户发送广播消息(例如,关于新功能)。现在它被实现为数据库中的单个表,其结构类似于
<message_id, message_time, user_id, text, is_broadcast>
和操作:
- 为用户插入消息
- 为用户 Y 获取 X 消息以显示并从数据库中删除它们(不显示第二次)
- 为每个用户插入相同的消息(广播消息)
- 删除所有超过 N 天的广播消息(对长时间未登录的用户不保留广播消息,但不删除个人消息)
现在我正在考虑将整个消息传递系统从 MySQL 迁移到 Redis,但我在选择有效的 Redis 数据结构时遇到了问题。我有一个想法为每个用户创建一个列表/一组消息。个人消息很好,但如果我有广播消息,我需要迭代所有列表并在那里放一条消息。同样的问题是删除旧的广播消息 - 我需要迭代所有列表并删除旧消息。有什么方法可以使它更容易吗? 谢谢!
【问题讨论】:
标签: redis