zoukankan      html  css  js  c++  java
  • 使用 Spring data redis 结合 Spring cache 缓存数据配置

    使用 JavaConfig 方式配置

    依赖 jar 包: jedis、spring-data-redis 

    首先需要进行 Redis 相关配置

    @Configuration
    public class RedisConfig {
        
        @Bean
        public JedisPoolConfig poolConfig() {
            JedisPoolConfig poolConfig = new JedisPoolConfig();
            poolConfig.setMaxTotal(10);
            poolConfig.setMaxIdle(1);
            return poolConfig;
        }
        
        @Bean
        public RedisConnectionFactory redisConnectionFactory(JedisPoolConfig poolConfig) {
            JedisConnectionFactory cf = new JedisConnectionFactory();
            cf.setHostName("localhost");
            cf.setPort(6379);
    //      cf.setPassword("XXX");
            cf.setPoolConfig(poolConfig);
            return cf;
        }
        
        @Bean
        public RedisTemplate redisTemplate(RedisConnectionFactory redisConnectionFactory) {
            RedisTemplate redisTemplate = new RedisTemplate();
            redisTemplate.setConnectionFactory(redisConnectionFactory);
          
            // 如果 key 确定使用 String 类型,可以使用这个序列化类,方便查看
            // redisTemplate.setKeySerializer(new StringRedisSerializer());
            // value 的序列化默认使用 JdkSerializationRedisSerializer
            
            redisTemplate.afterPropertiesSet();
            return redisTemplate;
        }
    }

    之后需要进行 Spring Cache 的配置

    @Configuration
    // 启用缓存
    @EnableCaching
    // 引用 Redis 的配置
    @Import({RedisConfig.class})
    public class CacheConfig {
        @Bean
        public CacheManager cacheManager(RedisTemplate redisTemplate) {
            RedisCacheManager cacheManager = new RedisCacheManager(redisTemplate);
            // 设置默认过期时间(秒)
            cacheManager.setDefaultExpiration(60);
         // 如果需要单独设置key的过期时间,可以使用 cacheManager.setExpires((Map<String, Long> expires)
    return cacheManager; } }

    注意:

    1、要进行缓存的类必须实现 Serializable 接口

    2、因为实现方式为使用代理,所以类内部调用不会触发缓存

     

  • 相关阅读:
    数据库拉取附件到本地
    Https工具类
    AES加密算法
    DES加密算法
    Http工具类,Lz提供
    接口调用工具类
    autofac生命周期入门(如何避免内存泄漏)
    ASP.NET异步
    Global Error Handling in ASP.NET Web API 2(webapi2 中的全局异常处理)
    ado.net EF学习系列----深入理解查询延迟加载技术(转载)
  • 原文地址:https://www.cnblogs.com/zawier/p/7354849.html
Copyright © 2011-2022 走看看