ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

Redis,Cache和spring整合

2022-06-24 17:06:04  阅读:128  来源: 互联网

标签:redis 缓存 spring Cache Redis springframework import org com


配置application.yaml文件

`spring:
redis:
host: 192.168.109.132
port: 6379
datasource:
url: jdbc:mysql:///cd2203?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC
username: root
password: 123456
driver-class-name: com.mysql.cj.jdbc.Driver
type: com.alibaba.druid.pool.DruidDataSource

mybatis:
configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl #输出sql
mapper-locations:
- classpath:mapper/*Mapper.xml`

启动类下添加注解

@MapperScan("com.bjpowernode.rediscachespringboot.mapper")//扫描mapper @EnableCaching //启用缓存

添加依赖

  1. 连接池的依赖
  2. Jason的依赖 (如果带有web 就不用了导入Jackson)

修改UserServiceImpl

@Service @CacheConfig(cacheNames = "com.bjpowernode.service.impl.UserServiceImpl") // 命名隔离
方法上添加注解
@CacheConfig: 一般配置在类上,指定缓存名称,这个名称是和上面“置缓存管理器”中缓存名称的一致。
@Cacheable: 作用于方法上,用于对于方法返回结果进行缓存,如果已经存在该缓存,则直接从缓存中获取,缓存的key可以从入参中指定,缓存的 value 为方法返回值。
@CachePut: 作用于方法上,无论是否存在该缓存,每次都会重新添加缓存,缓存的key可以从入参中指定,缓存的value为方法返回值,常用作于更新。
@CacheEvict: 作用于方法上,用于清除缓存
@Caching: 作用于方法上,用于一次性设置多个缓存。
#作用在你要缓存的数据上
上面注解中的常用配置参数:

value: 缓存管理器中配置的缓存的名称,这里可以理解为一个组的概念,缓存管理器中可以有多套缓存配置,每套都有一个名称,类似于组名,这个可以配置这个值,选择使用哪个缓存的名称,配置后就会应用那个缓存名称对应的配置。
key: 缓存的 key,可以为空,如果指定要按照 SpEL 表达式编写,如果不指定,则缺省按照方法的所有参数进行组合。
condition: 缓存的条件,可以为空,使用 SpEL 编写,返回 true 或者 false,只有为 true 才进行缓存。
unless: 不缓存的条件,和 condition 一样,也是 SpEL 编写,返回 true 或者 false,为 true 时则不进行缓存。

修改序列化方式

点击查看代码
package com.bjpowernode.rediscachespringboot.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.cache.RedisCacheConfiguration;
import org.springframework.data.redis.serializer.RedisSerializationContext;
import org.springframework.data.redis.serializer.RedisSerializer;

@Configuration
public class RedisConfig {
    @Bean
    public RedisCacheConfiguration redisCacheConfiguration(){
        RedisCacheConfiguration cacheConfiguration = RedisCacheConfiguration.defaultCacheConfig();

        /*
        配置Redis默认的序列化方式
        因为使用注解操作redis缓存的时候底层使用的是RedisTemplate
        而该对象默认使用的是jdk的序列化方式

        可以将该序列化方式改为json方式
         */
        cacheConfiguration = cacheConfiguration.serializeValuesWith(RedisSerializationContext.SerializationPair.fromSerializer(RedisSerializer.json()));
        return cacheConfiguration;

    }
}

标签:redis,缓存,spring,Cache,Redis,springframework,import,org,com
来源: https://www.cnblogs.com/cateXiaoQi/p/16409504.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有