標籤:
修改資料
C#語言修改Redis樣本。
1、通過key修改單個value
using (var redisClient = RedisManager.GetClient()) { var user = redisClient.GetTypedClient<User>(); var value = user.GetValue(txtChangeKey.Text);//首先先擷取當前key的值 var changedUser = new User { Id = value.Id, Name = txtChangeName.Text, Job = new Job { Position = txtChangePosition.Text } };//設定相應的新value值,並使其它資料與原來相統一 redisClient.Set(txtChangeKey.Text, changedUser);//修改value value = user.GetValue(txtChangeKey.Text);//根據key擷取最新的資料 var htmlStr = string.Empty; htmlStr += "修改後的ID=" + value.Id + " 姓名:" + value.Name + " 所在部門:" + value.Job.Position; lblPeople.Text = htmlStr; lblShow.Text = "篩選後共有:1人!"; }
2、通過keys修改多個values
var dictionary = new Dictionary<string, User>(); using (var redisClient = RedisManager.GetClient()) { var user = redisClient.GetTypedClient<User>(); var user1 = new User { Id = user.GetNextSequence(),//擷取新的ID Name = "小明", Job = new Job { Position = "Python" } }; var user2 = new User { Id = user.GetNextSequence(), Name = "小紅", Job = new Job { Position = "Python" } }; var userKeyList = user.GetAllKeys().Where(x => x.StartsWith("urn")).OrderBy(y => y).ToList();//只擷取儲存value的key dictionary.Add(userKeyList[1], user1);//第二個人 dictionary.Add(userKeyList[2], user2);//第三個人 redisClient.SetAll(dictionary);//同時修改多個value var users = user.GetAll(); if (users.Count > 0) { var htmlStr = string.Empty; foreach (var u in users) { htmlStr += "<li>ID=" + u.Id + " 姓名:" + u.Name + " 所在部門:" + u.Job.Position + "</li>"; } lblPeople.Text = htmlStr; } lblShow.Text = "篩選後共有:" + users.Count.ToString() + "人!"; }
3、重新命名key
using (var redisClient = RedisManager.GetClient()) { redisClient.RenameKey(txtKey.Text, txtNewKey.Text); var user = redisClient.GetTypedClient<User>(); var userKeyList = user.GetAllKeys(); if (userKeyList.Count > 0) { lblPeople.Text = string.Empty; var htmlStr = string.Empty; foreach (var u in userKeyList) { htmlStr += "<li>key=" + u + "</li>"; } lblPeople.Text = htmlStr; } lblShow.Text = "篩選後共有:" + userKeyList.Count.ToString() + " Keys!"; }
Redis實戰(七)