首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏兜兜毛毛

    MyBatis 缓存5

    MyBatis有必要使用缓存吗?为什么? 一般的ORM框架都会提供缓存功能来提升查询效率、减少数据库的压力。 在有多个回话或者分布式环境下,会存在查到过时数据的问题(缓存脏读)。 如下别的例子: /** * 缓存脏读,当有两个sqlsession同时操作一条数据时,会导致其中一个sqlsession不触发缓存清空,导致其中一个使用旧的缓存数据(已是脏数据) update()、delete()、insert()会刷新缓存。 如果二级缓存拿到结果了,就直接返回(最外层判断),否则再到一级缓存,最后到数据库。 如果一个Mapper需要开启二级缓存,但是这个里面的某些查询方法对数据的实时性要求很高,不需要二级缓存,怎么办?

    65720发布于 2021-04-19
  • 来自专栏一个执拗的后端搬砖工

    springboot(5)--缓存

    没有打印访问DB的日志,也就是第一次请求之后把数据放入的缓存,第二次访问的时候直接从缓存数据缓存生效。 springboot2.0.5依赖的基础库是spring5.x,而spring5中已经取消了对guava缓存的支持。 1.添加caffeine依赖 <! 没有打印访问DB的日志,访问的时候直接从缓存数据,也就说明我们配置的caffeine缓存生效。 没有打印访问DB的日志,访问的时候直接从缓存数据,也就说明我们配置的缓存生效。这时我们再次查看redis存储的内容: ? 我们从DB查询的数据已经存储到了redis中。 总结 合理的使用缓存,能够提高应用的性能和吞吐能力,但是缓存的滥用也会带来分布式环境下数据不一致问题,具体springboot编程时,选择使用哪一种缓存方式,还需要根据具体业务场景判定。

    65910发布于 2020-11-19
  • 来自专栏逸鹏说道

    在 EF 5 中跟踪SQL和缓存数据

    在EF4和EF5中需要跟踪执行SQL和缓存数据,微软官方有一个名为EFProviderWrappers的扩展示例非常值得学习,EFProviderWrappers包含EFTracingProvider和 EFCachingProvider,前者用于跟踪EF中增删改查的SQL语句,后者用于将EF查询的结果自动进行缓存缓存策略过期时间可由开发者自己指定,目前这两个扩展只支持EF4和EF5,因为EF6中微软已提供拦截器 正是因为EF提供这样的层次体系,所有SQL都经过EntityConnection执行,所以我们可以拦截经过EntityConnection的所有命令,从而进行SQL跟踪和数据缓存,上面提到的EFTracingProvider 5、将ExtendedNorthwindEntities构造函数中的字符串名称修改为自己在配置文件中设置的名称。 1、使用缓存,你首先需要指定缓存策略,下面代码指定内存缓存,并缓存所有数据

    1.3K80发布于 2018-04-09
  • 来自专栏Java实战博客

    5、Openresty本地缓存

    Openresty本身也支持开辟内存添加共享缓存的空间,操作api与redis一致 本地缓存的作用 减少查询redis、mysql的操作,实际redis也很快,但是毕竟有网络开销。 本地缓存会更快一些! ('第一次读取本地缓存!' 也就是不会超时 ngx.say('缓存设定成功!') -- 读取数据 local name = getCache:get('name') ngx.say('第二次读取本地缓存!' ,name) -- 删除数据 --getCache:delete('name') -- 特别说明 -- 1、重载配置文件,缓存不会消失 -- 2、nginx重启才会删除缓存数据 特殊说明: 以上文章

    1.4K20编辑于 2022-08-24
  • 来自专栏天天

    H5缓存

    txt = document.querySelector('input'); var btns = document.querySelectorAll('button'); //存储数据 sessionStorage.setItem('pwd','123456'); sessionStorage.setItem('age',18); } //获取数据 btns[1].onclick=function(){ txt.value = sessionStorage.getItem('age'); } //更新数据 btns[2].onclick=function(){ sessionStorage.setItem('userName',txt.value) } //删除数据 localStorage.setItem('json',obj); } btns[1].onclick=function(){ //将字符串解析为json数据

    1.3K10发布于 2018-09-29
  • 来自专栏漫漫架构路

    5. 缓存模块

    作为一款成熟的开源框架,MyBatis 自然也提供了缓存的功能,它在执行查询语句时首先尝试从缓存获取,避免频繁与数据库交互,大大提升了查询效率。 当缓存查询结果为空时,需要通过加锁的方式从 DB 中查询数据,避免大量缓存击穿造成数据库过载。 类似这样的配置,就要求缓存实现类能够动态扩展 LRU、定时清空、阻塞查询等功能。 miss 时,对当前线程加锁,保证同一时刻只有一个线程去 DB 执行查询操作,这样就避免了高并发场景下,缓存失效造成的大量击穿,实现了对数据库的保护。 /** * 阻塞式缓存装饰器 * 当查询缓存miss时,对当前线程加锁,保证同一时刻只有一个线程去DB执行查询操作。 * 避免了高并发场景下,缓存失效造成的大量击穿实现了对数据库的保护。 hashcode; } //...省略非必要代码 } 如果两个 CacheKey 的 hashCode() 相等,且 equals() 方法返回 true,则认为是同一个查询操作,可以直接从缓存中获取数据

    39820编辑于 2023-10-12
  • 来自专栏Web 技术

    缓存】HTML5缓存的那些事

    服务器端的存储介质大体上分为4种: cache:缓存,它可以让从数据库、磁盘上输出的东西/数据放置在缓存里,从而减少数据库或是磁盘的读取与写入(IO)操作; 磁盘文件:如,我们常常会将图片、视频等文件存放在磁盘上 ; 数据库:mySql\mongoDB…关系\非关系数据库; 内存:通常放置频繁要使用到的东西,能够提高读取效率;缓存(cache)也是存放在内存里的; HTML的存储-cookies 在HTML5出生之前 借助H5的postMessage()这个API做一些跨域上得处理) 超出存储大小之后如何存储——使用一些如LRU、FIFO的算法去淘汰一些旧的数据; server端如何取到数据——使用post/get参数 v=1会被认为是不同文件,分别缓存; app cache适用场景 单地址页面 对实时性要求不要的业务 离线web应用 总结 在实际应用中,我们需要根据业务的需要来采取相应的缓存措施,如上所述,html5 关于HTML5缓存我们就介绍到这里。 参考 HTML5之IndexedDB使用详解

    1.3K50编辑于 2023-10-07
  • 来自专栏Micro_awake web

    HTML5 Web缓存&运用程序缓存&cookie,session

    在介绍HTML5 web缓存前,来认识一下cookie和session: session: 由于HTTP是无状态的,你是谁?你干了什么?抱歉服务器都是不知道的。 这些数据不会保存在服务器上(存储在客户端),不会影响服务器性能! sessionStorage和localStorage数据存储也有大小限制,但却比cookie大得多,可以达到5M甚至更大! HTML5运用程序缓存(Application Cache): 通过创建cache manifest文件,web运用可被缓存,并且无网络状态可以进行访问! Manifest文件: manifest是简单的文本文件,它告知浏览器被缓存的内容以及不被缓存的内容! manifest可分为三部分: CACHE MANIFEST:此项列出的文件将在首次下载后进行缓存! NETWORK:此项列出的文件需要与服务器进行网络连接,不会被缓存

    2.8K70发布于 2018-01-11
  • 来自专栏逸鹏说道

    探索ASP.NET MVC5系列之~~~5.缓存篇(页面缓存+二级缓存

    MVC5Base/Controllers/CacheController.cs 这次来篇放松的,咱们不要老是说安全相关的东西。 2.3数据库依赖缓存 1.启动一下数据缓存依赖:管理员身份打开VS开发人员命令(参数详解:https://msdn.microsoft.com/zh-cn/library/ms229862) aspnet_regsql --数据缓存依赖配置 Start--> <caching> <! ), Cache.NoAbsoluteExpiration, Cache.NoSlidingExpiration, CacheItemPriority.Default, null); 应用场景一般都是缓存数据库依赖表里面的数据 ,当里面数据发生改变则缓存失效,这样就可以及时自动更新缓存了(我这边只是做个演示) ?

    1.2K50发布于 2018-04-11
  • 来自专栏技术博文

    H5缓存机制浅析

    1 H5 缓存机制介绍 H5,即 HTML5,是新一代的 HTML 标准,加入很多新的特性。离线存储(也可称为缓存机制)是其中一个非常重要的特性。 根据标准,到目前为止,H5 一共有6种缓存机制,有些是之前已有,有些是 H5 才新加入的。 2.3 Web SQL Database存储机制 H5 也提供基于 SQL 的数据库存储机制,用于存储适合数据库的结构化数据。 官方建议浏览器在实现时,对每个 HOST 的数据库存储空间作一定限制,建议默认是 5MB(分 HOST)的配额;达到上限后,可以申请更多存储空间。 较大的存储空间,默认推荐250MB(分 HOST),比 Dom Storage 的5MB 要大的多。 通过数据库的事务(tranction)机制进行数据操作,保证数据一致性。

    2.3K80发布于 2018-04-16
  • 缓存技术:内存缓存数据缓存

    缓存技术包括内存缓存数据缓存。 内存缓存是将数据存储在内存中 以便在需要时快速访问。它通过减少对磁盘或网络的访问次数来提高系统的性能。 它可以减少数据库负载,提高系统的响应速度。 内存缓存的工作原理是将数据存储在内存中的缓存区域中,以便快速读取。当需要访问数据时,系统首先检查内存缓存中是否有所需数据的副本。 如果没有,则从数据源(如数据库或网络)中获取数据,并将其存储在内存缓存中,以便以后的快速访问。 内存缓存可以根据不同的策略来管理存储的数据。 其次,内存缓存可能存在数据一致性的问题,当数据源中的数据发生变化时,内存缓存中的数据可能不是最新的。因此,需要采取合适的策略来更新内存缓存中的数据,并确保数据的一致性。 数据缓存是将查询结果存储在缓存中 以便下次查询时可以直接返回缓存的结果。数据库查询是系统中常见的性能瓶颈之一,因为它涉及磁盘读取和复杂的查询操作。

    17610编辑于 2025-08-29
  • 来自专栏前端大白专栏

    HTML5离线缓存技术

    原理和环境 如上面提到的HTML5的离线存储是基于一个新建的.appcache文件的,通过这个文件上的解析清单离线存储资源,这些资源就会像cookie一样被存储了下来。 之后当网络在处于离线状态下时,浏览器会通过被离线存储的数据进行页面展示。 就像cookie一样,html5的离线存储也需要服务器环境。 : * FALLBACK 下面的 FALLBACK 小节规定如果无法建立因特网连接,则用 "offline.html" 替代 /html5/ 目录中的所有文件: ALLBACK: /html5/ /404 缓存立即执行 我们的产品已经更新了用户却要第二次进来才能够看到,这样用户体验也太差了吧,有什么方式能够解决呢?好在html5给javascript提供了相关的API。 注意事项 站点离线存储的容量限制是5M 如果manifest文件,或者内部列举的某一个文件不能正常下载,整个更新过程将视为失败,浏览器继续全部使用老的缓存 引用manifest的html必须与manifest

    4.4K70发布于 2018-06-15
  • 来自专栏程序技术知识

    jQuery数据缓存

    jQuery数据缓存 参数说明 参数 说明 key 存储的数据名 value 将要存储的任意数据 obj 一个用于设置数据的键/值对 [name] 存储的数据名 [list] 移除数组或以空格分开的字符串 方法 概述 data([key],[value]) 在元素上存放或读取数据,返回jQuery对象。 当参数只有一个key的时候,为读取该jQuery对象对应DOM中存储的key对应的值,当参数为两个时,为像该jQuery对象对应的DOM中存储key-value键值对的数据。 如果jQuery集合指向多个元素,那将在所有元素上设置对应数据。 这个函数不用建立一个新的expando,就能在一个元素上存放任何格式的数据,而不仅仅是字符串 removeData([name list]) 在元素上移除存放的数据,与 data([key], [value

    71720编辑于 2022-04-27
  • 来自专栏全栈程序员必看

    springcache清除缓存_什么叫做缓存数据

    第一次执行的时候,会将方法结果存入缓存,再次调用该方法,在执行前,如果 key 相同则直接返回缓存中的数据,不会再次执行方法。 这个主要是用来处理多线程环境下缓存更新导致数据出错的问题的。 ; return mapper.selectAll(); } 2.缓存更新 @CachePut 注解一般用于更新某个命名空间中的某条缓存数据。 他的主要属性就两个: allEntries:是否清空全部缓存数据。 = "#deptno") } ) @Override public Dept findById(Integer deptno) { return null; } 5.统一命名空间 @CacheConfig

    3.8K10编辑于 2022-09-22
  • 来自专栏技术趋势

    spring的缓存(cache)-(缓存穿透、缓存击穿、缓存雪崩、热点数据

    什么是缓存穿透 查询根据不存在的数据,导致每次都查库,并且qps达到万甚至百万,直接将数据库拉挂了。 ? 模拟缓存穿透 通过jmeter压1万个用户,60秒请求。 解决方案 1.设置空值缓存; 注:当新增该数据的时候需要将原来的id,delete掉再放进去,刷新一下缓存否则会导致缓存数据数据库不一致场景。 ? jmeter模拟测试 配置(5秒钟5万次) ? ? 结果 刚开始还没啥问题,后面数据库就直接查询异常了,超时,超过连接数之类的都出现了... ? 结果 通过结果可得,只查一次数据库其他的都从缓存中获取 ? 3.关键的缓存可以设置不过期,当更新时再同步更新就可以了;(同上) 4.同缓存击穿一样,添加分布式式进行完善; 最后 缓存穿透、缓存击穿、缓存雪崩、热点数据这几个问题在业界还是挺常见的,挺多系统由于开始业务量没那么大加之研发没有考虑到位

    2.7K20发布于 2020-09-18
  • HTML5 应用程序缓存

    使用 HTML5,通过创建 cache manifest 文件,可以轻松地创建 web 应用的离线版本。 注意:manifest 的技术已被 web 标准废弃,不再推荐使用此功能。 什么是应用程序缓存(Application Cache)? HTML5 引入了应用程序缓存,这意味着 web 应用可进行缓存,并可在没有因特网连接时进行访问。 HTML5 Cache Manifest 实例 下面的例子展示了带有 cache manifest 的 HTML 文档(供离线浏览): 实例 <! : NETWORK: * FALLBACK 下面的 FALLBACK 小节规定如果无法建立因特网连接,则用 "offline.html" 替代 /html5/ 目录中的所有文件: FALLBACK 为了确保浏览器更新缓存,您需要更新 manifest 文件。 注意: 浏览器对缓存数据的容量限制可能不太一样(某些浏览器设置的限制是每个站点 5MB)。

    18310编辑于 2025-12-16
  • 来自专栏波波烤鸭

    mybatis教程5(延迟加载和缓存)

    缓存中的数据数据存储源中数据的拷贝,应用程序在运行时直接读写缓存中的数据,只在某些特定时刻按照缓存中的数据来同步更新数据存储源。 缓存的物理介质通常是内存,而永久性数据存储源的物理介质通常是硬盘或磁盘,应用程序读写内在的速度显然比读写硬盘的速度快,如果缓存中存放的数据量非常大,也会用硬盘作为缓存的物理介质。 因此,缓存是通过软件和硬件共同实现的 作用:降低访问数据源【数据库】频率 3.1缓存分类 类别 说明 一级缓存 事务范围:缓存只能被当前事务访问。 进程范围的缓存可能会存放大量的数据,所以存放的介质可以是内存或硬盘。 三级缓存 集群范围:在集群环境中,缓存被一个机器或者多个机器的进程共享。 缓存中的数据被复制到集群环境中的每个进程节点,进程间通过远程通信来保证缓存中的数据的一致性,缓存中的数据通常采用对象的松散数据形式 MyBatis支持1级缓存和2级缓存,在实际开发中,实际上很少使用到

    63430发布于 2019-04-02
  • 来自专栏ascii0x03的安全笔记

    HTML5离线缓存攻击测试

    攻击者可以访问本目录的demo_html.appcache获得缓存文件,在同名文件加入自己的恶意代码(这里是弹出hacked对话框),利用DNS欺骗、中间人等方式,这里将HOSTS文件更改为192.168.1.154 通过两次更新manifest文件,让用户缓存恶意页面并使其manifest文件与合法网站保持一致,如图所示。 ? 通过Wireshark抓包可以看到,浏览器仅仅请求了demo_html.appcache,离线缓存攻击成功。注意在实验时需要排除浏览器本身缓存的影响,仅仅刷新页面会收到服务器返回的304响应。 由于时间有限,并没有用爬虫去找使用了HTML5离线缓存的网站,仅仅做了这种攻击的验证实验,若有大家可以推荐几个来测试。 主页htm: <!

    2.1K90发布于 2018-04-12
  • 来自专栏王二麻子IT技术交流园地

    H5的离线缓存技术

    HTML5的离线存储是基于一个新建的.appcache文件的缓存机制(不是存储技术),通过这个文件上的解析清单离线存储资源;把需要离线存储在本地的文件列在一个manifest配置文件中。 下面的例子中,如果无法建立因特网连接,则用 "404.html" 替代 /html5/ 目录中的所有文件。 FALLBACK: /html5/ /404.html 下面的例子中,当任何页面无法访问时跳转到 "404.html"页。 html5中引入了js操作离线缓存的方法,可以通过js代码手动更新本地缓存。 /**  * webapp  *   * 使用HTML5编写的移动Web应用,一个webapp几乎可以不加修改的运行在PC/Android/iOS等。  

    1.2K20编辑于 2023-07-18
  • 来自专栏程序猿的大杂烩

    HTML5缓存和GPS定位

    HTML5缓存 我们在访问网站的时候,会从网站服务器中下载很多数据,其中包括css文件、图片文件、js文件、音频文件等等,有时候一个页面这种零零散散的文件就要下载上百个,可以打开浏览器的开发者工具,点击 在html5中提供了两种在客户端存储数据的新方法localStorage和sessionStorage ,并且html5还支持内嵌在浏览器中的WebSQL数据库,下面就介绍一下这三种存储数据的使用方式。 应用缓存 在HTML5中引入了应用程序缓存,这意味着 web 应用可进行缓存,并可在没有因特网连接时进行访问。 在html5中如果需要启用应用程序缓存,需要在文档的 <html> 标签中写上 manifest 属性,并指定appcache文件的路径。 接下来做个实验,看看能不能缓存文件: ? 运行结果: ? 这就是如何使用html5中的应用缓存的简单介绍。

    3.2K20发布于 2020-09-23
领券