【Redis-工具类】自定义Redis工具类并使用其进行简单操作

【Redis-工具类】自定义Redis工具类并使用其进行简单操作

<dependency>
    <groupId>redis.clients</groupId>
    <artifactId>jedis</artifactId>
    <version>2.9.0</version>
</dependency>

1)自定义 Redis 工具类

package gaei.cn.x5l.x5lhive2cos.utils;


import gaei.cn.x5l.x5lhive2cos.CosDataBackupHistory;
import gaei.cn.x5l.x5lhive2cos.conf.ConfigTools;
import lombok.extern.slf4j.Slf4j;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;

import java.io.Serializable;
import java.util.Map;

@Slf4j
public class JedisPoolUtils implements Serializable {
    private static JedisPool pool;

    /**
     * 建立连接池 真实环境,一般把配置参数缺抽取出来。
     */
    private static void createJedisPool(Map redisMap) {

        // 建立连接池配置参数
        JedisPoolConfig config = new JedisPoolConfig();

        config.setMaxTotal((int) redisMap.get("maxtotal"));
        System.out.println("redis连接池最大值:" + (int) redisMap.get("maxtotal"));
        config.setMaxIdle((int) redisMap.get("maxidle"));
        System.out.println("redis连接池默认值:" + (int) redisMap.get("maxidle"));
        config.setMaxWaitMillis((Integer.parseInt(String.valueOf(redisMap.get("timeout")))));
        // 创建连接池
        pool = new JedisPool(config, (String) redisMap.get("host"), (int) redisMap.get("port"), Integer.parseInt(String.valueOf(redisMap.get("timeout"))), (String) redisMap.get("password"));
    }

    /**
     * 在多线程环境同步初始化
     */
    private static synchronized void poolInit(Map redisMap) {
        if (pool == null) {
            createJedisPool(redisMap);
        }
    }

    /**
     * 获取一个jedis 对象
     *
     * @return
     */
    public static Jedis getJedis(Map redisMap) {

        if (pool == null) {
            poolInit(redisMap);
        }
        Jedis resource = pool.getResource();
        System.out.println("redis 连接状态:" + resource.isConnected());
        return resource;
    }

    public static void returnResource(Jedis jedis) {
        if (jedis != null) {
            jedis.close();
        }
    }

    public static synchronized void destroy() {
        if (pool != null) {
            pool.close();
            pool.destroy();
        }
    }

    public static void main(String[] args) {
//        ConfigTools.initConf("local");
        ConfigTools.initMySqlConf("CosBackupHistoryOriginal", CosDataBackupHistory.class);
        Map redis = (Map) ConfigTools.mapConf.get("redis");
        Jedis jedis = getJedis(redis);
        jedis.hset("test1", "20230606", "1");
        String test1 = jedis.hget("test1", "20230606");
        System.out.println(test1);
    }

//    public static void clearRedis(String hbaseTableprefix,String msgType,Map redisMap) {
//        Jedis jedis = JedisPoolUtils.getJedis();
//        try {
//            jedis.del((String) redisMap.get("host") + hbaseTableprefix + msgType);
//        } catch (Exception e) {
//            log.error("close jedis error");
//        } finally {
//            jedis.close();
//        }
//    }
}

2)工具类的简单使用

//获取通过工具类获取jedis对象
Jedis jedis = getJedis(redis);
//向hset中写入数据
jedis.hset(key, field, value);
//获取hset中的数据(根绝key和field获取value,通过value可以进行过滤操作)
if ("1".equals(jedis.hget(redisKey, partition))) {
    return true;
}
//释放资源
JedisPoolUtils.returnResource(jedis);

在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值