zoukankan      html  css  js  c++  java
  • 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)
                        {
                            var htmlStr = string.Empty;
                            foreach (var u in userList)
                            {
                                htmlStr += "<li>ID=" + u.Id + "&nbsp;&nbsp;姓名:" + u.Name + "&nbsp;&nbsp;所在部门:" + u.Job.Position + "</li>";
                            }
                            lblPeople.Text = htmlStr;
                        }
                        lblShow.Text = "筛选后共有:" + userList.Count.ToString() + "人!";
    
                    }

    2、通过key来查询数据

    在Redis中可以通过输入keys * 来查询当前数据库中所有的key,C#中我们可以通过以下代码来实现相同效果。
                    var user = redisClient.GetTypedClient<User>();
                    var userKeyList = user.GetAllKeys();

    我们逐一说明下:

    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值了,代码如下

                    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 + "&nbsp;&nbsp;姓名:" + value.Name + "&nbsp;&nbsp;所在部门:" + value.Job.Position;
                        }
                        catch (Exception ex)
                        {
                            keyValue += ex.ToString();
                        }
                        lblPeople.Text = keyValue.ToJson();
                        lblShow.Text = string.Empty;
                    }
  • 相关阅读:
    实现Android ListView 自动加载更多内容
    Android中通过GPS或NetWork获取当前位置的经纬度
    android检测当前网络是否可用
    怎么样获得泛型T的Class对象?
    slidemenu
    linux mysql 操作命令
    解决Skyline 6.5版本中3DML模型单体化后外部网页挂接问题
    解决Skyline6.5多球对比时,自动运行TerraExplorer软件的问题
    OSGeo.OGR.Geometry
    TerraExplorer Add-ons 和TEZ使用说明
  • 原文地址:https://www.cnblogs.com/wuxl360/p/5434418.html
Copyright © 2011-2022 走看看