C# Redis实战(六)
2015-12-22 20:53
681 查看
六、查询数据
在C# Redis实战(五)中介绍了如何删除Redis中数据,本篇将继续介绍Redis中查询的写法。1、使用Linq匹配关键字查询
[csharp] view
plaincopy
using (var redisClient = RedisManager.GetClient())
{
var user = redisClient.GetTypedClient<User>();
var userList = user.GetAll().Where(x => x.Job.Position.Contains(txtScreenPosition.Text)).ToList();
if (userList.Count > 0)
{
var htmlStr = string.Empty;
foreach (var u in userList)
{
htmlStr += "<li>ID=" + u.Id + " 姓名:" + u.Name + " 所在部门:" + u.Job.Position + "</li>";
}
lblPeople.Text = htmlStr;
}
lblShow.Text = "筛选后共有:" + userList.Count.ToString() + "人!";
}
以上代码实现了匹配所在部门来查询数据的功能,输入.NET,过滤掉Java部门的一人。查询结果如下:
2、通过key来查询数据
在Redis中可以通过输入keys * 来查询当前数据库中所有的key,C#中我们可以通过以下代码来实现相同效果。
[csharp] view
plaincopy
var user = redisClient.GetTypedClient<User>();
var userKeyList = user.GetAllKeys();
代码中userKeyList中保存了所有的key
细心的读者会发现此处查询到的key数量与数据库保存的数据量不同
我们逐一说明下:
seq:User:用来维护当前类型User的ID自增序列,用作对象唯一ID,也就是使用GetNextSequence()函数可以获取当前数据库最新的ID的原因了。
ids:User:同一类型User中所有对象ID的列表,相当于一个索引,包含了所有同为类型User的ID;
由于维护了这样一个分组信息,所以很容易实现GetAll<User>()这样的功能。
urn:user:1:这才是保存user对象的key。
在redis-client中输入:get urn:user:1 得到json类型数据。
通过上述说明,我们就可以很轻松的通过key来查询value值了,代码如下:
[csharp] view
plaincopy
using (var redisClient = RedisManager.GetClient())
{
var keyValue = string.Empty;
try
{
var user = redisClient.GetTypedClient<User>();
var value = user.GetValue(txtKey.Text);
keyValue += "ID=" + value.Id + " 姓名:" + value.Name + " 所在部门:" + value.Job.Position;
}
catch (Exception ex)
{
keyValue += ex.ToString();
}
lblPeople.Text = keyValue.ToJson();
lblShow.Text = string.Empty;
}
效果如下:
如需转载,请注明出处,本系列博文示例程序下载地址
相关文章推荐
- C# Redis实战(五)
- Redis1
- 如何用redis来生成唯一Id
- Redis 的性能幻想与残酷现实
- Redis 的性能幻想与残酷现实
- Redis 的性能幻想与残酷现实
- Redis 的性能幻想与残酷现实
- redis集群
- 学习和使用REDIS的一些资源
- redis配置文件详解(转)
- window下php5.6-x64-ts可用php_redis.dll文件
- redis api使用手册
- maven+mongodb+redis
- windows下hiredis使用
- Windows下安装和使用redis
- Redis 启动警告错误解决
- Redis
- redis错误解决
- redis sentinel 单机搭建测试环境
- 定时监视redis,自动重启redsi服务