当前位置: 首页 > news >正文

青岛网站建设推广优化wordpress修改发帖时间

青岛网站建设推广优化,wordpress修改发帖时间,文章 百度网站创建及发展历史,iis怎么建设网站内容文章目录 前言1. 多级缓存的概念1.1 CPU 多级缓存1.2 MyBatis 多级缓存 2. MyBatis 本地缓存3. MyBatis 全局缓存3.1 MyBatis 全局缓存过期算法3.2 CacheAside 模式 后记MyBatis 提供了缓存切口#xff0c; 采用 Redis 会引入什么问题#xff1f;万一遇到需强一致场景#x… 文章目录 前言1. 多级缓存的概念1.1 CPU 多级缓存1.2 MyBatis 多级缓存 2. MyBatis 本地缓存3. MyBatis 全局缓存3.1 MyBatis 全局缓存过期算法3.2 CacheAside 模式 后记MyBatis 提供了缓存切口 采用 Redis 会引入什么问题万一遇到需强一致场景如何增强 前言 MyBatis 官方文档 中文版本没有翻译cache的部分网上资料比较杂。 这里使用 Spock 测试框架验证下多级缓存并探索 Mybatis 的 CacheAside 模式。注意 本文用 本地缓存 表示一级缓存全局缓存 表示二级缓存用例仓库 1. 多级缓存的概念 多级缓存可以联系CPU的结构离核心约近的一致性越高。 1.1 CPU 多级缓存 1.2 MyBatis 多级缓存 本地缓存默认开启全局缓存需要使用 cache/ 开启 By default, just local session caching is enabled that is used solely to cache data for the duration of a session. To enable a global second level of caching you simply need to add one line to your SQL Mapping file: mapper namespacecom.james.mapper.FileCacheMappercache/ !-- 声明该标签,全局缓存开启 --select idselect resultTypejava.lang.StringSELECT file_name FROM file/select /mapper2. MyBatis 本地缓存 用 Spring 注入的 mapper调用一次select方法就会产生一个 sqlSession没有利用到本地缓存。 def 未使用事务第二次查询不命中本地缓存() {given:def list1 mapper.select()def list2 mapper.select()expect:list1 ! list2}用事务包裹后两次 select 共用一个 sqlSession缓存命中 def 使用事务命中缓存() {given:def list1 []def list2 []when:transaction.execute {list1 mapper.select()list2 mapper.select()}then:// 同一个事务使用同一个SqlSession若引用相同则认为命中缓存list1 list2}note: groovy 中 list1 list2 表示引用相同list1 list2 表示两个列表的内容相同 3. MyBatis 全局缓存 上文说到没有事务保护的 select方法调用无法公用一个 sqlSession所以利用不了本地缓存。 全局缓存的范围更大只要是同一个mapper的调用都会被缓存。 def 全局缓存默认关闭需要在xml文件中使用 cache/ 标签启用() {given:def list1 fileCacheMapper.select()def list2 fileCacheMapper.select()expect:// 由于 SerializedCache.java:64 使用的是由byte[]序列化方式存储元素所以实例的地址必然不同list1 ! list2list1 list2}3.1 MyBatis 全局缓存过期算法 值得关注的是 SOFT 和 WEAK 的类型对应Java中软引用和弱引用。 软引用是在内存不足时GC可以回收弱引用是下次GC即可回收比软引用积极。 3.2 CacheAside 模式 以下是 Mybatis 默认的全局缓存失效模式也就是 Cache Aside 模式的应用。 查询的时候如果没有缓存则写入。任何数据操作使缓存失效。 select ... flushCachefalse useCachetrue/ insert ... flushCachetrue/ update ... flushCachetrue/ delete ... flushCachetrue/后记 Cache Aside 并不能保证强一致性不然也就不会有 Paxos 这种复杂的共识算法了。 —— 《凤凰架构》 MyBatis 提供了缓存切口 采用 Redis 会引入什么问题 多实例之间缓存重复的失效问题查询时竞争写缓存的问题。ORM框架与中间件耦合违反单一职责。 万一遇到需强一致场景如何增强 两个查询请求同时到来此时缓存为空需要将MySql数据写入缓存。此时会出现竞争写缓存的情况。用写锁来保证缓存内的数据跟数据库保持一致。 public void query() {if (cache 命中) {retrun cache} 获取缓存写锁if (获取锁失败) {return 查数据库} 查数据库写缓存释放缓存写锁 }
http://www.pierceye.com/news/567116/

相关文章:

  • 招聘网站建设人员条件wordpress有后端吗
  • 3g免费网站制作做美图 网站
  • 网站建设有哪些知识点图片制作软件哪个好用
  • 百度站长工具使用方法石岩医院网站建设
  • 网站一直百度上搜不到是怎么回事宝安大型商城网站建设
  • 本地营销型网站建设学校网站制作方案
  • 百度安装app下载免费王通seo赚钱培训
  • 郑州免费网站制作wordpress注册404
  • 晋城有做网站的吗可以做100张照片的软件
  • 比较好的网站建设品牌设计南宁建网站
  • 萧山网站建设那家好wordpress文章标题字体
  • 上海网站营销seo电话ftp网站 免费
  • 手机网站Comapp制作公司哪个好
  • 北京设计公司网站互联网行业都有哪些工作岗位呢
  • lnmp wordpress建设多网站个人网站设计毕业设计论文
  • 如何申请建设网站网站运营与管理的心得体会
  • WordPress如何建小语种网站网站用橙色
  • 北京专业网站优化c2c平台名称
  • 网站建设成本多少四平网站建设公司
  • 专做婚宴用酒是网站玄武模板网站制作报价
  • 建设大型网站设计公司微信公众号菜单跳转网页怎么制作
  • 昆明建设网站网页游戏4399
  • 韶关网站开发搜索引擎调价工具哪个好
  • 镇江做网站的公司上海排名前十的装修公司
  • 如何优化网站关键字网站登录 退出怎么做
  • 网站留言板怎么做湖北网站建设企业
  • 网站建设 教案装饰工程公司经营范围包括哪些?
  • 如何制作动漫网站模板下载地址wamp安装wordpress
  • 做一张简单的app网站多钱.net网站开发后编译
  • 网站上的菠菜游戏哪里可以做做移动网站优化软件