共计 2 篇文章

Abp 源码分析:八、缓存管理

0.简介 缓存在一个业务系统中十分重要,常用的场景就是用来储存调用频率较高的数据。Abp 也提供了一套缓存机制供用户使用,在使用 Abp 框架的时候可以通过注入 ICacheManager 来新建/设置缓存。 同时 Abp 框架也提供了 Redis 版本的 ICacheManager 实现,你也可以很方便的将现有的内存缓存替换为 Redis 缓存。 0.1 典型使用方法 public ...

在 C# 当中实现 LRU Cache

在常用的缓存设计模式当中,LRU是比较简单且常见的一种缓存设计方案,简单说来就是在缓存队列当中,使用频率越低的对象,越会被踢出队列。 原理的话很简单,我们有一个字典容器,还有一个双向链表。 字典容器则是我们缓存对象真正存储的地方,双向链表的作用则是用来记录当前缓存队列的使用频率情况,当用户命中一个缓存对象的时候,双向链表就回将这个对象的键ID放在最前面,这样就能够保证使用率最低的对象是存放在最末位。如果当我们添加了一个新的缓存对象的时候,但是字典容器满了,这个时候我们只需要找到双向链表当中最末位的那个缓存对象将其踢出队列,之后再将新的缓存对象存放到字典容器当中。 说了这么多,还是上代码吧: public class LRUCache<TKey,TValue> ...