宁可生命中多点挫折,也不愿意生命中只是铺满了鲜花,在我们将要咯嘣的那一刻,能够自豪的说一句,来过,今生无悔!
前文提到了以sql为key的数据层缓存,以及整表缓存的实体列表缓存,各自有其优缺点,适用于不同场合。 当单表数据较大(10万+)时,两者就无能为力了。天空一道巨响,对象字典缓存隆重登场! 对象字典缓存:以主键为key,缓存实体对象,以满足应用层的高频单点查询需求!
使用关系型数据库来做大数据,第一步必然是索引! 单表超过1000万数据,任何查询都必须走索引!否则数据库一定跟你说ByeBye!
前文提到了以sql为key的数据层缓存,以及整表缓存的实体列表缓存,各自有其优缺点,适用于不同场合。 当单表数据较大(10万+)时,两者就无能为力了。天空一道巨响,对象字典缓存隆重登场! 对象字典缓存:以主键为key,缓存实体对象,以满足应用层的高频单点查询需求!
在实际项目开发中,经常遇到有一些表数据很少(1000行以内),不会频繁修改(平均每行几个小时才会修改一次),例如配置表、分类表等。 这样的表,往往可以接受三五秒甚至更长的延迟,正是最适合使用缓存的地方。 实体缓存:一次性加载全表数据进入内存,供上层多维度查询!
缓存是一把尖刀,合理使用可大大提升吞吐率!
100亿数据其实并不多,一个比较常见的数据分表分库模型: MySql数据库8主8从,每服务器8个库,每个库16张表,共1024张表(从库也有1024张表) ,每张表1000万到5000万数据,整好100亿到500亿数据!
我的博客即将入驻“云栖社区”,诚邀技术同仁一同入驻。我不相信神话,我只相信汗水!我不相信命运,我只相信双手!
最近群里聊起秒杀和限流,我自己没有做过类似应用,但是工作中遇到过更大的数据和并发。 于是提出了一个简单的模型: var count = rds.inc(key); if(count > 1000) throw "已抢光!" 借助Redis单线程模型,它的inc是安全的,确保每次加一,然后返回加一后的结果。
大数据时代,海量数据分析就像吃饭一样,成为了我们每天的工作。为了更好的为公司提供运营决策,各种抖机灵甚至异想天开的想法都会紧跟着接踵而来!业务多变,决定了必须每天修改系统,重新跑数据,这就要求极高的海量数据读取和存储速度! 公司每天增加几亿行的业务日志数据,我们需要从中分析出各种维度的业务画像。
魔方是一套集成权限管理的MVC管理后台,最具特色功能是模版覆盖机制,是XCode实体类的最佳搭档! v2.0.2017.1126 借助Ajax支持高级操作,如:删除选中、批量启用禁用等 用户管理增加批量启用、批量禁用,看看效果: 选中要操作的行,上方工具栏的批量操作区域按钮会从灰变亮,(取消所有选中时该区域会变灰)。
Windows服务器多用户同时登录问题,仅提供要点,其它自行百度: 1,Windows Server 远程桌面默认只能2个连接 2,安装终端服务(远程桌面会话主机)、终端授权(远程桌面授权) 3,终端服务可以不限同时连接用户数,但是120天内必须激活授权 4,120天到期后,删改注册表下的项也许能够再次得到119天(实测1次),据说可能导致系统崩溃。
Cortex-Mx启动,备忘,以免将来忘记。中断向量表不用说,从重置中断开始吧 LDR R0, =SystemInit BLX R0 LDR R0, =__main BX R0 这里一共就执行了两个函数,SystemInit和__main。
SmartOS是一个完全由新生命团队设计的嵌入式操作系统,主要应用于智能家居、物联网、工业自动化控制等领域。ARM Cortex-M系列微处理器几乎全都做成单核心,对于业务逻辑较复杂的物联网就显得难以使用,因此SmartOS设计了两个多任务调度系统:1,多线程调度,重量级,逼近PC操作系统多线程用法。
设备身份验证有以下目标:1,别人的设备不能接入我们的云平台2,我们的设备,不能接入别人的云平台3,考虑到设备要批量生产,云平台先生成设备编码再写入每个设备的方法,非常不现实!那么,标准的设备身份验证应该是:1,设备上电联网后,需要一个激活过程2,设备向云平台申请激活,包括 厂商、生产批次、生产密码、...
以太网接入型设备,一般分为网线或WiFi两种。不管是WiFi还是网线,可以通过局域网抓包、笔记本WiFi桥接抓包等等手段。最著名的抓包软件 Wireshark如何抓取硬件设备的网络数据包,考量的是网络知识基本功,需要大家自行度娘!基本准备工作:1,Wireshark监听udp的53端口,一部分硬件设...
返回值优化,是一种属于编译器的技术,它通过转换源代码和对象的创建来加快源代码的执行速度。RVO = return value optimization。测试平台:STM32F103VG + Keil 5.
自2003年开始,断断续续用了12年C++,直到这两年做物联网嵌入式开发,感觉对C++的掌握仅有10%左右。习惯了C#开发,C++倒显得难以下手!今天就一个函数返回问题跟辉月兄弟讨论一番,大有所获,足以解决我们目前80%的问题,感觉对C++的掌握上升到了20%。
因为需要自动适配芯片进行系统配置,所以我们有必要通过读取一些系统寄存器来获取必要信息。我们的代码需要兼容STM32F1/GD32F1/STM32F0/STM32F4代码如下: #ifdef STM32F0XX void* p = (void*)0x1FFFF7AC; #el...
无数次遭受堆栈溢出折磨,随着系统变得复杂,故障点越来越难以查找!主要溢出情况如下:1,一般RAM最后两块空间是堆Heap和栈Stack,堆从下往上用,栈从上往下用,任意一个用完,都会进入对方的空间2,如果栈用完,进入堆的空间,这个时候系统是不会有任何异常的,也就是说,栈底没有什么意义。
先来看看我们SmartIRQ的具体实现 // 智能IRQ,初始化时备份,销毁时还原 class SmartIRQ { public: force_inline SmartIRQ(bool enable = false) { _state = __ge...
在测试MF固件时,发生一个非常诡异的异常,代码如下: CLR_DBG_Commands::Monitor_EraseMemory* cmd = (CLR_DBG_Commands::Monitor_EraseMemory*)msg->m_payload; debug_printf("EraseMemory addr=0x%08x len=%d\r\n", cmd->m_address, cmd->m_length); 指定第二行代码时,会跳到异常处理程序,发生了6号异常(用法异常Usage Fault)我对ARM还是非常陌生,不知道怎么可能发生这个问题。
在2015年7月16日,XCode新增了实体处理模块IEntityModule,用于拦截实体对象添删改操作。 该接口参考IHttpModule设计理念,横切在实体对象的关键生命周期之中,以达到多实体类通用处理的效果。
网络客户端ISocketClient和网络会话ISocketSession都继承了ISocketRemoteISocketRemote表示远程通信,核心就是收发数据。下面是ISocketRemote接口的主要实现 /// 远程通信Socket,仅具有收发功能 public interface...
新生命团队基础框架X组件,包括网络、数据库、安全、多线程、反射、序列化、模版引擎、服务代理、远程过程调用等模块,包括Mvc后台魔方、超级码神工具、消息队列等子系统,支持Mono/Android/iOS/NetStandard。
SQLite单表4亿订单,大数据测试 SQLite作为嵌入式数据库的翘楚,广受欢迎!新生命团队自2010年以来,投入大量精力对SQLite进行学习研究,成功应用于各系统非致命数据场合。 SQLite极致性能 关闭同步,Synchronous=Off,提升性能。
SQLite什么都好,就怕“database is locked”这些年来想尽办法去规避它。测试代码: static void Test2() { XCode.Setting.Current.
魔方 是一个基于 ASP.NET MVC 的 用户权限管理平台,可作为各种信息管理系统的基础框架。 演示:http://cube.newlifex.com 源码 演示账号:admin/admin 源码: https://git.
XCode天生就有分表分库功能,设计于2005年!历时9年,这是分表分库功能第一次针对性正式更新。在XCode里面,分表分库非常简单,在操作数据(查询/更新)前修改Meta.ConnName/Meta.TableName,指向别的连接字符串和表名,就实现了分表分库功能!实际上,XCode实体层构建数据操作SQL(Select/Insert/Update/Delete)时,依赖于Meta.TableName,执行SQL时,依赖于Meta.ConnName。
2008年4月到上海,约好了待遇五千多的一家公司,地铁8号线西藏北路附近。面试的时候才得知,试用期无工资, 每天50块钱饭贴,转正后2k。公司不大,主要接别的公司分出来的项目。因为是好友介绍的,我觉得可能是对方没有真正的了解我,留下 HttpProxy/XProxy源码后我就离开了。
快要毕业了,最后一年基本待在实验室做毕业设计。导师严老师认识的一个项目刚好缺一个做网站的, 就让我帮一下忙。需要去跟客户沟通获取需求,我觉得这是一个很好的学习的机会,没想太多,就做了!几个月后,老师把我叫进机房,项目组老师也在,交给我厚 厚一叠钱。
跟朋友聊天,说到早些年怎么赚钱。 我第一个想起的是2003年,在广西大学空谷社区技术部,被派去帮校友会维护校友会网站(ASP+SQL2000),搞了几个月。某一天技术部部长拿给我50块RMB,我甭提多高兴!这可是我这辈子第一次赚到钱呀!!!于是请好兄弟双喜和曹灿到超市吃了一根冰棍。
新生命开发团队大石头讲解网络异步编程(C#) 内容:网络编程基础、IOCP、APM、SAEA 时长:2~3小时 价格:20元,20人及以上成团,http://item.taobao.com/item.
借斯巴达之际,今天在QQ群1600838直播MF移植环境的准备工作,大家可随时询问移植相关问题!如果对MF移植之前的东西有疑问,请看论坛置顶帖.Net Micro Framework导航总贴(新手必看)硬件:STM32F103ZET6/STM32F103VET6,采用这两种MCU的任何开发板、学习板、核心板……软件环境:系统:Win7 x86 其它系统我不肯定行不行,我两个都是Win7x86,估计WinXP也行。
一些系统,需要能够发送短信,量很小,平均每日10条。运营商平台太贵,白名单很严格,小额只能发省内;各短信平台有各种限制,大事件前后会关闭;飞信以前可以用WAP发,但是现在多了验证码,搞不定了;短信猫买来还得写控制程序,价钱和时间上…… 手上有两部废弃的WM手机,没有故障,只是老旧不好用! 有一个...
通过《C#点灯神话》,我们了解到单片机最基础的输入输出功能,也就是所谓的GPIO。 这一次,我们来点更多的“灯”——数码管,并且还是四位数码管。 先上结果,看视频: 这个视频混合了四位数码管、液晶屏和跑马灯,比上一次的小灯闪烁要效果好点。
如同学习每一门编程语言的Hello World!一样,点灯自然成了单片机入门的HelloWorld。因为单片机上的HelloWorld实在是太难了! 在电子上只有电压电流之类的概念,而对于单片机来说,我们可以认为0代表低电压(低电平、接地),1代表高电压(高电平)。
因为探索者一号供不应求,远超预期,并且我们自己设计制造的成本太高,所以没有再次生产。而是选择较高性价比的第三方STM32开发板作为MF学习板,是为探索者二号。因此,二号并不是一号的改进版,它们压根就不同,甚至MCU(处理器)都不同。
MF全称Microsoft® .NET Micro Framework,是微软推出的一个微型.Net框架,微型到什么程度呢?它自身就可以是一个操作系统OS,它编译出来的程序,就可以直接跑在硬件上,当然,也可以在别的嵌入式系统(如UCOS)上用它,MCU才不管什么操作系统呢,找到第一条指令就开始执行,到哪算哪。
这是STM通用的刷固件方法,不仅仅适用于.Net Micro Framework,支持我们当前所有板子,包括阿波罗、探索者和雅典娜三个系列。 单片机可以看做是CPU、内存和硬盘的集合体,其中的Flash就是硬盘,RAM就是内存。
X组件只是一个工具,一个约束,集成了2002年新生命团队建立以来数千人的智慧,所以我们谈不上创新,我们充其量只是管理者,收集消化大家的技术,整理起来给更多的人使用。我们希望建立一套大部分人比较容易接受的标准,让大家在这个标准之内开发组件开发项目,让大家的项目具有一致的风格,让大家都能够很容易的相互合作,做项目,赚钱!X组件采用自动编译发布到FTP的方式,所以可以在FTP拿到最新的X组件发行版。
因为采购液晶屏的时候没有告诉厂家要母头,结果厂家默认发了公头的,然后开发板上的接头也是公头,从而无法连接。 心急之下,到电子城做了一批排线,两头插座,中间排线,把开发板和液晶屏连起来,然后我没有测试。
自从发布了一篇博客Oracle免客户端For .Net(增加分析Devart和DataDirect)后,非常非常多的同学前来问各种Oracle客户端运行时安装配置的问题,严重影响了我们团队的正常工作和日常交流。
用法: ? 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 DAL.AddConnStr("xxgk", "Data Source=192.
与其它ORM框架相比,XCode拥有最强的多数据库正向反向工程,暂时还没有发现能在这点上超于XCode的,哈哈!但是,XCode的多数据库反向工程,也是有代价的,不同数据库的数据类型相差十万八千里,我们不可能完全支持。
开始进入工业自动化,买的工控机带有GPIO接口,可用于直接控制继电器。 从厂家拿到接口手册一看,居然是汇编直接操作端口,基本上是IN/OUT指令了。接口很简单,计算位移,读取;计算位移,写入。 这种接口,常见有四种办法,分别是四种语言实现,一是直接写ASM,不过要公开给C#做的应用程序调用,很不容易,另外三种是C/C++/Delphi嵌入汇编,倒是问题不大。
背景: 两个实体类:租房图片、售房图片 这两个表用于存储房源图片记录,一个房源对应多个图片,两个表的差别就在于一个业务关联字段。 租房图片中的RentID记录这个图片属于哪个租房信息; 售房图片中的SaleID记录这个图片属于哪个售房信息。
XCode之第一次亲密接触 首先得说明,本教程仅用于让第一次接触XCode的朋友了解XCode,不具有任何别的实际意义,真正的项目也不会采取这种开发方式,而采用更先进、快速而强大的开发方式。 NewLife.XCode是一个数据映射框架,包括但大于ORM的范围。
数据映射组件XCode优势 XCode是一个超越了ORM范围的映射组件,除了对象到关系数据库的映射外,还有到网络和其它二进制形式等的映射,所以称之为数据映射组件。 相对于国内外其它ORM,XCode具有以下优势: 1,采用最好的分页算法,高效处理海量数据。
昨晚做了一个梦,很长!梦到回到大学时代,我跟很多一样年纪的人,“潜入”(抱歉,实在没有更好的词)清华大学计算机系。并且我们这些冒牌跟正规清华学生一起上课。后来因为“潜入”的人实在太多,是正规生的两三倍之多,我们被校长(Or系主任)领到一个广场,包括正规生,还做了一个不短的演讲。
目的:测试XCode v8.0的正常反向功能。 正向工程:从数据库读取架构信息,生成实体类。 反向工程:根据实体类的特性构造架构信息,反向生成数据库或者修改数据库。 准备工作: 1,自备数据库实例,最好是自己的数据库,为了测试各种数据库的各种字段能否被识别为正确的.Net类型(正向工程),同时也测试.Net类型能否正确转为对应的数据库类型(反向工程)。