Redis_缓存1_缓存类型

14.redis缓存

14.1简介

穿透型缓存:

  • 缓存与后端数据交互在一起,对服务端的调用隐藏细节 。如果从缓存中可以读到数据,就直接返回,如果读不到,就到数据库中去读取,从数据库中读到数据,也是先更新缓存,再返回给服务端。向数据库中写入数据,也是先写入缓存中,再同步给数据库

旁路型缓存:

  1. 服务先到缓存中读取数据,如果数据存在,就直接返回
  2. 如果缓存中没有数据,就到数据库中去读取
  3. 服务再将从数据库中读到的数据同步给缓存

redis是旁路型缓存

14.2 缓存的特征

  1. 效率高
  2. 容量小

14.3 redis缓存处理的两种情况

缓存命中 :redis中有相应的数据,直接从redis中读取,性能很高
缓存缺失:redis中没有相应的数据,从后端关系型数据库中读取数据,性能很低。如果发生缓存缺失,为了后续程序请求中可以从缓存中读取数据,要将缺失的数据写入redis,也称作缓存更新.

java 复制代码
String cache_key="user1001";
String cache_value=redis.get(cache_key);//想要从缓存中读取数据
if (cache_value!=null){
//做相关业务逻辑
}else{
	cache_value=mysql.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实例出现问题时,导致数据丢失。

  • 同步直写:优先保证数据可靠
  • 异步写回:执行效率高

对写请求操作进行高效处理,选择读写缓存

如果写操作很少,需要提升读取效率,选择只读缓存

相关推荐
阿华的代码王国2 分钟前
MySQL ------- 索引(B树B+树)
数据库·mysql
码爸24 分钟前
flink 批量压缩redis集群 sink
大数据·redis·flink
Hello.Reader30 分钟前
StarRocks实时分析数据库的基础与应用
大数据·数据库
执键行天涯32 分钟前
【经验帖】JAVA中同方法,两次调用Mybatis,一次更新,一次查询,同一事务,第一次修改对第二次的可见性如何
java·数据库·mybatis
yanglamei196242 分钟前
基于GIKT深度知识追踪模型的习题推荐系统源代码+数据库+使用说明,后端采用flask,前端采用vue
前端·数据库·flask
Adolf_19931 小时前
Flask-JWT-Extended登录验证, 不用自定义
后端·python·flask
叫我:松哥1 小时前
基于Python flask的医院管理学院,医生能够增加/删除/修改/删除病人的数据信息,有可视化分析
javascript·后端·python·mysql·信息可视化·flask·bootstrap
海里真的有鱼1 小时前
Spring Boot 项目中整合 RabbitMQ,使用死信队列(Dead Letter Exchange, DLX)实现延迟队列功能
开发语言·后端·rabbitmq
工作中的程序员1 小时前
ES 索引或索引模板
大数据·数据库·elasticsearch
严格格1 小时前
三范式,面试重点
数据库·面试·职场和发展