tonghuashuai
2016-06-20 11:26:50 +08:00
首先,我还是建议 lz 不要用这种方式使用 redis , redis 不应该这么用吧,很蛋疼。
当然,如果非要这么用的话, B 的 key 中包含 A 的 ID 应该是一种办法,结构如下:
A 的结构: a_id: {col1: val2, col2: val2}
B 的结构: a_id_b_id: {col1: val2, col2: val2}
但是这样有一个问题就是:如果只有 B 的 ID 想查询 B 就蛋疼了,就得用遍历了……想想就蛋疼
redis 的最佳实践是存一些热数据,尽量不存业务数据,虽说 redis 有持久化方式,如果选择实时持久化那性能还不如 mysql 呢,如果定期持久化那么必然会存在丢数据的问题。我一般用 redis 存一下经常更新的热数据或一些运算结果,我的使用原则是: redis 中的数据可以由业务数据冷启动的,也就是说:如果哪天 redis 挂掉了,只要有业务数据,随时都可以生成 redis 中的数据冷启动的。