我过去曾实施过缓存。以下是我在存储库之上实现服务层时所遵循的模式:
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);
}
注意:上述伪代码中不考虑线程安全问题
我遇到过这个词 - 通过缓存写,并希望了解更多。以下是我的问题:
感谢。
答案 0 :(得分:1)
在直写高速缓存中,写入与高速缓存和持久存储同步完成。在其他缓存类型中,出于性能原因,可能会延迟对持久存储的写入。
维基百科描述common cache writing policies上的基本概念。
答案 1 :(得分:0)
通过缓存写入 直写式高速缓存是一种高速缓存模式,其中写入高速缓存会导致写入底层资源。缓存充当底层资源的外观。使用此模式,通常也可以读取缓存。支持写入缓存的磁盘或内存缓存。 CPU写入内存或磁盘的数据也会写入缓存。使用此方法不会改善写入性能。但是,如果后续读取操作需要相同的数据,则读取性能会提高,因为数据已经在高速缓存中。
伪码:
void create(T object)
{
repository.create(object);
cache.put(somekey, obj);
}