Class AbstractRedisConfig

java.lang.Object
com.imyeyu.spring.config.AbstractRedisConfig
All Implemented Interfaces:
org.springframework.cache.annotation.CachingConfigurer

public abstract class AbstractRedisConfig extends Object implements org.springframework.cache.annotation.CachingConfigurer
抽象 RedisConfig
Version:
2021-11-21 10:00
Author:
夜雨
  • Constructor Summary

    Constructors
    Modifier
    Constructor
    Description
    protected
    创建 Redis 配置
  • Method Summary

    Modifier and Type
    Method
    Description
    protected abstract RedisConfigParams
    构建 Redis 基本配置
    abstract org.apache.commons.pool2.impl.GenericObjectPoolConfig<io.lettuce.core.api.StatefulConnection<?,?>>
    连接池配置
    <K, V> Redis<K,V>
    getRedis(int database, org.springframework.data.redis.serializer.RedisSerializer<K> keySerializer)
    构造自定义 RedisTemplate
    <K, V> Redis<K,V>
    getRedis(int database, org.springframework.data.redis.serializer.RedisSerializer<K> keySerializer, org.springframework.data.redis.serializer.RedisSerializer<V> valueSerializer)
    构造自定义 RedisTemplate
    abstract org.springframework.cache.interceptor.KeyGenerator
    Redis key 生成策略

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

    Methods inherited from interface org.springframework.cache.annotation.CachingConfigurer

    cacheManager, cacheResolver, errorHandler
  • Constructor Details

    • AbstractRedisConfig

      protected AbstractRedisConfig()
      创建 Redis 配置
  • Method Details

    • configParams

      protected abstract RedisConfigParams configParams()
      构建 Redis 基本配置
      Returns:
      Redis 基本配置
    • getPoolConfig

      public abstract org.apache.commons.pool2.impl.GenericObjectPoolConfig<io.lettuce.core.api.StatefulConnection<?,?>> getPoolConfig()
      连接池配置

      参考:

           GenericObjectPoolConfig<StatefulConnection<?, ?>> config = new GenericObjectPoolConfig<>();
           config.setMaxTotal(config.getMaxActive());
           config.setMinIdle(config.getMinIdle());
           config.setMaxIdle(config.getMaxIdle());
           config.setMaxWait(Duration.ofMillis(config.getMaxWait()));
       
      Returns:
      GenericObjectPoolConfig
    • keyGenerator

      public abstract org.springframework.cache.interceptor.KeyGenerator keyGenerator()
      Redis key 生成策略

      参考:

           return (target, method, params) -> {
               StringBuilder sb = new StringBuilder();
               sb.append(target.getClass().getName());
               sb.append(method.getName());
               for (Object obj : params) {
                   sb.append(obj.toString());
               }
               return sb.toString();
           };
       
      Specified by:
      keyGenerator in interface org.springframework.cache.annotation.CachingConfigurer
      Returns:
      KeyGenerator
    • getRedis

      public <K, V> Redis<K,V> getRedis(int database, org.springframework.data.redis.serializer.RedisSerializer<K> keySerializer)
      构造自定义 RedisTemplate
      Type Parameters:
      K - 键类型
      V - 值类型
      Parameters:
      database - 数据库
      keySerializer - 键序列化方式
      Returns:
      RedisTemplate
    • getRedis

      public <K, V> Redis<K,V> getRedis(int database, org.springframework.data.redis.serializer.RedisSerializer<K> keySerializer, org.springframework.data.redis.serializer.RedisSerializer<V> valueSerializer)
      构造自定义 RedisTemplate

      针对同一服务器不同数据库

      Type Parameters:
      K - 键类型
      V - 值类型
      Parameters:
      database - 数据库
      keySerializer - 键序列化方式
      valueSerializer - 值序列化方式
      Returns:
      RedisTemplate