【发布时间】:2011-11-11 17:30:54
【问题描述】:
我们目前有一个通读缓存,它在缓存未命中时填充缓存时使用乐观并发控制。我们预计不会有很多冲突,所以我们选择使用乐观并发控制。不过,当我们真的发生冲突时,我有点不确定该怎么办。
如果我们有缓存未命中,我们从数据库中提取相关行,然后将其放入缓存中以供将来参考。在我们将它放入缓存之前,我们确保缓存键的值自我们最初的数据库读取以来没有改变。如果有,我目前倾向于使缓存条目无效,只是为了安全起见,但这似乎有点低效。有没有更好的替代品,仍然安全?
作为记录,我们使用 Redis 作为缓存层,使用 MySQL 作为后备存储。
【问题讨论】:
标签: mysql database caching concurrency redis