C# Redis实战(七)
七、修改数据
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人!"; }
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() + "人!";
}
我需要在修改了第一个人所在部门的基础上同时将第二个人和第三个人所在部门、姓名、ID都一并修改,执行后效果图如下:
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!";
}
public void Rename(string oldKeyname, string newKeyname)
{
if (oldKeyname == null)
throw new ArgumentNullException("oldKeyname");
if (newKeyname == null)
throw new ArgumentNullException("newKeyname"); SendExpectSuccess(Commands.Rename, oldKeyname.ToUtf8Bytes(), newKeyname.ToUtf8Bytes());
}
C# Redis实战(七)的更多相关文章
- Redis实战(七)
修改数据 C#语言修改Redis示例. 1.通过key修改单个value using (var redisClient = RedisManager.GetClient()) { var user = ...
- Redis实战
大约一年多前,公司同事开始使用Redis,不清楚是配置,还是版本的问题,当时的Redis经常在使用一段时间后,连接爆满且不释放.印象中,Redis 2.4.8以下的版本由于设计上的主从库同步问题,就会 ...
- Redis实战阅读笔记——开始
Redis实战这本书,看完以后最大的不是redis本身的东西,而是作者面对实际问题的分析而给出的设计方案,可以看成NoSql设计的应用.个人从这方面收获很多,至于Redis本身的东西,这个就花一两个小 ...
- Redis实战阅读笔记——第一章
Redis 实战 中文版 的20-21页看的人郁闷死了,最后看英文版才明白意思,哎,我理解能力差成这样了 其中,图 1-12 有错误,草,这个是英文版的错--应该是group:programming
- redis实战(01)_redis安装
早就想对redis进行实战操作了,最近看了一些视频和参考书籍,总结总结一下,redis实战内容: 实战前先对redis做一个大概的认识: 现在开始安装redis了... redis的安装下载地址 ht ...
- C# Redis实战(二) [转]
二.Redis服务 在C# Redis实战(一)中我将所有文件拷贝到了D盘redis文件夹下,其中redis-server.exe即为其服务端程序,双击即开始运行,如图 ...
- (转)国内外三个不同领域巨头分享的Redis实战经验及使用场景
随着应用对高性能需求的增加,NoSQL逐渐在各大名企的系统架构中生根发芽.这里我们将为大家分享社交巨头新浪微博.传媒巨头Viacom及图片分享领域佼佼者Pinterest带来的Redis实践,首先我们 ...
- C# Redis实战
转自 :http://blog.csdn.net/qiujialongjjj/article/details/16945569 一.初步准备 Redis 是一个开源的使用ANSI C 语言编写.支持 ...
- Redis实战之Redis + Jedis
用Memcached,对于缓存对象大小有要求,单个对象不得大于1MB,且不支持复杂的数据类型,譬如SET 等.基于这些限制,有必要考虑Redis! 相关链接: Redis实战 Redis实战之Redi ...
随机推荐
- 【项目记录】-路灯监测 gmap.net
需求 2016年5月,客户要求在地图上显示路灯及数据,分析数据生成报表,以便查看分析路灯情况. 选型 国外项目就不考虑国内的地图了,开始想使用google的web地图,考虑到地图上标记物过多影响性能及 ...
- C# 使用 SmtpClient 发送邮件注意项
最近有邮件发送需求,使用 C# SmtpClient 对象发送邮件 , 报异常, 如下错误代码: 调整代码顺序后,发送邮件成功! 注意:一定要先设置 EnableSsl和UseDefaultCred ...
- Java经典编程题50道之四十六
编程实现两个字符串的连接. public class Example46 { public static void main(String[] args) { addString( ...
- ASP.NET Core的身份认证框架IdentityServer4--(4)添加第三方快捷登录
添加对外部认证的支持 接下来我们将添加对外部认证的支持.这非常简单,因为你真正需要的是一个兼容ASP.NET Core的认证处理程序. ASP.NET Core本身也支持Google,Facebook ...
- 端到端测试工具--testcafe
写在前面 随着业务的增加,复杂性的增加,我们更需要保证页面不能出错,之前需要每次上线之前需要每次人工测试,如果有好多改动,为保证业务不出错,需要耗费更多的时间来测试,所以我们需要写一些测试来保证业务的 ...
- Eventlog控件的使用
CreateEventSource 已重载. 建立一个能够将事件信息写入到系统的特定日志中的应用程序. Delete 已重载. 移除日志资源. DeleteEventSource 已重载. 从事件日志 ...
- nyoj720 项目安排 二分+dp
思路:dp(i)表示前i个项目的最大收益,转移方程很好写dp(i) = max{ dp(k) + val(i) },val(i)表示第i个项目的价值,dp(k)表示前k个的最佳收益,k满足ed(k) ...
- LOJ6002 - 「网络流 24 题」最小路径覆盖
原题链接 Description 求一个DAG的最小路径覆盖,并输出一种方案. Solution 模板题啦~ Code //「网络流 24 题」最小路径覆盖 #include <cstdio&g ...
- B+索引、Hash索引、数据类型长度
1.为什么在数据库中要用B树索引而不是Hash索引? Mysql Hash索引结构的特殊性,其检索效率非常高,索引的检索可以一次定位,不像B-Tree 索引需要从根节点到枝节点,最后才能访问到页节点这 ...
- java程序中执行HiveQL
这里是指java中执行hive或者hiveQL. 注意:而不是经常说的通过JDBC的方式连接Hiveserver2来执行查询.是在部署了hiveserver的服务器上执行hive命令.这样就可以将分析 ...