.NET中的缓存实现
软件开发中最常用的模式之一是 缓存, 这是一个简单但非常有效的概念, 想法是重用操作结果, 执行繁重的操作时,我们会将结果保存在 缓存容器中, 下次我们需要该结果时,我们将从缓存容器中取出它,而不是再次执行繁重的操作。 例如,要获得某人的头像,您可能需要前往数据库。 我们不会每次都执行那次查询,而是将结果保存在缓存中,每次需要时都将其从内存中删除。 缓存非常适合不经常更改的数据, 甚至永远不会改变。 不断变化的数据不适合缓存,如当前机器的时间不应缓存,否则您将得到错误的结果。 进程内缓存,持久化缓存和分布式缓存 进程内缓存 用于在单个进程中实现缓存时, 当进程终止时,缓存会随之消失。 如果您在多个服务器上运行相同的进程,则每个服务器都有一个单独的缓存。 持久化缓存 是指在进程内存之外备份缓存, 它可能位于文件中,也可能位于数据库中。 这实现比较困难,但如果重新启动进程,缓存不会丢失。 分布式缓存 是指您为多台计算机提供共享缓存, 通常它将是几个服务器, 使用分布式缓存,它存储在外部服务中。 这意味着如果一台服务器保存了缓存项,其他服务器也可以使用它。 像 Redis 这样的 服务 非常适合这种情况。 单线程的缓存 public class NaiveCache<T> { private static Dictionary< object , T> _cache = new