首先需要在 vs2017 程序包管理器控制台执行命令:
Install-Package StackExchange.Redis
提示依赖项 Microsoft.AspNet.SignalR.Core.zh-Hans 有问题。查了下,在项目的 package 下有这个,但是版本是2.1.2 ,于是直接执行命令
Install-Package Microsoft.AspNet.SignalR.Core
安装后,发觉 Microsoft.AspNet.SignalR.Core.zh-Hans 变为 2.2.2 了。
再安装 StackExchange.Redis ,这次顺利安装上。然后创建了一个 RedisHelper 类,类的内容封装的是对 StackExchange.Redis 的操作方法。网上有相关代码,这里就不再列出。创建了获取题库类别的方法,首先用 ListRange 判断相应的 key 及key中的内容在 redis 服务器上是否存在,如果没有,则读取数据库相应值,一方面赋值给 redis 的相应键 ,另一方面直接返回给方法一个 list ,如果相应的 key 存在,则直接读取 key 值。代码如下:
public List<QuestionsLibrary> GetRedisQuestionsLibraryList()
{
var qlist = RedisHelper.ListRange<QuestionsLibrary>(RedisKey.RedisQuestionsLibraryList);
if (qlist == null || qlist.Count() <= 0)
{
List<QuestionsLibrary> list = new QuestionsLibraryService().GetNolock(m => true).ToList();
RedisHelper.ListRightPush(RedisKey.RedisQuestionsLibraryList, list);
return list;
}
else
{
return RedisHelper.ListRange<QuestionsLibrary>(RedisKey.RedisQuestionsLibraryList);
}
}
页面中调用方法:
IQueryable<QuestionsLibrary> query = GetRedisQuestionsLibraryList().AsQueryable().Where(lambda);
编译,运行,可以正确显示列表页内容,并能够分页显示