内存中的ASP核心缓存SQL数据用控制器查询

时间:2018-06-14 10:14:28

标签: asp.net-core .net-core

我有一个静态SQL数据集,我想存储在内存中并从一个控制器查询。例如

class HomeComponent extends Component {
    static navigationOptions = {
        tabBarIcon: ({ focused, tintColor }) => {
            const iconName = `ios-information-circle${focused ? '' : '-outline'}`;
            return <Ionicons name={iconName} size={25} color={tintColor} />;
        },
    };

    // ...
}

使用Core 2.1,我不知道该怎么做?

如果我在控制器中创建私有列表会持续存在吗?

1 个答案:

答案 0 :(得分:0)

控制器被实例化并随每个请求一起处理,因此在控制器上设置某些内容将不会持久存储到下一个请求。您应该使用IDistributedCache。这就像将其注入控制器一样简单:

private readonly IDistributedCache _cache;

public FooController(IDistributedCache cache)
{
    _cache = cache ?? throw new ArgumentNullException(nameof(cache));
}

然后,您只需使用GetAsyncSetAsync之类的方法来分别获取/设置缓存中的值。默认情况下,ASP.NET Core将满足MemoryDistributedCache的依赖关系,这对于开发来说很好,但是你需要利用Redis或SQL Server之类的东西作为生产中的后备存储。

这一切都很清楚documented