java redis相关操作类

import org.springframework.stereotype.Component;
import java.util.Arrays;
import java.util.List;


import lombok.extern.slf4j.Slf4j;
import redis.clients.jedis.Jedis;


/**
 * Created by echo on 15-8-27. 有关redis的相关操作类
 */
@Component
@Slf4j
public class JedisComponent {


    public static final Integer SECONDS = 300;


    /**
     * 获得redis连接
     */
    public Jedis getJedis() {
        Jedis jedis = JedisPoolInfos.getMasterJedis();


//        if (StringUtils.isBlank(redisConfig))
//            throw new RuntimeException("redis config can not be  null.");
//        String[] tempArray = redisConfig.split("\\:");
//        for (String str : tempArray) {
//            if (StringUtils.isBlank(str))
//                throw new RuntimeException("redis config format error. ");
//            if (tempArray.length < 3)
//                throw new RuntimeException("redis config format error. ");
//        }
//        Jedis jedis = new Jedis(redisConfig);//redis服务器的ip和端口


        if (!jedis.isConnected()) {
            throw new RuntimeException("redis connected error. ");
        }
        return jedis;
    }


    /**
     * 删除对应key值数据
     */
    public Boolean delKey(String key) {
//        log.info("redis command ={},key={}", "delKey", key);
        Jedis jedis = null;
        try {
            jedis = getJedis();
            return jedis.del(key) == 1L ? Boolean.TRUE : Boolean.FALSE;//删除key
        } finally {
            if (jedis != null) {
                jedis.close();
            }
        }
    }


    /**
     * 对存储在指定key的数值执行原子的加1操作。
     */
    public Long incr(String key) {
//        log.info("redis command ={},key={}", "incr", key);
        Jedis jedis = null;
        try {
            jedis = getJedis();
            return jedis.incr(key);
        } finally {
            if (jedis != null) {
                jedis.close();
            }
        }
    }


    /**
     * 判断某个key值是否存在
     */
    public Boolean isExist(String key) {
//        log.info("redis command ={},key={}", "isExist", key);
        Jedis jedis = null;
        try {
            jedis = getJedis();
            return jedis.exists(key);
        } finally {
            if (jedis != null) {
                jedis.close();
            }
        }
    }




    /**
     * 多个key 逗号连接
     */
    public Boolean addKeys(String keys, String model, Integer userId) {
        Jedis jedis = null;
        try {
            jedis = getJedis();
            List<String> keyList = Arrays.asList(keys.split(","));
            for (String key : keyList) {
                if (jedis.exists(model + "_" + key)) {
                    return Boolean.FALSE;
                }
            }
            for (String key : keyList) {
                jedis.set(model + "_" + key, userId.toString());
            }
            for (String key : keyList) {
                if (jedis.exists(model + "_" + key)) {
                    System.out.println(model + "_" + key + "的Value:" + jedis.get(model + "_" + key));
                    return Boolean.TRUE;
                }
            }
            return Boolean.FALSE;
        } finally {
            if (jedis != null) {
                jedis.close();
            }
        }
    }


    /**
     * 仅当key不存在时才Set,超时时间为缺省时间300s
     */
    public Boolean add(String key, String model, String value) {
//        log.info("redis command ={},key={},value={}", "add", model + "_" + key, value);
        Jedis jedis = null;
        try {
            jedis = getJedis();
            if (jedis.setnx(model + "_" + key, value) == 1) {
                jedis.expire(model + "_" + key, SECONDS);
                return Boolean.TRUE;
            }
            return Boolean.FALSE;
        } finally {
            if (jedis != null) {
                jedis.close();
            }
        }
    }


    /**
     * 仅当key不存在时才Set,超时时间为自定义时间
     */
    public Boolean addSeconds(String key, String model, String value, Integer seconds) {
//        log.info("redis command ={},key={},value={}", "addSeconds", model + "_" + key, value);
        Jedis jedis = null;
        try {
            jedis = getJedis();
            if (jedis.setnx(model + "_" + key, value) == 1) {
                jedis.expire(model + "_" + key, seconds);
                return Boolean.TRUE;
            }
            return Boolean.FALSE;
        } finally {
            if (jedis != null) {
                jedis.close();
            }
        }
    }


    /**
     * 根据key获取对应值
     */
    public String get(String key) {
//        log.info("redis command ={},key={}", "get", key);
        Jedis jedis = null;
        try {
            jedis = getJedis();
            return jedis.get(key);
        } finally {
            if (jedis != null) {
                jedis.close();
            }
        }
    }


    /**
     * 不管key存不存在,设置自定义超时时间的key值
     */
    public Boolean set(String key, int seconds, String value) {
//        log.info("redis command ={},key={},value={}", "set", key, value);
        Jedis jedis = null;
        try {
            jedis = getJedis();
            String status = jedis.setex(key, seconds, value);
            if ("OK".equals(status)) {
                return Boolean.TRUE;
            } else {
                return Boolean.FALSE;
            }
        } finally {
            if (jedis != null) {
                jedis.close();
            }
        }
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值