绑定手机网站文件夹,眼镜厂官网,全国信息网查询平台,深圳知名网络优化公司14.redis缓存
14.1简介
穿透型缓存#xff1a;
缓存与后端数据交互在一起#xff0c;对服务端的调用隐藏细节。如果从缓存中可以读到数据#xff0c;就直接返回#xff0c;如果读不到#xff0c;就到数据库中去读取#xff0c;从数据库中读到数据#xff0c;也是先更…14.redis缓存
14.1简介
穿透型缓存
缓存与后端数据交互在一起对服务端的调用隐藏细节。如果从缓存中可以读到数据就直接返回如果读不到就到数据库中去读取从数据库中读到数据也是先更新缓存再返回给服务端。向数据库中写入数据也是先写入缓存中再同步给数据库
旁路型缓存
服务先到缓存中读取数据如果数据存在就直接返回如果缓存中没有数据就到数据库中去读取服务再将从数据库中读到的数据同步给缓存
redis是旁路型缓存
14.2 缓存的特征
效率高容量小
14.3 redis缓存处理的两种情况
缓存命中redis中有相应的数据直接从redis中读取性能很高 缓存缺失redis中没有相应的数据从后端关系型数据库中读取数据性能很低。如果发生缓存缺失为了后续程序请求中可以从缓存中读取数据要将缺失的数据写入redis,也称作缓存更新.
String cache_keyuser1001;
String cache_valueredis.get(cache_key);//想要从缓存中读取数据
if (cache_value!null){
//做相关业务逻辑
}else{cache_valuemysql.getUserById(cache_key);//从关系型数据库中去读取数据redis.set(cache_key,cache_value);//缓存更新处理
}redis不适用于无法获取源码的应用。
14.4 缓存的类型
14.4.1 只读缓存
只用读取数据的缓存。如果有写入数据的请求直接发到后端的mysql或oracle数据库在数据库中完成增删除改。对于删除和修改的数据来说redis中可能会有旧的数据需要将旧的数据删除下一次读取时redis缓存缺失那么就从数据库中读数据并更新到redis缓存中。 缓存图片、视频、手机的通讯记录、银行的以往帐单。
14.4.2 读写缓存
读定缓存不只完成对数据读取任务数据的增加、删除、修改操作也是在redis缓存中完成由于redis内存数据库效率很高所以可以快速响应给服务端调用。
redis内存数据在redis实例出现问题时导致数据丢失。
同步直写优先保证数据可靠异步写回执行效率高
对写请求操作进行高效处理选择读写缓存 如果写操作很少需要提升读取效率选择只读缓存