缓存/池/缓存池之间的区别/准则

nzp*_*mad 2 caching pool

我正在做一些设计(最初是为Java设计的)(但将来可能会扩展到.NET吗?),我对术语“缓存”和“池”感到困惑。

据我所知,主要区别在于它们包含什么?

什么时候应该使用哪个准则?

那么,在许多文章中提到的“缓存池”又是什么呢?

Rob*_*son 5

尽管它们都指保持对象不变,但是它们却大不相同,我不会说它们是可互换的。

缓存 -存储经常使用的值,通常是因为查找和/或创建是不平凡的。例如,如果经常使用数据库中的查找表,或者从磁盘上的文件中读取值,则将其保留在内存中并定期刷新将更为有效。

高速缓存仅管理高速缓存中的对象生存期,而不对高速缓存中保留的内容施加语义。缓存也不会创建项目,而只是存储对象。

-描述池本身管理的一组资源的术语。例如(数据库)连接池-需要连接时,可以从池中获得连接,完成后返回到池中。

池本身处理池对象的创建和销毁,并管理一次可以创建多少个对象。

缓存池 -大部分似乎描述存在的(独立?)缓存的数量。例如,一个asp.net应用程序每个应用程序域有1个缓存(asp.net应用程序之间不共享缓存)。从字面上看是一个缓存池,尽管这个术语似乎很少使用。