您的位置:首页 > 数据库 > Redis

java redis相关操作类

2016-05-23 10:38 387 查看
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();

            }

        }

    }

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  redis java