C# Redis实战(六)

六、查询数据

C# Redis实战(五)中介绍了如何删除Redis中数据,本篇将继续介绍Redis中查询的写法。

1、使用Linq匹配关键字查询

[csharp] view plain copy

  1. using (var redisClient = RedisManager.GetClient())
  2. {
  3. var user = redisClient.GetTypedClient<User>();
  4. var userList = user.GetAll().Where(x => x.Job.Position.Contains(txtScreenPosition.Text)).ToList();
  5. if (userList.Count > 0)
  6. {
  7. var htmlStr = string.Empty;
  8. foreach (var u in userList)
  9. {
  10. htmlStr += "<li>ID=" + u.Id + "  姓名:" + u.Name + "  所在部门:" + u.Job.Position + "</li>";
  11. }
  12. lblPeople.Text = htmlStr;
  13. }
  14. lblShow.Text = "筛选后共有:" + userList.Count.ToString() + "人!";
  15. }

以上代码实现了匹配所在部门来查询数据的功能,输入.NET,过滤掉Java部门的一人。查询结果如下:

2、通过key来查询数据

在Redis中可以通过输入keys * 来查询当前数据库中所有的key,C#中我们可以通过以下代码来实现相同效果。

[csharp] view plain copy

  1. var user = redisClient.GetTypedClient<User>();
  2. 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 plain copy

  1. using (var redisClient = RedisManager.GetClient())
  2. {
  3. var keyValue = string.Empty;
  4. try
  5. {
  6. var user = redisClient.GetTypedClient<User>();
  7. var value = user.GetValue(txtKey.Text);
  8. keyValue += "ID=" + value.Id + "  姓名:" + value.Name + "  所在部门:" + value.Job.Position;
  9. }
  10. catch (Exception ex)
  11. {
  12. keyValue += ex.ToString();
  13. }
  14. lblPeople.Text = keyValue.ToJson();
  15. lblShow.Text = string.Empty;
  16. }

效果如下:

时间: 2024-10-12 13:12:11

C# Redis实战(六)的相关文章

Redis实战(六)

查询数据 1.使用Linq匹配关键字查询 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)

C# Redis实战(七)

七.修改数据 在上一篇 C# Redis实战(六)中介绍了如何查询Redis中数据,本篇将介绍如何修改Redis中相关数据.大家都知道Redis是key-value型存储系统,所以应该可以修改key,也可以根据key来修改value.接下来将是详细的C#语言修改Redis示例. 1.通过key修改单个value using (var redisClient = RedisManager.GetClient()) { var user = redisClient.GetTypedClient<Us

redis 学习 六 订阅

<?php header('content-type:text/html;chaeset=utf-8'); /** * redis实战 * * 订阅 * * @example php subscribe.php */ //ini_set('default_socket_timeout', -1); $redis = new \Redis(); $redis->pconnect('127.0.0.1', 6379); //订阅 echo "订阅msg这个频道,等待消息推送... \n&

C# Redis实战(三)

三.程序配置 在C# Redis实战(二)中我们安装好了Redis的系统服务,此时Redis服务已经运行. 现在我们需要让我们的程序能正确读取到Redis服务地址等一系列的配置信息,首先,需要在Web.config文件中添加如下信息: [html] view plain copy <?xml version="1.0" encoding="utf-8"?> <!-- 有关如何配置 ASP.NET 应用程序的详细信息,请访问 http://go.mi

C# Redis实战(五)

五.删除数据 在C# Redis实战(四)中讲述了如何在Redis中写入key-value型数据,本篇将讲述如何删除Redis中数据. 1.void Delete(T entity);删除函数的运用 [csharp] view plain copy using (var redisClient = RedisManager.GetClient()) { var user = redisClient.GetTypedClient<User>(); var newUser = new User {

C# Redis实战(四)

四.写入数据 在C# Redis实战(三)中我们已经配置好了web.config程序,并且能通过C#代码来读取和管理以上配置信息. 接下来,就可以进行Redis的数据写入了.Redis中可以用Store和StoreAll分别保存单条和多条数据,C#中具体代码如下: 1.保存多条数据 [csharp] view plain copy protected void btnOpenDB_Click(object sender, EventArgs e) { //System.Diagnostics.P

C# Redis实战(二)

二.Redis服务 在C# Redis实战(一)中我将所有文件拷贝到了D盘redis文件夹下,其中redis-server.exe即为其服务端程序,双击即开始运行,如图 可以将此服务设置为windows系统服务,下载Redis服务安装软件,安装即可. 安装完成在服务中找到此服务,将其设置为自动延迟启动即可. 再回到redis文件夹下,找到redis-cli.exe文件,它就是Redis客户端程序.打开,输入:set qiujialong 123 即在Redis中插入了一条key为qiujialo

Redis实战阅读笔记——开始

Redis实战这本书,看完以后最大的不是redis本身的东西,而是作者面对实际问题的分析而给出的设计方案,可以看成NoSql设计的应用.个人从这方面收获很多,至于Redis本身的东西,这个就花一两个小时就可以知道大致是怎么一回事了.具体API就直接查查就OK.关键是怎么用,这才是灵感创造所在,看看别人解决问题的思路,学习学习哈.

Redis实战阅读笔记——第一章

Redis 实战 中文版 的20-21页看的人郁闷死了,最后看英文版才明白意思,哎,我理解能力差成这样了 其中,图 1-12 有错误,草,这个是英文版的错--应该是group:programming