处理160万图片数据冗余
来源:互联网 发布:人工智能 药物挖掘 编辑:程序博客网 时间:2024/05/01 03:15
晚上睡不着就想起老大的任务,整理出160多万的服务器冗余数据
问题是这样的,网站现在又很多图片在服务器上,但是这些图片真正是不用的,造成这种情况的原因是,比如在发布一篇博客的时候,你上传了一张图片,但是这篇博客你并没有发表,图片已经在服务器上了,这样,这张图片就永远不会用到,造成数据冗余
图片这样处理的,有专门的图片服务器存放图片,路径在redis服务器上,通过guid在redis服务器上获取的图片路径
任务是,整理出那些guid在redis上有无数据,那些在图片服务器上有无数据,还有就是那些在redis上有,但是没用到的(也就是数据库里没有的)
我的思路是,先定义一个实体类有如下属性:
public Boolean IsRedis { get; set; } public Boolean IsSqlServer { get; set; } public Boolean IsLocal { get; set; }其实就是对guid做一个标记,比如说redis上有那么就把IsRedis 标记为TRUE;数据库有就把issqlserver标记为TRUE,同理local就是图片服务器上的
先拿到redis的所有key也就是guid然后遍历,并用key做键,实体吧isredis设为TRUE之后做value存到键值对集合中,对数据库也是同样的操作,
处理完之后再把数据提交到数据库,提交数据库是用批量提交的,10w条提交一次
Dictionary<string, Class1> dic = new Dictionary<string, Class1>(); List<string> list = new Redis().Get(); foreach (string s in list) { if (dic.ContainsKey(s)) { dic[s].IsRedis = true; } else { dic.Add(s, new Class1() { IsRedis = true }); } } using (DataTable table = new SQl().Get()) { foreach (DataRow r in table.Rows) { string s = r["guid"].ToString(); if (dic.ContainsKey(s)) { dic[s].IsSqlServer = true; } else { dic.Add(s, new Class1() { IsSqlServer = true }); } } } //提交数据库 using (DataTable table = new DataTable()) { table.Columns.Add("Guid"); table.Columns.Add("IsRedis"); table.Columns.Add("IsSqlServer"); foreach (KeyValuePair<string, Class1> pair in dic) { table.Rows.Add(new object[] { pair.Key, pair.Value.IsRedis, pair.Value.IsSqlServer }); if (table.Rows.Count > 100000) { SQl sQl = new SQl(); sQl.Submit(table); table.Rows.Clear(); } } SQl sQl1 = new SQl(); sQl1.Submit(table); table.Rows.Clear(); }
就是这样,我是先做了一个测试,总共耗时51m,最终提交到数据库的数据是2201341条数据
测试环境 SqlServer2012 vs13 server2012服务器(虚拟机)
1 0
- 处理160万图片数据冗余
- 处理上百万条数据
- 数据冗余
- 数据冗余
- 数据冗余
- 数据冗余
- 数据冗余
- python处理txt去掉同类的冗余数据
- 如何处理几十万条并发数据?
- 如何处理几十万条并发数据
- 如何处理几十万条并发数据?
- 如何处理几十万条并发数据
- PCA 处理 几十万维 数据?
- 处理冗余记录解决方案
- 4.5冗余参数处理
- 过滤xml冗余数据
- 数据冗余之度
- 正确认识数据冗余
- http://www.loveq.cn/profile-wang091633.html
- 开源硬件
- 黑马程序员 学习日记 解(一)
- 按层遍历二叉树
- [重磅] 让HTML5达到原生的体验 系列之一 避免切页白屏
- 处理160万图片数据冗余
- Ralph Lauren Billigt residing as well as challenging throughout luxembourg
- Ralph Lauren Outlet the secret rugs converts a good molehill proper snowboarding mntain
- www.thevillagesurgery.org.uk/images/main_menu/menu_list.html i would almost certainly describe in ad
- inner class, static nested class
- R语言为Hadoop注入统计血脉
- 今日作息及食谱(7.18)
- 6.3 Merge k Sorted Lists
- 深入解析完成端口(Completion Port )