Memcached单个键值数据量不能超出默认的最大1M限制,这个时候需要进行拆分,成多个键。评估的时候需要实现模拟目标对象的数据量。比如我的数据结构如下:

        private static DTO.OnlineUser Makeuser(string key){DTO.OnlineUser user = new DTO.OnlineUser();user.cachetag = key;user.userid = 123456;user.username = "jon";user.nickname = "土豆哥哥";user.gender = 0;user.qq = "*********";user.mobile = "1******6***";user.avatar = "/upload/user/img/20170424205344.jpg";user.createtime = DateTime.Now;user.money = 225.33m;user.videotime = 10800;user.recommendurl = "http://xxxxxx.xxxxxxxx.com/321453";user.issleep = false;user.isgag = false;user.attributor = "xxx-客服经理";user.allocationtime = DateTime.Now;user.logininfo = new DTO.logininfo{guid = Guid.NewGuid().ToString(),beattime = DateTime.Now,loginip = "192.168.20.45",loginaddress = "浙江省杭州市",logintime = DateTime.Now,lastloginip = "192.168.20.77",lastloginaddress = "安徽省合肥市",lastlogintime = DateTime.Now.AddDays(-7),logincount = 14};user.roleinfo = new DTO.roleinfo{id = 1,name = "金牌会员",type = 1,category = (int)DTO.category.客服经理,icon = "/upload/user/img/201704242103445.jpg",order = 2,goldadd = 20};return user;}

序列化压缩存储的时候,100个对象是83.5kb,那么可以预估,最多不能超出1200个,83.5*12=1002kb<1024kb;

同时考虑随机分配,随机算法取余(divisor = 16)如下:

            byte[] buffer = Guid.NewGuid().ToByteArray();var gid = BitConverter.ToInt64(buffer, 0);return gid % divisor;

分配的大致demo测试:

        private static void simulation(){            var temp = new List<Tuple<long, int>>();for (int i = 0; i < 16000; i++){long key = GuidToLongID();//0~15temp.Add(new Tuple<long, int>(key, 1));}var t = temp.GroupBy(x => x.Item1).Select(x => new{k = x.FirstOrDefault().Item1,c = x.Sum(i => i.Item2)}).OrderBy(x => x.k);//Console.ForegroundColor = ConsoleColor.Green;//foreach (var i in t)//{//    Console.WriteLine("键:{0},值:{1}", i.k, i.c);//}Console.ForegroundColor = ConsoleColor.White;var count = t.Max(x => x.c);var pp = t.Where(x => x.c == count).FirstOrDefault().k;Console.WriteLine("最大键:{0},最大值:{1}", pp, count);Console.WriteLine("--------------------------------");}

大量的测试结果表明,单个键最多不超过1100个分配,达到预期

Memcached单键超1M数据量的拆分设计及测试相关推荐

  1. oracle 删除主键_大数据量删除的思考 4

    译者  汤健 · 沃趣科技数据库技术专家 出品  沃趣科技 在本系列的前一期文章中,我制作了一些图,突出显示了按表扫描执行大量删除操作和按索引范围扫描执行大量删除之间的主要区别.根据所涉及的数据模式, ...

  2. 用户体验数据分析 书单_如何使用数据改善用户体验设计

    用户体验数据分析 书单 In the current age of technology, if an entrepreneur comes up with a grand idea, chances ...

  3. 大数据量下数据库设计及分库分表拆分原则

    在设计数据库的建设前,首先准备工作是了解业务,然后根据业务数据进行数据库设计,设计的同时需要考虑业务数据量.可改造性.数据弱一致性.读写分离.复杂SQL多样化等: 首先,可数据根据读弱一致性可以考虑添 ...

  4. android测试 课程设计,超星尔雅Android开发课程设计章节测试答案

    超星程设3.输送尿液的器官是 工厂电力线路的接线方式有.尔雅.. 一般情况下,发课工频的频率偏差一般不超过Hz 计章节测中性点接地是接地 对继电保护的基本要求包括.试答... 超星程设电力变压器的通常 ...

  5. 冷热分离和直接使用大数据库_用读写分离与分表分库解决高访问量和大数据量...

    原标题:用读写分离与分表分库解决高访问量和大数据量 一. 数据切分 关系型数据库本身比较容易成为系统瓶颈,单机存储容量.连接数.处理能力都有限.当单表的数据量达到1000W或100G以后,由于查询维度 ...

  6. web 折线图大数据量拉取展示方案_【第2010期】QQ音乐Android客户端Web页面通用性能优化实践...

    前言 今日早读文章由QQ音乐客户端开发工程师@关岳分享,公号:云加社区(ID:QcloudCommunity,腾讯云官方开发者社区)授权分享. 正文从这开始~~ QQ音乐 Android 客户端的 W ...

  7. 数据量不断增大的几种简单的优化方案

    文章目录 1.需求分析 2.思路分析 3.解决方法1--sql直接上(两张表各有200多条数据) 4.改进优化1.0--之前数据库的复杂操作放到内存中做 5.改进优化2.0--多线程应用,空间换时间 ...

  8. mysql 查询40w数据慢_MySQL 40W数据量查询时 使用order by效率过低 解决方案

    刚刚进入到程序员行业,文章旨在记录工作中遇到的各项问题,积累经验 刚接到一个任务 要求优化一段SQL语句 语句如下 [SQL]SELECT m.rd,m.certificate_num,m.agree ...

  9. mysql单张表数据量极限_极限数据量范围的安全测试

    mysql单张表数据量极限 When we develop security testing within inconsistent data volume situations, we should ...

最新文章

  1. MATLAB简易验证码识别程序介绍
  2. python 栈和队列 排序 初级数据结构
  3. 微信小程序 用户权限部分
  4. Dubbo:Dubbo入门---搭建一个最简单的Demo框架
  5. 朴素贝叶斯实现分类_关于朴素贝叶斯分类及其实现的简短教程
  6. mac怎么合并两个容器_Mac怎么合并文件夹?macz不容错过的苹果mac教程分享
  7. 将文件标记为 side-effect-free(无副作用)
  8. 后台cs代码控制html控件,cshtml中正则表达式使用后台代码
  9. web安全day32:人人都要懂的LAMP--mysql-server服务安装及安防配置
  10. if else终结者——策略模式
  11. Python字符串专项练习题(1-16)
  12. Codeforces Round #614 (Div. 2)A. ConneR and the A.R.C. Markland-N
  13. 运放自激震荡的大杂烩总结
  14. statsmodels︱python常规统计模型库
  15. 计算单目标跟踪器的平均CLE
  16. 微信h5页面不用服务器吗,你知道微信h5页面到底是个什么意思吗?
  17. Origin Pro 2018 的常用操作
  18. 何谓-全无线UWB定位系统
  19. mysql在线主从复制_一篇搞懂MySQL 8.0 Clone技术在线搭建主从复制全过程
  20. mysql my.cnf 不生效_MySQL修改my.cnf配置不生效的解决方法

热门文章

  1. 梦兴阁给我生活带来的改变
  2. 直播:Phoenix 全局索引原理与实践
  3. 电脑回收站的东西删了怎么恢复?60%的人都用过这2个方法
  4. Linux大全——Linux系统学习资源合集
  5. SpringBoot整合Mybatis-Plus入门案例
  6. 《华为项目管理法》读书笔记
  7. 应聘/求职----上海IT公司红黑榜TOP100
  8. python高级算法与数据结构:“你如何压缩一部英文著作”,一道来自大厂的真实面试题
  9. Python/Numpy 合并复数的实部和虚部
  10. 《Linux Kernel Development》读书笔记