0

我过去已经实现了缓存。以下是我用来在存储库之上实现服务层的模式:

T retrieve(String key)
{
    if (cache.contains(key))
        return cache.get(key)

    T obj = repository.get(key);
    cache.put(key, obj);
}


void create(T object)
{
    repository.create(object);
}


void delete(String key)
{
    cache.remove(key);
    repository.delete(key);
}

注意:上述伪代码中没有考虑线程安全问题

我遇到了这个词-通过缓存写入,并想进一步了解它。以下是我的问题:

  1. 什么是通过缓存写入?
  2. 通过缓存写入与普通缓存有何不同?
  3. 什么时候应该使用通过缓存写入?
  4. 通过缓存写入的伪代码如何?
  5. 还有其他这样的缓存区别吗?

谢谢。

4

2 回答 2

3

在直写式缓存中,写入与缓存和持久存储同步完成。在其他缓存类型中,出于性能原因,可能会推迟对持久存储的写入。

Wikipedia 描述了常见缓存写入策略的基本概念。

于 2013-06-10T06:33:19.613 回答
1

直写缓存 - 直写缓存是一种缓存模式,其中写入缓存会导致写入底层资源。缓存充当底层资源的外观。使用这种模式,通读缓存通常也很有意义。支持写入缓存的磁盘或内存缓存。CPU 写入内存或磁盘的数据也会写入缓存。使用此方法不会提高写入性能。但是,如果后续读取操作需要相同的数据,则读取性能会提高,因为数据已经在高速缓存中。

伪代码:

void create(T object)
{
    repository.create(object);
    cache.put(somekey, obj);
}
于 2013-06-10T06:41:53.290 回答