gpt4 book ai didi

java - 保持内存中更改与后端同步的好方法是什么

转载 作者:行者123 更新时间:2023-11-30 07:07:56 24 4
gpt4 key购买 nike

在多用户情况下,保持资源更改与内存和持久存储同步的好方法是什么?这里有两个想法,但都很笨拙

候选人A

这里,必须检索 r 的副本,以便在 put 上同时更新内存中状态和持久状态。

Resource r = resources.getDeepCopyOfResourceById("foo");
r.removeValue("bar");
resources.put(r);

候选人B

这里,更新操作位于服务级别。在我看来,这是一种面向对象的反模式。

Resource r = resources.getResourceById("foo");
resources.removeValue("foo", r);

有更好的设计方法吗?

最佳答案

What is a good way to keep changes to a resource in sync with both in-memory and persistent storage in a multi-user situation?

一般来说,这里有两个问题:缓存和并发。

对于缓存,您需要决定使用什么策略。有很多选择。例如:

  • 通读/通写
  • 写下
  • 写在后面
  • 缓存放在一边

当您决定了缓存模式后,下一步就是确保缓存和持久数据访问线程的安全。这通常通过事务和锁来实现。确切的实现取决于您使用的库。

关于java - 保持内存中更改与后端同步的好方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39767169/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com