通过缓存写什么?

时间:2013-06-10 06:31:23

标签: caching

我过去曾实施过缓存。以下是我在存储库之上实现服务层时所遵循的模式:

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. 还有其他类似的缓存区别吗?
  6. 感谢。

2 个答案:

答案 0 :(得分:1)

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

维基百科描述common cache writing policies上的基本概念。

答案 1 :(得分:0)

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

伪码:

void create(T object)
{
    repository.create(object);
    cache.put(somekey, obj);
}