精华内容
下载资源
问答
  • 使用Stackelberg游戏的D2D无线缓存
  • D2D网络中最优分布式协作混合缓存的博弈论方法
  • 考虑了集成D2D通信的雾无线接入网,提出了一种基于D2D通信和雾无线接入网的双层分布式缓存布置,希望以此降低用户下载文件的时延。首先得到了这种双层缓存的下载时延的闭式解以及这种布置方案相对于单层缓存布置方案...
  • 基于匹配理论的支持D2D的蜂窝网络的社交意识内容缓存
  • 在MFC下用D2D做一个动画程序,为了提高效率,预生成一个背景刷子,重画时直接刷背景,高效。窗口尺寸变化时,重建背景刷子,但是原来的刷子没有释放,缩放几次窗口,内存就占到几百光兆。请问实时释放D2D资源? // ...
  • 在探讨D2D对通信技术未来发展的导向作用基础上,明确了影响D2D系统设计的多个因素,即D2D设备发现、资源分配、缓存技术、D2D-MIMO。从而勾画出基于D2D技术的光纤前传和软件定义网络实现数据/控制分离的扁平化5G 架构...
  • 在探讨D2D对通信技术未来发展的导向作用基础上,明确了影响D2D系统设计的多个因素,即D2D设备发现、资源分配、缓存技术、D2D-MIMO。从而勾画出基于D2D技术的光纤前传和软件定义网络实现数据/控制分离的扁平化5G架构,...
  • 设备到设备(D2D)数据共享已经成为一种很有前途的卸载蜂窝网络流量的解决方案,但数据共享伙伴的隐私脆弱性和服务不稳定性影响着共享服务的质量。针对这个问题,提出一种基于隐私度和稳定度的D2D数据共享伙伴选择...
  • 针对Nakagami-m衰落信道中,D2D(device to device)通信频谱利用率低的问题,设计一种基于非数据辅助误差矢量幅度(NDA-EVM,nondata-aided error vector magnitude)的自适应调制算法。以NDA-EVM作为信道质量评估...
  • 神舟k610d i7 d2-->efi

    2019-02-12 11:45:10
    macos Mojave 10.14.3可用,安装成功出现花屏,重建缓存即可!
  • https://mp.weixin.qq.com/s?__biz=MzAxODcyNjEzNQ==&mid=2247484619&idx=1&sn=beb66d7d52cca362530998cf8f2cf5e2&chksm=9bd0a953aca720454c5ef70225cca151043dd04e21f41d2ac76414a3c823eae1832687fe8287&mpshare=1&

    https://mp.weixin.qq.com/s?__biz=MzAxODcyNjEzNQ==&mid=2247484619&idx=1&sn=beb66d7d52cca362530998cf8f2cf5e2&chksm=9bd0a953aca720454c5ef70225cca151043dd04e21f41d2ac76414a3c823eae1832687fe8287&mpshare=1&scene=1&srcid=1227MapJHvgD4rdLAHzVfdi8&key=353b6d2bc7326027d36a2238ff5b404c43dafd506bf877269ee89897972626e1ffba099e8066daa94ea7431977b77a50dd30c7d21c6e725ecaa0fde87412b3a371eef4d20359e68b787affefdc132c00&ascene=0&uin=MTA2NzUxMDAyNQ%3D%3D&devicetype=iMac+MacBookAir6%2C2+OSX+OSX+10.10.5+build(14F2511)&version=11020012&lang=zh_CN&pass_ticket=gfM%2FHN7qWQGyVfb3ieWWE2P0b3We2%2BLqhiDX3aqQTeB86K3m1Uxg%2F0%2FaOEhca1Ml




    缓存穿透、缓存并发、热点缓存之最佳招式 

    2017-12-27 程超       


    程序猿DD




    程序猿DD


    一、前言

    我们在用缓存的时候,不管是Redis或者Memcached,基本上会通用遇到以下三个问题:

    • 缓存穿透

    • 缓存并发

    • 缓存失效

    缓存穿透

    上面三个图会有什么问题呢?

    我们在项目中使用缓存通常都是先检查缓存中是否存在,如果存在直接返回缓存内容,如果不存在就直接查询数据库然后再缓存查询结果返回。这个时候如果我们查询的某一个数据在缓存中一直不存在,就会造成每一次请求都查询DB,这样缓存就失去了意义,在流量大时,可能DB就挂掉了。 那这种问题有什么好办法解决呢?

    要是有人利用不存在的key频繁攻击我们的应用,这就是漏洞。

    有一个比较巧妙的作法是,可以将这个不存在的key预先设定一个值。

    比如,"key" , “&&”。

    在返回这个&&值的时候,我们的应用就可以认为这是不存在的key,那我们的应用就可以决定是否继续等待继续访问,还是放弃掉这次操作。如果继续等待访问,过一个时间轮询点后,再次请求这个key,如果取到的值不再是&&,则可以认为这时候key有值了,从而避免了透传到数据库,从而把大量的类似请求挡在了缓存之中。

    缓存并发

    有时候如果网站并发访问高,一个缓存如果失效,可能出现多个进程同时查询DB,同时设置缓存的情况,如果并发确实很大,这也可能造成DB压力过大,还有缓存频繁更新的问题。

    我现在的想法是对缓存查询加锁,如果KEY不存在,就加锁,然后查DB入缓存,然后解锁;其他进程如果发现有锁就等待,然后等解锁后返回数据或者进入DB查询。

    这种情况和刚才说的预先设定值问题有些类似,只不过利用锁的方式,会造成部分请求等待。

    缓存失效

    引起这个问题的主要原因还是高并发的时候,平时我们设定一个缓存的过期时间时,可能有一些会设置1分钟啊,5分钟这些,并发很高时可能会出在某一个时间同时生成了很多的缓存,并且过期时间都一样,这个时候就可能引发一当过期时间到后,这些缓存同时失效,请求全部转发到DB,DB可能会压力过重。

    那如何解决这些问题呢?

    其中的一个简单方案就时讲缓存失效时间分散开,比如我们可以在原有的失效时间基础上增加一个随机值,比如1-5分钟随机,这样每一个缓存的过期时间的重复率就会降低,就很难引发集体失效的事件。

    我们讨论的第二个问题时针对同一个缓存,第三个问题时针对很多缓存。

    总结来看:

    1. 缓存穿透:查询一个必然不存在的数据。比如文章表,查询一个不存在的id,每次都会访问DB,如果有人恶意破坏,很可能直接对DB造成影响。

    2. 缓存失效:如果缓存集中在一段时间内失效,DB的压力凸显。这个没有完美解决办法,但可以分析用户行为,尽量让失效时间点均匀分布。

    当发生大量的缓存穿透,例如对某个失效的缓存的大并发访问就造成了缓存雪崩。

    问题汇总

    问题1:

    如何解决DB和缓存一致性问题?

    答:当修改了数据库后,有没有及时修改缓存。这种问题,以前有过实践,修改数据库成功,而修改缓存失败的情况,最主要就是缓存服务器挂了。而因为网络问题引起的没有及时更新,可以通过重试机制来解决。而缓存服务器挂了,请求首先自然也就无法到达,从而直接访问到数据库。那么我们在修改数据库后,无法修改缓存,这时候可以将这条数据放到数据库中,同时启动一个异步任务定时去检测缓存服务器是否连接成功,一旦连接成功则从数据库中按顺序取出修改数据,依次进行缓存最新值的修改。

    问题2:

    问下缓存穿透那块!例如,一个用户查询文章,通过ID查询,按照之前说的,是将缓存的KEY预先设置一个值,,如果通过ID插过来,发现是预先设定的一个值,比如说是“&&”,那之后的继续等待访问是什么意思,这个ID什么时候会真正被附上用户所需要的值呢?

    答:我刚说的主要是咱们常用的后面配置,前台获取的场景。前台无法获取相应的key,则等待,或者放弃。当在后台配置界面上配置了相关key和value之后,那么以前的key &&也自然会被替换掉。你说的那种情况,自然也应该会有一个进程会在某一个时刻,在缓存中设置这个ID,再有新的请求到达的时候,就会获取到最新的ID和value。

    问题3:

    其实用redis的话,那天看到一个不错的例子,双key,有一个当时生成的一个附属key来标识数据修改到期时间,然后快到的时候去重新加载数据,如果觉得key多可以把结束时间放到主key中,附属key起到锁的功能。

    答:这种方案,之前我们实践过。这种方案会产生双份数据,而且需要同时控制附属key与key之间的关系,操作上有一定复杂度。

    问题4:

    多级缓存是什么概念呢?

    答:多级缓存就像我今天之前给大家发的文章里面提到了,将ehcache与redis做二级缓存,就像我之前写的文章 http://www.jianshu.com/p/2cd6ad416a5a 提到过的。但同样会存在一致性问题,如果我们需要强一致性的话,缓存与数据库同步是会存在时间差的,所以我们在具体开发的过程中,一定要根据场景来具体分析,二级缓存更多的解决是,缓存穿透与程序的健壮性,当集中式缓存出现问题的时候,我们的应用能够继续运行。

    说明:本文中提到的缓存可以理解为Redis。

    二、缓存穿透与并发方案

    上文中介绍了关于缓存穿透、并发的一些常用思路,但是没有明确一些思路的使用场景,下面继续深入探讨。相信不少朋友之前看过很多类似的文章,但是归根结底就是二个问题:

    • 如何解决穿透

    • 如何解决并发

    当并发较高的时候,其实我是不建议使用缓存过期这个策略的,我更希望缓存一直存在,通过后台系统来更新缓存系统中的数据达到数据的一致性目的,有的朋友可能会质疑,如果缓存系统挂了怎么办,这样数据库更新了但是缓存没有更新,没有达到一致性的状态。

    解决问题的思路是: 如果缓存是因为网络问题没有更新成功数据,那么建议重试几次,如果依然没有更新成功则认为缓存系统出错不可用,这时候客户端会将数据的KEY插入到消息系统中,消息系统可以过滤相同的KEY,只需保证消息系统不存在相同的KEY,当缓存系统恢复可用的时候,依次从mq中取出KEY值然后从数据库中读取最新的数据更新缓存。注意:更新缓存之前,缓存中依然有旧数据,所以不会造成缓存穿透。

    下图展示了整个思路的过程:

    看完上面的方案以后,又会有不少朋友提出疑问,如果我是第一次使用缓存或者缓存中暂时没有我需要的数据,那又该如何处理呢?

    解决问题的思路: 在这种场景下,客户端从缓存中根据KEY读取数据,如果读到了数据则流程结束,如果没有读到数据(可能会有多个并发都没有读到数据),这时候使用缓存系统中的setNX方法设置一个值(这种方法类似加个锁),没有设置成功的请求则sleep一段时间,设置成功的请求读取数据库获取值,如果获取到则更新缓存,流程结束,之前sleep的请求这时候唤醒后直接再从缓存中读取数据,此时流程结束。

    在看完这个流程后,我想这里面会有一个漏洞,如果数据库中没有我们需要的数据该怎么处理,如果不处理则请求会造成死循环,不断的在缓存和数据库中查询,这时候我们会沿用我之前文章中的如果没有读到数据则往缓存中插入一个NULL字符串的思路,这样其他请求直接就可以根据“NULL”进行处理,直到后台系统在数据库成功插入数据后同步更新清理NULL数据和更新缓存。

    流程图如下所示:

    总结:在实际工作中,我们往往将上面二个方案组合使用才能达到最佳效果,虽然第二种方案也会造成请求阻塞,但是只是在第一次使用或者缓存暂时没有数据的情况下才会产生,在生产中经过检验在TPS没有上万的情况下是不会造成问题的。

    三、热点缓存解决方案

    1、缓存使用背景:

    我们拿用户中心的一个案例来说明: 每个用户都会首先获取自己的用户信息,然后再进行其他相关的操作,有可能会有如下一些场景情况:

    • 会有大量相同用户重复访问该项目。

    • 会有同一用户频繁访问同一模块。

    2、思路解析

    • 因为用户本身是不固定的而且用户数量也有几百万尤其上千万,我们不可能把所有的用户信息全部缓存起来,通过第一个场景情况可以看到一些规律,那就是有大量的相同用户重复访问,但是究竟是哪些用户重复访问我们也并不知道。

    • 如果有一个用户频繁刷新读取项目,那么对数据库本身也会造成较大压力,当然我们也会有相关的保护机制来确实恶意攻击,可以从前端控制,也可以有采黑名单等机制,这里不在赘述。如果用缓存的话,我们又该如何控制同一用户繁重读取用户信息呢。

    请看下图:

    我们会通过缓存系统做一个排序队列,比如1000个用户,系统会根据用户的访问时间更新用户信息的时间,越是最近访问的用户排名越排前,系统会定期过滤掉排名最后的200个用户,然后再从数据库中随机取出200个用户加入队列,这样请求每次到达的时候,会先从队列中获取用户信息,如果命中则根据userId,再从另一个缓存数据结构中读取用户信息,如果没有命中则说明该用户请求频率不高。

    JAVA伪代码如下所示:

    for (int i = 0; i < times; i++) {     user = new ExternalUser();     user.setId(i+"");     user.setUpdateTime(new Date(System.currentTimeMillis()));     CacheUtil.zadd(sortKey, user.getUpdateTime().getTime(), user.getId());     CacheUtil.putAndThrowError(userKey+user.getId(), JSON.toJSONString(user)); } Set<String> userSet = CacheUtil.zrange(sortKey, 0, -1); System.out.println("[sortedSet] - " + JSON.toJSONString(userSet) ); if(userSet == null || userSet.size() == 0)     return; Set<Tuple> userSetS = CacheUtil.zrangeWithScores(sortKey, 0, -1); StringBuffer sb = new StringBuffer(); for(Tuple t:userSetS){     sb.append("{member: ").append(t.getElement()).append(", score: ").append(t.getScore()).append("}, "); } System.out.println("[sortedcollect] - " + sb.toString().substring(0, sb.length() - 2)); Set<String> members = new HashSet<String>(); for(String uid:userSet){     String key = userKey + uid;     members.add(uid);     ExternalUser user2 = CacheUtil.getObject(key, ExternalUser.class);     System.out.println("[user] - " + JSON.toJSONString(user2) ); } System.out.println("[user] - "  + System.currentTimeMillis()); String[] keys = new String[members.size()]; members.toArray(keys); Long rem = CacheUtil.zrem(sortKey, keys); System.out.println("[rem] - " + rem); userSet = CacheUtil.zrange(sortKey, 0, -1); System.out.println("[remove - sortedSet] - " + JSON.toJSONString(userSet));
    

    作者:小程故事多 原文:https://www.jianshu.com/p/d96906140199

    新书推荐:《深入分布式缓存:从原理到实践》


    展开全文
  • 访问此链接:...mid=2247483802&idx=3&sn=042e90dfce5053f7373d2bab9d42069d&chksm=ec20694ddb57e05b503cb9ef28e16abb6a3d53a071c4361357a530953da95776c...

    访问此链接:https://mp.weixin.qq.com/s?__biz=MzI5MDM1NzY4OA==&mid=2247483802&idx=3&sn=042e90dfce5053f7373d2bab9d42069d&chksm=ec20694ddb57e05b503cb9ef28e16abb6a3d53a071c4361357a530953da95776c4b300f07c3d&token=451087412&lang=zh_CN#rd

    展开全文
  • 原文地址: 浅谈页面静态化、缓存技术与SEO http://iecspace.ecjtu.org/posts/staticize-cache-seo Apache Rewrite规则详解 ... PHP-OB缓存 http://ziliao1.com/Article/Show/B39E37D7980C4DC959980D2...

    原文地址:

    浅谈页面静态化、缓存技术与SEO  http://iecspace.ecjtu.org/posts/staticize-cache-seo

    Apache Rewrite规则详解  http://www.ha97.com/3460.html

    PHP-OB缓存    http://ziliao1.com/Article/Show/B39E37D7980C4DC959980D2DEC058FA0

     

    浅谈页面静态化、缓存技术与SEO

          这篇文章主要是想谈谈页面静态化、缓存技术与SEO之间的关系,在此之前有必要先解释一下这三个词的概念。

    • 页面静态化:我们大多数情况下是直接访问php文件,php脚本在服务器端执行并返回信息,对于一些大型网站,访问量很大,频繁的动态操作和数据库操作会加重服务器的负担。这种情况下,我们通常会使用缓存技术或页面静态化来解决。页面静态化又分为真静态和伪静态。真静态是指将php文件通过程序控制生成html页面,从而就无需访问数据库;伪静态只是把网址静态化,(如果没有做缓存)访问时依然需要每次操作数据库。
    • 缓存(cache)技术:通常,我们获取动态信息有三种方式:1.从数据库获取;2.从文件获取;3.将信息保存在内存,直接从内存获取,即我们通常所说的缓存(php中的缓存技术通常使用ob已及memcached)。其效率在同等数据量信息下是1<2<3。虽然使用缓存技术将耗费大量内存,但是,庆幸的是内存的市场价现慢慢变的可接受,因此以资源换取效率变的很理性与简单。
    • SEO:中文译为搜索引擎优化,是较为流行的网络营销方式,主要工作是通过了解各类搜索引擎如何抓取互联网页面、如何进行索引以及如何确定其对某一特定关键词的搜索结果排名等技术,来对网页进行相关的优化,使其提高搜索引擎排名,从而提高网站访问量,最终提升网站的销售能力或宣传能力的技术。

          从大的方向来说,大型网站的提速一般是通过页面静态化、缓存技术(主要指memcached)、mysql优化三个方面来实现。同时,提速经常又需要考虑现实状况,比如SEO问题、静态页面是否需要及时更新、大量产生静态页面后导致的文件堆积问题等等,于是这些矛盾就引出了我们今天的话题。

          页面静态化(这里特指真静态)能够明显地提高网站的访问效率,并且无论是真静态还是伪静态对于SEO来说都是非常有利的。因为搜索引擎对静态页面“情有独钟”,蜘蛛爬虫很乐意去爬取静态网页的内容,而对于动态网页,诸如php页面,搜索引擎总认为去检索页面信息很麻烦,而且为了尽量抓取有意义的页面内容,总是要对动态页面抓取多次,如此一来,对页面的收录效率就会相对降低,即对SEO有了负面的影响。还有,从安全的角度来说,静态页面更不容易被SQL注入攻击。因此,为了提高访问效率,同时利于SEO,增强安全性,我们通常需要将动态页面静态化。

          如果采用真静态,访问页面提供的是静态链接,可以减少服务器对数据响应的负荷,二次加载时不用调动数据库。响应处理过程是如果当前链接指定的静态页面存在,则直接访问静态页面,否则视为第一次访问,创建这个静态页面,并保存。在创建的过程中,又可以引入模板、ob缓存机制,甚至是memcached技术。可能大家会想,那如果是大型网站,由于信息量和访问量都是海量数据级别的,那么岂不是会随着时间的推移产生大量的静态页面,即冗余文件大量堆积,空间占用比较大,而且,毋庸置疑的是可能某些文件用于不会再被使用。这种情况下,我们通常可以根据需要,设定相应的处理规则,根据规则开发对应程序,比如定时执行任务计划,删除冗余文件,或者当原有数据库内信息被修改时,也同时修改对应静态文件等等,这样就可以在很大程度上缓解压力。必须提出的是,由于访问的都是静态页,对SEO来说,真静态确实是一种较佳的选择。

          无论怎么处理,真静态都会必不可免地产生堆积内容,这时候,往往我们会想到伪静态方法。

          伪静态提供的也是静态链接,但是需要注意的是其实际访问的依然是动态页面。那么,伪静态有什么作用呢?正如之前的介绍,由于链接是静态的,这对于SEO来说还是很有利的,而且,一定程度上提高的安全性。至于访问效率的提高,我们依然可以使用ob缓存机制来提升访问效率。与真静态相比,伪静态避免产生海量的静态页面。实现伪静态的方法有很多,在IIS下有rewrite规则、Apache下有rewrite规则,甚至可以通过正则表达式使用PHP脚本直接处理。然而通常我们选用rewrite规则来实现伪静态。(实现过程略)

           那么如何选择使用真静态还是伪静态呢?

    • 网站实时性要求比较高,不要使用页面静态化(真静态、伪静态均不适宜)
    • 如果网站访问量较小,没有必要使用静态化技术
    • 如果数据项目不多,但是访问频率极大,建议使用真静态,如新浪新闻频道
    • 如果数据醒目海量使用真静态会生成海量的html静态页面,建议使用伪静态

    小结:如果一个网页会被频繁地访问(比如百万级别),通过该网页每次都会去操作数据库,可以考虑使用真静态;如果一个网页为了实现对搜索引擎的优化,提高网站的安全性,考虑使用伪静态(+缓存机制)。

     

     

    展开全文
  • ^(w3c\ |w3c-|acs-|alav|alca|amoi|audi|avan|benq|bird|blac|blaz|brew|cell|cldc|cmd-|dang|doco|eric|hipt|htc_|inno|ipaq|ipod|jigs|kddi|keji|leno|lg-c|lg-d|lg-g|lge-|lg/u|maui|maxo|midp|mits|mmef|mobi|...
  • 论文1:启用缓存D2D网络中用于内容缓存的深度强化学习方法 Li L, Xu Y, Yin J, et al. Deep Reinforcement Learning Approaches for Content Caching in Cache-Enabled D2D Networks[J]. IEEE Internet of Things...

    论文1:启用缓存的D2D网络中用于内容缓存的深度强化学习方法

    Li L, Xu Y, Yin J, et al. Deep Reinforcement Learning Approaches for Content Caching in Cache-Enabled D2D Networks[J]. IEEE Internet of Things Journal, 2020, 7(1): 544-557.

    摘要:物联网(lot)技术面临着这样的挑战,即稀有的无线网络资源难以满足大量终端设备的涌入.支持缓存的设备到设备(D2D)通信技术有望减轻网络压力,因此可以从附近的用户获得请求的内容.但是,由于有限的内容存储容量的限制和用户移动模式的不确定性,对于如何设计有效的缓存策略变得有挑战性.
    本文研究启用缓存的D2D网络的联合缓存内容放置和传递策略.具体来说,采用两种递归神经网络方法(回声状态网络(ESN),长短期记忆网络(LSTM))来预测用户的移动性和内容受欢迎程度,确定要缓存的内容以及要缓存的位置.
    当用户的本地缓存无法满足自己的请求时,用户可以考虑与相邻用户建立D2D链接以实现内容传递.为了坚定将选择哪个用户建立D2D链接.我们提出了基于深度强化学习的新方案,以实现内容交付问题的动态决策和优化,旨在提高整体缓存系统的体验质量.仿真结果表明,该方法可以很好地提高系统的缓存命中率.提出的内容交付方法可以有效减少请求内容交付的延迟和能耗.

     

    论文2:论储层计算在人气预测中的应用

    T. Wu, M. Timmers, D. De Vleeschauwer, and W. Van Leekwijck. On the use of reservoir computing in popularity prediction. In Proc. Conference on Evolving Internet, 2010.

    题目:论储层计算在人气预测中的应用
    摘要:使用一种新颖的神经网络技术,根据给定的视频历史观看数来预测其流行度.数据集是连续获取在Youtube上的流行视频数据.实验结果表明该模型输入具有10天的数据则能预测第二天的流行度.相对误差小于5%.
    建模:
    根据早期的观看数据预测其流行度.围绕这个任务使用一种新颖的神经网络技术.
    针对此任务提出几种分析模型,包括线性相关,对数变换的线性相关,幂律或指数衰减模型。
    使用一种新颖的神经网络技术,即RC解决该问题.RC源自递归神经网络(RNN),避免RNN众所周知的局限性.例如迭代参数优化和收敛条件.在时间序列预测,模式分类,事件检测等表现出色.
    RC-RNN:递归神经网络衍生而来,但它也是RNN的一种截然不同的方法。首先,极大地简化了RNN的训练方法.避免使用梯度下降法寻找局部最优解。 二,不需要全局参数优化程序.所以计算成本非常小.
    模型:
    RC-RNN

    数据集收集:

    使用Youtube提高的api,从2008年7月20日至12月31日进行每日监控.监控最长时间是160天.最终完整的数据只有1728个.

    展开全文
  • 边缘计算和D2D通信的背景A. 边缘计算出现B. MEC范式C. D2DIII. 终端设备增强MEC计算卸载A. 概述B. 最小化时延C. 能量最小化D. 能量和时延联合优化E. 容量增强F. 保密性增强G. 总结IV. 终端设备带缓存的增强型MECA. ...
  • MEC服务器选址2:MEC网络架构3:MEC服务器密度规划二、 支持缓存的MEC1:用于MEC资源分配的服务缓存:2:用于MEC数据分析的数据缓存三、MEC的移动管理1:可移动感知的在线预取2:使用D2D通信的移动感知卸载3:支持...
  • 为突出主要内容(基础...在STM32内部建立128*8个字节的缓存,修改时只修改STM32上的缓存(SRAM),修改后**一次性把STM32缓存数据写入OLED的GRAM SSD1306命令 序号 指令 D7 D6 D5 D4 D3 D2 D1 D0 命令 说明 0
  • 学习周报1

    2020-12-10 12:04:56
    基于D2D-ECN的任务卸载和能量调度策略研究2.面向车辆边缘计算网络的计算迁移策略研究3.移动感知的边缘合作缓存策略研究4.区块链赋能的分布式计算迁移系统设计基于区块链的可信分布式计算平台的设计与实现出现的问题...
  • 2004-2010软考程序员真题

    热门讨论 2012-09-27 12:33:00
     A)硬盘中的一块区域 B)软盘中的一块区域 C)高速缓存中的一块区域 D)内存中的一块区域  26、下面是关于Windows 98文件名的叙述,错误的是  A)文件名中允许使用汉字 B)文件名中允许使用多个圆点分隔符  C)文件名...
  • 说明:将主键或唯一字段设置为键,常用于缓存、免遍历等需要提高执行和开发效率的地方。返回值为 Object 类型。 Objs(输入数据).keyObj(主键或唯一字段); 示例代码: // 从员工数据中获取ID和值对象的对照表 Objs...
  • 9.2 迭代D2:创建基于Ajax的购物车 94 9.3 迭代D3:高亮显示变化 97 9.4 迭代D4:隐藏空购物车 99 9.5 迭代D5:JavaScript被禁用时的对策 101 9.6 我们做了什么 102 第10章 任务E:付账 105 10.1 迭代E1:收集订单...
  • //缓存接收到的数据 reg step ; //数据采集状态 reg [5:0] data_cnt ; //接收数据用计数器 reg dht11_buffer; //DHT11输出信号 reg dht11_d0 ; //DHT11输入信号寄存器0 reg dht11_d1 ; //DHT11输入信号寄存器1 //...
  • Node.js关于Stream的理解

    2020-12-08 19:35:53
    流的示意图" src="http://7xjw3r.com1.z0.glb.clouddn.com/image/e/b9/07d19321d2aa50a6853acbb543fbc.png" /></p> 目前node.js(4.0)的流分为4种,Readable,Writeable,Duplex,Transform,...
  • 9.2 迭代D2:创建基于Ajax的购物车 91 9.3 迭代D3:高亮显示变化 94 9.4 迭代D4:隐藏空购物车 96 9.5 迭代D5:JavaScript被禁用时的对策 99 9.6 我们做了什么 99 第10章 任务E:付账! 101 10.1 迭代E1:收集订单...
  • 一文带你搞懂API网关

    2020-12-28 06:45:32
    <p><img alt="image" src="https://img-blog.csdnimg.cn/img_convert/d45e63400131d272d2d02cfe1628c206.png" /></p> 更好的方式是采用API网关,实现一个API网关接管所有的入口流量,类似Nginx的作用&#...
  • led1632电路图

    2011-04-24 15:46:35
    D2: MOV R5,#235 DJNZ R5,$ DJNZ R4,D2 RET YS3: MOV R4,#2 ;延时程序3,精确延时1000微秒 D3:MOV R5,#248 DJNZ R5,$ DJNZ R4,D3 RET TAB: DB 0C0H,0DEH,0A2H,8AH,9CH,89H,81H,0DAH,80H,88H,90H,85H,0E1H,86H,0...
  • windows蓝屏错误代码

    2010-11-18 22:27:50
    210 0×000000D2 无法设定信号处理程序。 212 0×000000D4 区段被锁定,而且无法重新配置。 214 0×000000D6 附加到此程序或动态连结模块的动态连结模块太多。 215 0×000000D7 Can’t nest calls to LoadModule. ...
  • NPM 使用问题汇总

    2021-01-08 00:44:41
    a797be06553ea8e13a6ec9c3cdd8ed1b065dd1d05d2a3a0378296e70cf16d5ab not match remote b23d64df051c9c969b0c583f802d5d71de342e53067127a5061415be7e12f39d </code></pre> 解决办法 清除缓存再进行安装 <pre><code...

空空如也

空空如也

1 2 3
收藏数 41
精华内容 16
关键字:

d2d缓存