【知了堂学习笔记】——缓存和懒加载

延迟加载(懒加载)

1.真正要使用数据的时候,才去发送sql语句请求数据库的数据
a)Eg:select * from blog where id =2
后续其实暂时不会用到blog对象中的author对象
懒得执行select * from author where id = ?
只有真正要使用author的时候,才去发送sql语句
b)lazyLoadingEnable:启用懒加载
c)aggressiveLazyLoading :启用不完整加载

缓存

1.概念
a)存储数据(使用频繁的数据)的临时地方
b)常用的属性
i.命中率
ii.最大元素:缓存的最大值
iii.替代策略(清空策略):缓存有最大元素,如果缓存满了,应该清理的数据和不该清理的数据就涉及到了其中的该有的算法
1.LFU:Least Frequently Used 计算频率-频率低的踢出
2.LRU:Least Recently Used 最新被访问的对象被放入缓存池顶部
c)命中
i.如果还有缓存空间,则没有命中的对象直接存储到缓存中
ii.如果缓存满了,就会按照某种策略,将缓存中就对象退出,保存新对象-替代策略
d)存储成本:将数据存入缓存的时间和空间成本
e)索引成本
f)失效:缓存数据需要更新时,缓存数据失效
2.分类
a)技术上:内存/硬盘文件/数据库
b)EE中的分类
i.服务器缓存:设置缓存服务器放置在web应用服务器的前面,将用户的请求和应用服务器的响应写入缓存服务器,为后续用户的访问提供更快的响应
ii.数据库缓存:配置数据库缓存,数据库存储过程,连接池技术等,数据库缓存挂掉重建缓存会瞬间导致数据库压力增大
iii.浏览器缓存:h5中storage,缓存html和图片/js/css
iv.内存缓存:分布式缓存机制
c)缓存和应用的耦合度
i.Local cache
ii.Remote cache:支持多种语言
3.一级缓存:基于session的缓存,同一个session下的数据实现缓存共享
a)sqlSession存在缓存的概念
b)Sqlsession查询出来的数据会默认被放入缓存中
c)Sql语句session发送,session每次发送sql语句之前,会先进入缓存区域查看是否有相同sql语句结果是否存在
d)如果存在,就直接从缓存中去数据
e)如果不存在,才发送sql语句去数据库端取数据
4.二级缓存:不同session下的数据实现缓存共享,SqlSessionFactory的缓存
a)配置二级缓存
b)配置映射支持的二级缓存
c)映射类实现序列化
i.对象序列化:对对象进行压缩,解压缩,方便进行对象的存储(从内存到文件系统中)
ii.二级缓存经常会被配置在其他地方,提升技能,但是容易崩溃
d)Session被关闭后数据进入二级缓存
e)步骤
i.b)启用二级缓存
1.Config.xml
2.<setting name = “cacheEnable” value=”true”>
ii.Mapper.xml
1.<cache></cache>
iii.Model对象进行序列化
1.实现serializable接口
iv.Test.java
1.session.close
5.一级缓存和二级缓存
a)查询出来的数据会默认存入一级缓存,配置当前mapper支持二级缓存,存在二级缓存
b)当出现commit操作的时候,二级缓存还是一级缓存都会被刷新
c)可以禁用当前查询缓存:userCache
d)缓存实现:hashMap/同步

了课是一个在线教育平台,提供了丰富多样的课程内容。其中,flask web是其中一门非常受欢迎的课程。 Flask是一个基于Python语言开发的轻量级Web应用框架。它简洁易用,但功能强大,因此在Web开发中被广泛应用。Flask Web课程旨在教授学员如何使用Flask框架构建自己的Web应用程序。 在Flask Web课程中,学员将学习到如何搭建一个完整的Web应用程序。首先,课程会介绍Flask框架的基本概念和使用方法,学员将了解如何创建Flask应用和处理路由。接着,课程会涵盖数据库的使用,学员将学会如何与数据库进行交互,以存储和检索数据。 此外,Flask Web课程还会教授学员如何处理表单数据和用户认证。表单是Web应用中常见的用户输入形式,学员将学习如何处理表单数据,并对用户输入进行验证和处理。同时,课程还会介绍用户认证和授权的方法,以确保只有授权用户可以访问特定的页面或功能。 在课程的实践部分,学员将有机会建立自己的Web应用程序。通过完成一系列的编程任务和项目,学员将应用所学的识,并将其运用到实际项目中。 总之,了课的Flask Web课程是一门全面而实践性强的课程,旨在帮助学员掌握使用Flask框架构建Web应用程序的技能。无论是对于想要从事Web开发的人来说,还是对于已经有一定经验的开发者来说,这门课程都将带来很大的收益。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值