公司网站服务商,国内精美网站,网站建设 域名 数据库,wordpress修改发布页面插件一、缓存
1.1、什么是缓存 内存就是计算机内存中的一段数据。
1.2、内存中的数据特点
读写快断电数据丢失
1.3、缓存解决了什么问题
提高了网站的吞吐量和运行效率减轻了数据库的访问压力
1.4、哪些数据适合加缓存 使用缓存时#xff0c;一定是数据库中的数据极少发生改…一、缓存
1.1、什么是缓存 内存就是计算机内存中的一段数据。
1.2、内存中的数据特点
读写快断电数据丢失
1.3、缓存解决了什么问题
提高了网站的吞吐量和运行效率减轻了数据库的访问压力
1.4、哪些数据适合加缓存 使用缓存时一定是数据库中的数据极少发生改变更多用于查询这种情况。例如收获地址省市县村
1.5、本地缓存和分布式缓存
本地缓存存储在应用服务器内存中的数据称之为本地缓存local cache分布式缓存存储在当前应用服务器内存之外的数据称之为分布式缓存distribute cache集群将同一种服务的多个节点放在一起共同为系统提供服务的过程称之为集群分布式由多个不同的服务集群共同对系统提供服务那么这个系统就被称之为分布式系统distribute system
二、缓存优化
2.1、Key优化 当前使用Redis作为分布式缓存的情况下默认生成的hashKey太长如下怎么样对Key进行优化使生成的Key简洁一些
-1179870921:3186541116:org.star.mapper.EmployeeMapper.getDetail:0:2147483647:select e.id,e.name,d.department_name from employee e,department d where e.department_id d.id and e.id ?:2:SqlSessionFactoryBean
2.2、MD5的特点
一切文件字符串再经过MD5加密后都会生成32位的16进制字符串不同内容的文件经过MD5加密后加密结果一定不一致相同内容的文件经过多次MD5加密后结果始终一样
2.3、解决方案 在Redis整合MyBatis的过程中建议将Key使用MD5进行优化处理。
三、面试相关
3.1、什么是缓存穿透击穿 客户端查询了一个数据库中没有的记录导致缓存在这种情况下无法利用称之为缓存穿透缓存击穿。
3.2、MyBatis是如何解决缓存穿透的 将数据库中没有查询到的结果也进行缓存。
3.3、什么是缓存雪崩 在系统运行的某一时刻突然系统中的缓存全部失效恰好在这一时刻涌来了大量的客户请求导致所有模块缓存无法利用进而引起大量请求涌向数据库查询的极端情况导致数据库阻塞或者挂起。
解决方案
1缓存永久存储【不推荐】
2针对于不同的业务数据设置不同的超时时间
3.4、项目中有没有遇到如何解决 没有用到。项目中我们使用的是MyBatis框架作为持久层MyBatis已经解决了缓存穿透的问题。