缓存基本概念

作者: 椰子奶糖 | 来源:发表于2019-07-30 22:45 被阅读27次

缓存

cache

  • 缓存接口,定义缓存操作,实现有:RedisCache、EhCacheCache、ConcurrentMapCache等

cacheManager

  • 缓存管理器管理各种缓存(cache)组件
  • CacheManager管理多个Cache组件,对缓存真正的CRUD操作在Cache组件中每一个缓存组件有唯一一个名字:
  • cacheManager:指定缓存管理器;或者cacheResolver缓存解析器

@Cacheable

  • 主要针对方法配置,能够更具方法的请求参数对其结果进行缓存
  • @Cacheable:是将方法的运行结果进行缓存,再要相同的数据,直接从缓存中获取,不用调用方法

Cacheable的几个属性:

  • cacheNames/value:指定缓存的名字

  • key:缓存数据使用的key:可以用它来指定。默认是使用方法参数的值 ,方法参数—方法的返回值
    编写SpEl:#id;参数id的值 #a0 #p0 #root.args[0]

  • keyGenerator:key的生成器,可以自己指定key的生成器的组件id

  • key/keyGenerator:二选一

  • condition:指定符合条件的情况才缓存;

  • unless否定缓存:当其指定的条件为true,方法的返回值就不会被缓存,可以获取到结果的判断 ---> unless="#result==null"

  • sync:是否使用异步模式 * * 原理:
    1.自动配置类:CacheAutoConfigration
    2. @param id * @return Employee

@CachePut

  • 保证方法被调用,又希望结果被缓存

@CacheEvict

  • 清空缓存

@EnableCaching

  • 开启基于注解的缓存

keyGenerator

  • 缓存数据时key生成策略

serlalize

  • 缓存数据时value序列化策略

一、搭建基本环境
1.导入数据库文件,创建处department,employee
2.创建JavaBean封装数据
3.整合Mybatis,操作数据库
1.配置数据源信息
2.使用注解版的Mybatis
1)。@MappeerScan指定需要扫描的Mappper接口所在的包
二、快速体验缓存
步骤:
1.开启基于注解的缓存
@EnableCaching
2.标注缓存注解即可
@Cacheable
@CacheEvict
@CachePut

默认使用的是

  • ConcurrentMapCacheManager==ConcurrentMapCache;
  • 将数据保存在 ConcurrentMap<Object, Object>中
    开发中使用缓存中间件;redis、memcached、ehcache;

三、整合redis作为缓存
Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。
1、安装redis:使用docker;
2、引入redis的starter
3、配置redis
4、测试缓存
原理:CacheManager===Cache 缓存组件来实际给缓存中存取数据
1)、引入redis的starter,容器中保存的是
RedisCacheManager;
2)、RedisCacheManager 帮我们创建 RedisCache 来作为缓存组件;RedisCache通过操作redis缓存数据的
3)、默认保存数据 k-v 都是Object;利用序列化保存;如何保存为json
1、引入了redis的starter,cacheManager变为
RedisCacheManager;
2、默认创建的 RedisCacheManager 操作redis的时候使用的是 RedisTemplate<Object, Object>
3、RedisTemplate<Object, Object> 是 默认使用jdk的序列化机制
4)、自定义CacheManager;

相关文章

  • Java数据结构_LinkedHashMap 的工作原理

    缓存算法的基本概念 源码基于JDK1.7 缓存机制 内存缓存 本地缓存 网络缓存 本节记录的是内存缓存 什么是内存...

  • Java数据结构_LinkedHashMap 的工作原理

    缓存算法的基本概念 源码基于JDK1.7 缓存机制 内存缓存 本地缓存 网络缓存 本节记录的是内存缓存 什么是内存...

  • TCP

    TCP和和UDP区别 基本概念 发送缓存,应用层将数据递交给TCP缓存,就不管了 接受缓存,TCP接受数据放入缓存...

  • 浏览器的缓存机制

    一、缓存机制概述 1. 基本概念介绍 浏览器缓存机制(即HTTP缓存机制),根据HTTP报文的缓存标识来决定使用缓...

  • CPU简介

    基本概念 CPU缓存 & 缓存行 & 缓存一致性: CPU缓存:为了弥补CPU和主存速度上的差异,处理器内部会引入...

  • 缓存基本概念

    缓存 cache 缓存接口,定义缓存操作,实现有:RedisCache、EhCacheCache、Concurre...

  • Redis practice(一)基础篇

    引言 先罗列一下缓存的基本概念。 所有类型的缓存: L1 L2: CPU缓存(Cache Memory)是位于CP...

  • Java并发与高并发总结

    Java 并发和高并发 ava 多线程模块: 并发的基本概念: CPU 多级缓存 Cpu多级缓存的意义? Cpu对...

  • DNS解析

    一、基本概念 递归 迭代 TTL Time to live,生存时间,即域名本地缓存时间。缓存失效的情况下,有域名...

  • 1、缓存基本概念

    一、缓存为王 1、缓存目的 降低系统的响应时间、减少网络传送时间和应用延时时间,进而提高了系统的吞吐量,增加了系统...

网友评论

    本文标题:缓存基本概念

    本文链接:https://www.haomeiwen.com/subject/mjxarctx.html