我正在做一些设计(最初是为Java设计的)(但将来可能会扩展到.NET吗?),我对术语“缓存”和“池”感到困惑。
据我所知,主要区别在于它们包含什么?
什么时候应该使用哪个准则?
那么,在许多文章中提到的“缓存池”又是什么呢?
尽管它们都指保持对象不变,但是它们却大不相同,我不会说它们是可互换的。
缓存 -存储经常使用的值,通常是因为查找和/或创建是不平凡的。例如,如果经常使用数据库中的查找表,或者从磁盘上的文件中读取值,则将其保留在内存中并定期刷新将更为有效。
高速缓存仅管理高速缓存中的对象生存期,而不对高速缓存中保留的内容施加语义。缓存也不会创建项目,而只是存储对象。
池 -描述池本身管理的一组资源的术语。例如(数据库)连接池-需要连接时,可以从池中获得连接,完成后返回到池中。
池本身处理池对象的创建和销毁,并管理一次可以创建多少个对象。
缓存池 -大部分似乎描述存在的(独立?)缓存的数量。例如,一个asp.net应用程序每个应用程序域有1个缓存(asp.net应用程序之间不共享缓存)。从字面上看是一个缓存池,尽管这个术语似乎很少使用。