關(guān)于 Redis 配置

設(shè)置配置類

@Configuration
public class RedisConfig {

    @Value("${spring.data.redis.host}")
    private String host;

    @Value("${spring.data.redis.port}")
    private int port;

    @Value("${spring.data.redis.password}")
    private String password;

    @Value("${spring.data.redis.database}")
    private int database;

    @Value("${spring.data.redis.jedis.pool.max-active}")
    private int maxActive;

    @Value("${spring.data.redis.jedis.pool.max-idle}")
    private int maxIdle;

    @Value("${spring.data.redis.jedis.pool.min-idle}")
    private int minIdle;

    @Value("${spring.data.redis.jedis.pool.max-wait-millis}")
    private int maxWaitMillis;

    @Bean
    public JedisPoolConfig jedisPoolConfig() {
        JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();
        jedisPoolConfig.setMaxTotal(maxActive);
        jedisPoolConfig.setMaxIdle(maxIdle);
        jedisPoolConfig.setMinIdle(minIdle);
        jedisPoolConfig.setMaxWaitMillis(maxWaitMillis);
        return jedisPoolConfig;
    }

    @Bean
    public RedisConnectionFactory redisConnectionFactory() {
        JedisConnectionFactory jedisConnectionFactory = new JedisConnectionFactory();
        jedisConnectionFactory.setHostName(host);
        jedisConnectionFactory.setPort(port);
        jedisConnectionFactory.setPassword(password);
        jedisConnectionFactory.setDatabase(database);
        jedisConnectionFactory.setPoolConfig(jedisPoolConfig());
        return jedisConnectionFactory;
    }

    @Bean
    public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory connectionFactory)
    {
        RedisTemplate<String, Object> template = new RedisTemplate<>();
        template.setConnectionFactory(connectionFactory);

        // 使用 Jackson2JsonRedisSerializer 序列化值
        Jackson2JsonRedisSerializer<Object> serializer = new Jackson2JsonRedisSerializer<>(Object.class);
        template.setValueSerializer(serializer);
        template.setHashValueSerializer(serializer);

        // 使用 StringRedisSerializer 序列化鍵
        template.setKeySerializer(new StringRedisSerializer());
        template.setHashKeySerializer(new StringRedisSerializer());

        return template;
    }
}

這里要使用Jackson2JsonRedisSerializer,
不建議使用GenericJackson2JsonRedisSerializer

Jackson2JsonRedisSerializer 序列化的結(jié)果是
{"name":"張三","age":30}
GenericJackson2JsonRedisSerializer序列化的結(jié)果是
{"@class":"com.example.SerializerTest$Person","name":"張三","age":30}

配置 application-redis.properties 文件

# 指定 Redis 服務(wù)器的主機(jī)地址,這里配置為本地回環(huán)地址。
spring.data.redis.host=127.0.0.1
# 指定 Redis 服務(wù)器監(jiān)聽的端口號(hào),6379 是 Redis 默認(rèn)端口
spring.data.redis.port=6379
# 設(shè)置連接 Redis 服務(wù)器所需的密碼
spring.data.redis.password=000000
# 指定要使用的 Redis 數(shù)據(jù)庫索引,Redis 可包含多個(gè)邏輯數(shù)據(jù)庫,默認(rèn)為 0。
spring.data.redis.database=0

# 連接池的最大活躍連接數(shù),達(dá)到該值后若再獲取連接,可能會(huì)阻塞或報(bào)錯(cuò)。
spring.data.redis.jedis.pool.max-active=100
# 連接池允許的最大空閑連接數(shù),超過此數(shù)的空閑連接會(huì)被釋放。
spring.data.redis.jedis.pool.max-idle=10
# 連接池保持的最小空閑連接數(shù),確保一定數(shù)量的空閑連接隨時(shí)可用。
spring.data.redis.jedis.pool.min-idle=10
# 從連接池獲取連接時(shí)的最大等待時(shí)間(毫秒),超時(shí)將拋出異常。
spring.data.redis.jedis.pool.max-wait-millis=2000
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容