Skip to content

关于缓存一致性部分的一个建议 #298

@CaoChunfang

Description

@CaoChunfang

关于缓存一致性部分我看举了这样一个例子,就先删除缓存,再更新,在还没更新成功的时候来了一个读请求,因为缓存为空所以去读库,结果读到了旧数据并缓存了下来,此时更新操作也成功了,就可能导致缓存不一致的问题。然后我看给的解决方案是用内存列队,等专门用一个线程去更新缓存,感觉这有些复杂了。
我就想知道这里可不可以删两次缓存,第一次删除缓存,然后更新库,更新成功之后再删除一次缓存。这样就算上面说的库还没更新成功来了一个读请求更新了缓存也无所谓,因为马上会被再次删掉,这样不就不会导致不一致的问题了吗?也不知道这种方式有没有其他问题。

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions