C# Redis實戰(六)

來源:互聯網
上載者:User

標籤:blog   http   io   ar   os   使用   sp   for   java   

六、查詢資料在C# Redis實戰(五)中介紹了如何刪除Redis中資料,本篇將繼續介紹Redis中查詢的寫法。   1、使用Linq匹配關鍵字查詢 [csharp] view plaincopy 
  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.   
  6.                     if (userList.Count > 0)  
  7.                     {  
  8.                         var htmlStr = string.Empty;  
  9.                         foreach (var u in userList)  
  10.                         {  
  11.                             htmlStr += "<li>ID=" + u.Id + "  姓名:" + u.Name + "  所在部門:" + u.Job.Position + "</li>";  
  12.                         }  
  13.                         lblPeople.Text = htmlStr;  
  14.                     }  
  15.                     lblShow.Text = "篩選後共有:" + userList.Count.ToString() + "人!";  
  16.   
  17.                 }  
以上代碼實現了匹配所在部門來查詢資料的功能,輸入.NET,過濾掉Java部門的一人。查詢結果如下:
2 、通過key來查詢資料在Redis中可以通過輸入keys * 來查詢當前資料庫中所有的key,C#中我們可以通過以下代碼來實現相同效果。 [csharp] view plaincopy 
  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 plaincopy 
  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. }  
效果如下:
如需轉載,請註明出處,本系列博文樣本程式

C# Redis實戰(六)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.