![](/img/trans.png)
[英]How can I store items of unkown types using StackExchange.Redis?
[英]How can I store a list using StackExchange.Redis?
我将StackExchange.Redis
(1.2.1 版)与 ASP.NET MVC C# 应用程序一起使用。 我能够使用StackExchange.Redis
存储和查看数组和字符串。 但是,我无法找出存储列表的方法。 有什么办法吗? 如果没有,您能否建议StackExchange.Redis
一些好的替代方案来完成此要求?
我建议你使用StackExchange.Redis.Extensions ,然后你可以这样做:
var list = new List<int> { 1, 2, 3 };
bool added = cacheClient.Add("MyList", list, DateTimeOffset.Now.AddMinutes(10));
并检索您的列表:
var list = cacheClient.Get<List<int>>("MyList");
严格来说,Redis 只存储字符串,而一个List<MyObject>
,显然不是字符串。 但是有一种方法可以可靠地实现您的目标:将您的列表转换为字符串。
要存储List<MyObject>
,首先使用JsonConvert等工具将其序列化为字符串,然后将其存储在 redis 上。 检索时,只需将其反序列化...
快进 3 年以上,我希望在 .NET 核心中使用 StackExchange.Redis 做类似的事情,所以留在这里以防万一有人想做同样的事情。
有“StackExchange.Redis.Extensions.Core”,它允许存储和检索如下。 将此 nuget 与“StackExchange.Redis.Extensions.AspNetCore”和“StackExchange.Redis.Extensions.Newtonsoft”一起使用
private readonly IRedisCacheClient _redisCacheClient;
public ValuesController(IRedisCacheClient redisCacheClient)
{
_redisCacheClient = redisCacheClient;
}
public async Task<List<int>> Get()
{
var list = new List<int> { 1, 2, 3 };
var added = await _redisCacheClient.Db0.AddAsync("MyList", list, DateTimeOffset.Now.AddMinutes(10));
return await _redisCacheClient.Db0.GetAsync<List<int>>("MyList");
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.