【发布时间】:2013-03-26 06:40:42
【问题描述】:
我想将我的应用程序的通知存储在排序集或 Redis 列表中(它是一个也有通知的链接缩短器)。我有不同类型的通知,所以我不能像普通字符串一样存储它们。例如,如果我想存储:
- 通知文本
- 通知类型
我有两种方法。一种是序列化 Json 并像普通字符串一样存储,并在我想使用它时反序列化。或者另一种方法是将键保存在列表中,然后再次将 Redis 打到另一个数据结构中,以通过存储在列表中的键获取通知哈希。
就像一个通知系统,系统会一直在读写。
那么在几行反序列化和序列化 VS 拆分数据和多个 DB 命中?
我对此类决策没有太多经验,所以也许有人遇到过这种情况并且知道在效率和可扩展性方面什么是最佳方法,或者至少可以解释我如何做出决策决定,因为就像很多事情一样,我/我的应用程序的决定不是其他人/其他人的应用程序的决定。
谢谢你:)
【问题讨论】:
-
Redis 允许您存储哈希。这对你来说不是两全其美吗?
-
这是我不知道哪个是最好的问题:),键列表+哈希或序列化数据列表。
-
尝试所有这些,看看:)
-
@sLoK 您是否为通知实现了已读/未读状态?如果是这样,您能否为您选择的结构提供一个提示?以及您如何更改读取状态
-
@MarcelDjaman 嗨!抱歉耽搁了,我错过了。是的,我实现了已读和未读状态,这是很久以前的事了,对不起,如果我不记得全部,但方法是维护不同的数据结构,已读、未读和所有(是的,我们有重复,但到底是什么这是 NoSQL,redis 在内存中很便宜 xD)我用 zset 实现,所以按分数排序(分数是 unix 时间戳)。这里有源代码:) [github.com/slok/dwarf/blob/master/dwarf/notifications/…
标签: database json database-design data-structures redis