Springboot2.0整合redis基于注解使用.md



版本:

Springboot 2.0
spring 5.0
jdk 1.8.0_121
redis Windows版3.2.100

Windows版redis下载地址

pom依赖

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>

redis配置

配置文件

spring.redis.database=1
spring.redis.host=localhost
spring.redis.port=6379
spring.redis.password=root
spring.redis.timeout=20
spring.redis.jedis.pool.max-active=8
spring.redis.jedis.pool.max-wait=-1
spring.redis.jedis.pool.max-idle=5
spring.redis.jedis.pool.min-idle=0

Redis 配置类

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.cache.Cache;
import org.springframework.cache.annotation.CachingConfigurerSupport;
import org.springframework.cache.annotation.EnableCaching;
import org.springframework.cache.interceptor.CacheErrorHandler;
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.GenericJackson2JsonRedisSerializer;
import org.springframework.data.redis.serializer.RedisSerializationContext;
import org.springframework.data.redis.serializer.StringRedisSerializer;

/**
 * @Author: YiHong
 * @Description: Redis 配置类
 * @Date: Created in 14:29  2018/11/27.
 * @Modified By:
 */
@Configuration
@EnableCaching
public class RedisConfig extends CachingConfigurerSupport {
    private static final Logger logger = LoggerFactory.getLogger(RedisConfig.class);

    @Bean
    public RedisCacheConfiguration redisCacheConfiguration() {
        return RedisCacheConfiguration
                .defaultCacheConfig()
                .serializeKeysWith(
                        RedisSerializationContext
                                .SerializationPair
                                .fromSerializer(new StringRedisSerializer()))
                .serializeValuesWith(
                        RedisSerializationContext
                                .SerializationPair
                                .fromSerializer(new GenericJackson2JsonRedisSerializer()));
    }

    @Override
    @Bean
    public CacheErrorHandler errorHandler() {
        // 异常处理,当Redis发生异常时,打印日志,但是程序正常走
        logger.info("初始化 -> [{}]", "Redis CacheErrorHandler");
        CacheErrorHandler cacheErrorHandler = new CacheErrorHandler() {
            @Override
            public void handleCacheGetError(RuntimeException e, Cache cache, Object key) {
                logger.error("Redis occur handleCacheGetError:key -> [{}]", key, e);
            }

            @Override
            public void handleCachePutError(RuntimeException e, Cache cache, Object key, Object value) {
                logger.error("Redis occur handleCachePutError:key -> [{}];value -> [{}]", key, value, e);
            }

            @Override
            public void handleCacheEvictError(RuntimeException e, Cache cache, Object key) {
                logger.error("Redis occur handleCacheEvictError:key -> [{}]", key, e);
            }

            @Override
            public void handleCacheClearError(RuntimeException e, Cache cache) {
                logger.error("Redis occur handleCacheClearError:", e);
            }
        };
        return cacheErrorHandler;
    }
}

具体使用--->基于注解

在serviceImpl使用注解

 /**
     * 根据id查询
     *
     * @param id 
     * @return
     */ 
    @Cacheable(value = "configu",key="#id")
    @Override
    public CarseriesConfiguration selectById(String id) {
        return carseriesConfigurationMapper.selectById(id);
    }

至此,就全部ok了。

下面进行测试:

第一次执行该方法,redis数据库存入了该数据,并且控制台打印了sql语句。

redis客户端查看

第二次执行该方法,控制台没有输出sql语句,说明是从redis拿出数据。

以上就是springboot2.0整合redis基于注解的使用。在下一篇,会详细讲解几种注解的使用。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,736评论 19 139
  • RedisRedis命令参考网址:http://doc.redisfans.com/ Redis 简介Redis ...
    野柳阅读 1,250评论 0 9
  • 你一直怕我惊怕我扰,而我却不能做什么去回报你。 世间所有的爱都指向团聚,唯独父母的爱指 向别离―...
    十安童学阅读 715评论 3 2
  • 水榭歌沨阅读 523评论 8 6
  • 亲爱的宝贝你好: 最近妈妈每次回来都有看到你的留言,妈妈既高兴又心疼还有点担忧。 高兴的是你已经长大了,会准确地表...
    梁小翠阅读 570评论 2 1

友情链接更多精彩内容