首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用StackExchange.Redis存储列表?

如何使用StackExchange.Redis存储列表?
EN

Stack Overflow用户
提问于 2017-04-28 20:27:02
回答 3查看 8.4K关注 0票数 4

我使用的是带有ASP.NET MVC C#应用程序的StackExchange.Redis (1.2.1版)。我能够使用StackExchange.Redis存储和查看数组和字符串。但是,我想不出一种存储列表的方法。有什么办法可以做到吗?如果没有,您能推荐一些好的StackExchange.Redis替代方案来满足这个要求吗?

EN

回答 3

Stack Overflow用户

发布于 2017-04-28 20:41:45

我建议你使用StackExchange.Redis.Extensions,然后你可以这样做:

代码语言:javascript
复制
var list = new List<int> { 1, 2, 3 };
bool added = cacheClient.Add("MyList", list, DateTimeOffset.Now.AddMinutes(10));

并检索您的列表:

代码语言:javascript
复制
var list = cacheClient.Get<List<int>>("MyList");
票数 7
EN

Stack Overflow用户

发布于 2017-04-28 20:38:21

严格地说,Redis只存储字符串,而List<MyObject>显然不是字符串。但是,有一种方法可以可靠地实现您的目标:将列表转换为字符串。

要存储List<MyObject>,首先使用JsonConvert等工具将其序列化为字符串,然后将其存储在redis上。在检索时,只需反序列化它...

票数 0
EN

Stack Overflow用户

发布于 2020-09-27 19:48:48

快进3,years+和我希望在.NET核心中使用StackExchange.Redis做类似的事情,所以把这个留在这里,以防有人也想做同样的事情。

有"StackExchange.Redis.Extensions.Core“,它允许存储和检索,如下所示。将此nuget与"StackExchange.Redis.Extensions.AspNetCore“和"StackExchange.Redis.Extensions.Newtonsoft”一起使用

代码语言:javascript
复制
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");
        }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43680245

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档