redis应用的场景
通过缓存来减少对关系型数据库的查询次数,减轻数据库压力。在执行DAO类的select***(), query***()方法时,先从Redis中查询有没有缓存数据,如果有则直接从Redis拿到结果,如果没有再向数据库发起查询请求取数据。
springboot已经集成了redis缓存,只需要在pom.xml中加载redis,然后通过注解即可完成配置。
首先在配置类中加上 @EnableCaching 注解
然后在DAO类加上@CacheConfig 注解
类中的对数据库操作的函数按功能加上 @CachePut @CacheEvict @Cacheable
@CachePut 是将数据加入到redis缓存中
@Cacheable 在获取数据的时候会先查询缓存,如果缓存中存在,则不执行查询数据库的方法,如果不存在则查询数据库,并加入到缓存中。
@CacheEvict 一般注解到删除数据的操作上,会将一条或多条数据从缓存中删除。
这三个方法都有value 和 key属性。
value指的是缓存的名称,不能为空。也可以在类@CacheConfig注解上指定value,则后面的方法的注解value可省略且value值与类注解的value相同。
key是缓存的键,默认为空,既表示使用方法的参数类型及参数值作为key。可通过key = “#p0”,p0为方法的第一个参数,p1为第二个,也可直接 #参数的名字。
还有一个注解为@Caching 用于组合将多个注解注解到一个方法上。
具体代码:
package com.example.demo.dao;