Java开发中的工具类——基于JedisPool的Redis工具类

本文介绍了在Java开发中如何利用JedisPool创建Redis工具类,包括Maven依赖、Redis配置、@Cacheable注解的数据缓存使用,并详细讲解了自定义Redis工具类的实现,包括序列化工具类、客户端工具类及其使用示例,旨在提升开发效率和灵活性。
摘要由CSDN通过智能技术生成

目录

一、Maven依赖

二、Redis配置类

三、使用@Cacheable注解进行数据缓存

四、自定义Redis工具类及使用

4.1 序列化工具类

4.2 redis客户端工具类

4.3 redis客户端工具类使用Demo


在日常的开发中,使用Redis作为缓存中间件来提高查询性能已经很常见。通常为了简化开发,提高开发效率,我们在实际开发中会封装一些工具类来满足我们的诉求。

本文以Java工程为例,介绍基于JedisPool的Redis工具类的使用。

一、Maven依赖

<!-- jedis依赖-->
<dependency>
    <groupId>redis.clients</groupId>
    <artifactId>jedis</artifactId>
    <version>2.9.3</version>
</dependency>

二、Redis配置类

import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.cache.annotation.EnableCaching;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.cache.RedisCacheConfiguration;
import org.springframework.data.redis.cache.RedisCacheManager;
import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.connection.RedisStandaloneConfiguration;
import org.springframework.data.redis.connection.jedis.JedisClientConfiguration;
import org.springframework.data.redis.connection.jedis.JedisConnectionFactory;
import redis.clients.jedis.JedisPoolConfig;

import java.time.Duration;
import java.util.HashSet;
import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;

/**
 * Redis配置类,Redis集群为主从模式。
 */
@Configuration
@Slf4j
@EnableCaching
public class RedisConfig {

    /**
     * 30分钟缓存
     */
    public final static Integer SECOND_1800 = 30*60;
    /**
     * Redis Host
     */
    @Value("${spring.redis.host}")
    private String redisHost;
    /**
     * Redis Port
     */
    @Value("${spring.redis.port}")
    private Integer redisPort;
    /**
     * Redis Password
     */
    @Value("${spring.redis.password}")
    private String redisPassWord;

    /**
     * jedis pool config
     * 配置连接池线程数(减少线程的频繁创建带来的开销)、超时时间(提高服务可用性)等参数。
     * @return
     */
    @Bean
    public JedisPoolConfig jedisPoolConfig() {
        JedisPoolConfig config = new JedisPoolConfig();
        // 连接池中最小空闲连接
        config.setMinIdle(1);
        // 连接池中最大空闲连接
        config.setMaxIdle(8);
        // 连接池最大连接数
        config.setMaxTotal(8);
        // 连接池最大堵塞等待时间,2000ms
        config.setMaxWaitMillis(2000L);
        // 获取连接时校验有效性
        config.setTestOnBorrow(true);
        // 连接空闲时定时校验有效性
        config.setTestWhileIdle(true);
        // 连接空闲时定时校验有效性间隔时间,1分钟
        config.setTimeBetweenEvictionRunsMillis(1000L*60);
        return config;
    }

    /**
     * 创建JedisClient
     * @return
     */
    @Bean
    public JedisClientConfiguration jedisClientConfiguration(JedisPoolConfig jedisPoolConfig) {
        JedisClientConfiguration.JedisClientConfigurationBuilder builder = JedisClientConfiguration.builder();
        return builder.usePooling()
                .poolConfig(jedisPoolConfig)
                .build();
    }

    /**
     * 配置Redis连接。
     * Reids一共提供了RedisStandaloneConfiguration(单节点)、RedisSentinelConfiguration(哨兵)、RedisClusterConfiguration(集群)
     * @return
     */
    @Bean
    RedisStandaloneConfiguration redisStandaloneConfiguration() {
        RedisStandaloneConfiguration redisStandaloneConfiguration = new RedisStandaloneConfiguration();
        redisStandaloneConfiguration.setHostName(redisHost);
        redisStandaloneConfiguration.
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值