6、查詢數據
一、使用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 + " 姓名:" + u.Name + " 所在部門:" + u.Job.Position + "</li>";
- }
- lblPeople.Text = htmlStr;
- }
- lblShow.Text = "篩選後共有:" + userList.Count.ToString() + "人!";
-
- }
以上代碼實現了匹配所在部門來查詢數據的功能,輸入.NET,過濾掉Java部門的一人。查詢結果以下:
2、經過key來查詢數據
在Redis中能夠經過輸入keys * 來查詢當前數據庫中全部的key,C#中咱們能夠經過如下代碼來實現相同效果。
- 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值了,代碼以下:
- 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;
- }
效果以下: