`
m17192147867
  • 浏览: 18901 次
社区版块
存档分类
最新评论

SpringBoot 注解方式 整合Redis

 
阅读更多

1.首先导入使用Maven导入jar包

 

<dependency>    
    <groupId>org.springframework.boot</groupId>    
    <artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>fastjson</artifactId>
    <version>1.2.62</version>
</dependency>

 

2.在application.properties配置信息

 

# Redis数据库索引(默认为0)  
spring.redis.database=0  
# Redis服务器地址  
spring.redis.host=localhost
# Redis服务器连接端口  
spring.redis.port=6379  
# Redis服务器连接密码(默认为空)  
spring.redis.password=123456
# 连接池最大连接数(使用负值表示没有限制)  
spring.redis.pool.max-active=200  
# 连接池最大阻塞等待时间(使用负值表示没有限制)  
spring.redis.pool.max-wait=-1  
# 连接池中的最大空闲连接  
spring.redis.pool.max-idle=10 
# 连接池中的最小空闲连接  
spring.redis.pool.min-idle=0  
# 连接超时时间(毫秒)  
spring.redis.timeout=1000ms

 

3.编写Redis工具类

 

@Configuration
@ConditionalOnClass(RedisOperations.class)      //系统中有RedisOperations类时
@EnableConfigurationProperties(RedisProperties.class)  //启动RedisProperties这个类
@EnableCaching

// www.1b23.com
public class RedisConfig extends CachingConfigurerSupport {
    @Autowired
    RedisTemplate redisTemplate;
    // 配置缓存管理器
    @Bean
    public RedisCacheManager cacheManager(RedisConnectionFactory connectionFactory) {
        LettuceConnectionFactory jedisConnectionFactory = (LettuceConnectionFactory) redisTemplate.getConnectionFactory();
        jedisConnectionFactory.setDatabase(2);      //指定dbindex
        redisTemplate.setConnectionFactory(jedisConnectionFactory);
        jedisConnectionFactory.resetConnection();

        RedisCacheConfiguration config = RedisCacheConfiguration.defaultCacheConfig()
                .entryTtl(Duration.ofSeconds(60*20)) // 20分钟缓存失效
                // 设置key的序列化方式
//                .entryTtl(Duration.ofSeconds(10))
                .serializeKeysWith(RedisSerializationContext.SerializationPair.fromSerializer(new StringRedisSerializer()))
                // 设置value的序列化方式
                .serializeValuesWith(RedisSerializationContext.SerializationPair.fromSerializer(new FastJsonRedisSerializer(Object.class)))
                // 不缓存null值
                .disableCachingNullValues();
        RedisCacheManager redisCacheManager = RedisCacheManager.builder(connectionFactory)
                .cacheDefaults(config)
                .transactionAware()
                .build();
        return redisCacheManager;
    }
}

 

package com.FireService.config;

import java.nio.charset.Charset;

import org.springframework.data.redis.serializer.RedisSerializer;
import org.springframework.data.redis.serializer.SerializationException;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.parser.ParserConfig;
import com.alibaba.fastjson.serializer.SerializerFeature;

public class FastJsonRedisSerializer<T> implements RedisSerializer<T> {

    public static final Charset DEFAULT_CHARSET = Charset.forName("UTF-8");

    private Class<T> clazz;
    static {
        ParserConfig.getGlobalInstance().addAccept("com.FireService");
    }
    public FastJsonRedisSerializer(Class<T> clazz) {
        super();
        this.clazz = clazz;
    }

    @Override
    public byte[] serialize(T t) throws SerializationException {
        if (null == t) {
            return new byte[0];
        }
        return JSON.toJSONString(t, SerializerFeature.WriteClassName).getBytes(DEFAULT_CHARSET);
    }

    @Override
    public T deserialize(byte[] bytes) throws SerializationException {
        if (null == bytes || bytes.length <= 0) {
            return null;
        }
        String str = new String(bytes, DEFAULT_CHARSET);
        return (T) JSON.parseObject(str, clazz);
    }

}

 

4.SpringBoot有关缓存的几个注解

@Cacheable:查询

可选属性:

cacheNames/value:指定缓存组件的名字;

key:缓存数据使用的key,可以用来指定。默认即使用方法参数的值

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

 

//自定义配置类配置keyGenerator
@Configuration
public class MyCacheConfig {
    @Bean("myKeyGenerator")
    public KeyGenerator keyGenerator(){
        return new KeyGenerator() {
            @Override
            public Object generate(Object target, Method method, Object... params) {
                return method.getName()+"["+ Arrays.asList(params).toString() +"]";
            }
        };
    }
}

 

cacheManager:指定缓存管理器;或者cacheResolver获取指定解析器

condition:指定符合条件的情况下才缓存;如condition="#id>0"

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

sync:是否使用异步模式

例如:

 

@Cacheable(value = "RedisInfo", key = "#root.methodName+'['+#account+']'")
@ResponseBody
@RequestMapping("/RedisTest")
public Result findUserOrder(String account) throws Exception{
    if(account!=null) {
        List<Map<String, Object>> list=orderFindGoods.findUserOrder(account);
        return Results.successWithData(list, BaseEnums.SUCCESS.code(), BaseEnums.SUCCESS.desc());
    }else {
        return Results.failure();
    }
}

 

官网:http://www.fhadmin.org/

 

 

 

 

 

1
0
分享到:
评论

相关推荐

    SpringBoot项目SSM+Redis整合

    **SpringBoot项目SSM+Redis整合** 在现代Web开发中,SpringBoot因其便捷的配置、快速的开发体验而被广泛采用。本项目是基于SpringBoot框架进行构建的,旨在实现SSM(Spring、SpringMVC、Mybatis)的经典组合与Redis...

    SpringBoot + Mybatis + Redis 整合

    总的来说,SpringBoot、Mybatis和Redis的整合为Java开发者提供了一个强大、灵活且高效的开发环境,它可以帮助我们构建出高可用、高性能的Web应用。通过深入理解这三个组件以及它们之间的协同工作,开发者可以更好地...

    SpringBoot项目 MybatisPlus使用 Redis缓存.zip

    在SpringBoot项目中,MybatisPlus与Redis的整合可以实现高效的数据缓存,提升应用程序的性能。本项目中,我们看到“SpringBoot项目 MybatisPlus使用 Redis缓存.zip”主要涉及了SpringBoot、MybatisPlus和Redis三个...

    SpringBoot 整合 Redis、mybatis 完整项目源码下载

    **SpringBoot整合Redis** 1. **配置Redis**: 在SpringBoot项目中,可以通过`application.properties`或`application.yml`文件配置Redis连接信息,包括主机地址、端口、密码等。 2. **添加依赖**: 在`pom.xml`文件...

    springboot案例,springboot+mybatis整合,springboot+mybatis+redis集群

    - 使用 MyBatis 的注解方式时,需要在 Mapper 接口上添加 `@Mapper` 注解。 6. **注解与 @MapperScan 比较**: - `@Mapper` 放在接口上,意味着每一个接口都必须有这个注解。 - `@MapperScan` 提供了包扫描的...

    springboot整合redis集群零配置

    首先,让我们来看看"Springboot整合Redis集群,零配置方式"。在Spring Boot中,我们可以通过引入`spring-boot-starter-data-redis`依赖来启用Redis支持。但是,要配置Redis集群,通常需要设置多个节点地址、密码、...

    springBoot+mysql+redis基础项目

    【标题】"springBoot+mysql+redis基础项目"是一个适合初学者入门的IT项目,它结合了Spring Boot、MySQL和Redis三个关键组件,构建了一个基本的后端数据处理框架。这个项目的核心目标是帮助新手理解如何在实际开发中...

    springboot-mybatis-redis.rar

    《SpringBoot、MyBatis与Redis的整合应用详解》 在现代Web开发中,SpringBoot以其简洁的配置、快速的启动以及丰富的生态成为了许多开发者首选的框架。而MyBatis作为轻量级的持久层框架,以其灵活的SQL操作和优秀的...

    springboot+mysql+redis集成Demo

    在本项目"springboot+mysql+redis集成Demo"中,我们将探讨如何将Spring Boot框架与MySQL数据库和Redis缓存服务进行整合,以实现一个高效、可扩展的应用程序。以下是对这个集成过程的关键知识点的详细说明。 1. **...

    SpringBoot整合shiro、redis集成mybatis

    综上所述,"SpringBoot整合shiro、redis集成mybatis"这个主题涉及到了现代web应用开发中的多个关键组件。通过这些组件的集成,我们可以构建出具有安全认证、权限控制、高效缓存和灵活数据库操作的复杂应用。这种架构...

    myredis_redis_springboot_springboot+Redis_DEMO_

    总结,"myredis_redis_springboot_springboot+Redis_DEMO_"项目旨在演示如何在SpringBoot应用中整合和使用Redis,涵盖从基本的Redis连接到高级的缓存和消息队列功能。通过学习这个DEMO,开发者可以迅速掌握...

    springboot整合mongodb+redis+mybatis+mysql

    4. **Redis 配置**:`RedisConfig.java`,配置 Redis 连接池及序列化方式。 5. **MyBatis 配置**:`MybatisConfig.java`,包含 MyBatis 的配置,如 SqlSessionFactory 的创建。 6. **Mapper 接口和 XML 文件**:定义...

    springboot与redis整合

    3. **SpringBoot整合Redis** - **添加依赖**:在SpringBoot项目中,首先需要在`pom.xml`或`build.gradle`文件中引入Redis的依赖,通常使用`spring-boot-starter-data-redis`起步依赖。 - **配置Redis**:在`...

    springboot_redis

    描述中提到的“spring boot 集成redis”是一个示例项目,提供了如何在Spring Boot应用中整合Redis的具体步骤。通过访问提供的博客链接(http://blog.csdn.net/woniu211111/article/details/54564308),我们可以深入...

    springboot 整合ehcache+redis 通过配置文件切换缓存类型

    1、springboot 整合ehcache+redis 通过配置文件application.yml切换缓存类型 2、ehcache 、redis 通过缓存管理器管理 3、可分别设置缓存的过期时间 ehcache :添加依赖 pom.xml 2、添加配置文件ehcache.xml 3、添加...

    SpringBoot+Mybatis+Redis框架Demo

    **二、SpringBoot整合Redis** 1. **添加依赖**:在`pom.xml`中引入SpringBoot的Redis Starter。 ```xml &lt;groupId&gt;org.springframework.boot &lt;artifactId&gt;spring-boot-starter-data-redis ``` 2. **配置Redis*...

    SpringBoot2整合Redis多数据源步骤详解

    SpringBoot2整合Redis多数据源步骤详解 SpringBoot2整合Redis多数据源是一个非常重要的知识点, especially 在分布式系统中,REDIS作为一个高性能的Key-Value数据库,广泛应用于缓存、Session管理、消息队列等领域...

    springboot_mysql_redis-master.zip

    《SpringBoot、MySQL与Redis整合应用详解》 在现代的Web开发中,SpringBoot以其简洁的配置、快速的启动和强大的功能,已经成为Java开发者首选的框架之一。本项目"springboot_mysql_redis-master.zip"旨在展示如何在...

    基于SpringBoot、Mybatis的redis数据缓存

    SpringBoot通过`spring-boot-starter-data-redis`起步依赖,可以方便地配置和使用Redis,包括设置连接池、数据序列化方式等。 **4. Redis缓存MySQL数据** 在SpringBoot应用中,可以使用Spring Data Redis库提供的`...

    最简单的springboot+mybatis+redis项目

    **SpringBoot + MyBatis + Redis 项目简介** ...总的来说,这个项目是学习SpringBoot、MyBatis和Redis整合的一个基础平台,通过它,开发者可以迅速掌握这三大技术的使用,并为后续的复杂项目打下坚实的基础。

Global site tag (gtag.js) - Google Analytics