• Redis操作字符串工具类封装,Redis工具类封装


    Redis操作字符串工具类封装,Redis工具类封装

    >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>.

    蕃薯耀 2016年9月22日 15:15:32 星期四

    http://fanshuyao.iteye.com/

    Redis操作字符串工具类封装:http://fanshuyao.iteye.com/blog/2326221

    Redis操作Hash工具类封装:http://fanshuyao.iteye.com/blog/2327134

    Redis操作List工具类封装:http://fanshuyao.iteye.com/blog/2327137

    Redis操作Set工具类封装:http://fanshuyao.iteye.com/blog/2327228

    package com.lqy.spring.redis;
    
    import redis.clients.jedis.Jedis;
    import redis.clients.jedis.JedisPool;
    
    public class RedisPoolUtils {
    	private static JedisPool jedisPool = new JedisPool("127.0.0.1", 6379);
    	/**
    	 * 成功,"OK"
    	 */
    	private static final String SUCCESS_OK = "OK";
    	/**
    	 * 成功,1L
    	 */
    	private static final Long SUCCESS_STATUS_LONG = 1L;
    	/**
    	 * 只用key不存在时才设置。Only set the key if it does not already exist
    	 */
    	private static final String NX = "NX";
    	/**
    	 * XX -- 只有key存在时才设置。和NX相反。Only set the key if it already exist.
    	 */
    	private static final String XX = "XX";
    	/**
    	 * EX|PX, 时间单位,EX是秒,PX是毫秒。expire time units: EX = seconds; PX = milliseconds
    	 */
    	private static final String EX = "EX";
    	/**
    	 * EX|PX, 时间单位,EX是秒,PX是毫秒。expire time units: EX = seconds; PX = milliseconds
    	 */
    	//private static final String PX = "PX";
    	
    	/**
    	 * 成功返回true
    	 * @param key
    	 * @param value
    	 * @return
    	 */
    	public static boolean set(String key, String value){
    		Jedis jedis = jedisPool.getResource();
    		String statusCode = jedis.set(key, value);
    		jedis.close();
    		if(SUCCESS_OK.equalsIgnoreCase(statusCode)){
    			return true;
    		}
    		return false;
    	}
    	
    	/**
    	 * 返回值
    	 * @param key
    	 * @return
    	 */
    	public static String get(String key){
    		Jedis jedis = jedisPool.getResource();
    		String value = jedis.get(key);
    		jedis.close();
    		return value;
    	}
    	
    	/**
    	 * 设置key值和过期时间
    	 * @param key
    	 * @param value
    	 * @param seconds 秒数,不能小于0
    	 * @return
    	 */
    	public static boolean setByTime(String key, String value, int seconds){
    		if(seconds < 0){
    			return false;
    		}
    		Jedis jedis = jedisPool.getResource();
    		String statusCode = jedis.setex(key, seconds, value);
    		if(SUCCESS_OK.equalsIgnoreCase(statusCode)){
    			return true;
    		}
    		return false;
    	}
    	
    	/**
    	 * 
    	 * @param key
    	 * @param value
    	 * @param nxxx NX|XX  是否存在
    	 * <li>NX -- Only set the key if it does not already exist.</li>
    	 * <li>XX -- Only set the key if it already exist.</li>
    	 * @param expx EX|PX, expire time units ,时间单位格式,秒或毫秒
    	 * <li>EX = seconds;</li>
    	 * <li>PX = milliseconds</li>
    	 * @param time expire time in the units of expx,时间(long型),不能小于0
    	 * @return
    	 */
    	public static boolean set(String key, String value, 
    			String nxxx, String expx, long time){
    		Jedis jedis = jedisPool.getResource();
    		//Status code reply
    		if(time < 0){
    			return false;
    		}
    		String statusCode = jedis.set(key, value, nxxx, expx, time);
    		jedis.close();
    		if(SUCCESS_OK.equalsIgnoreCase(statusCode)){
    			return true;
    		}
    		return false;
    	}
    	
    	/**
    	 * 设置key
    	 * @param key
    	 * @param value
    	 * @param nxxx NX|XX 是否需要存在
    	 * <li>NX -- Only set the key if it does not already exist.</li> 
    	 * <li>XX -- Only set the key if it already exist.</li> 
    	 * @return
    	 */
    	public static boolean set(String key, String value, 
    			String nxxx){
    		Jedis jedis = jedisPool.getResource();
    		String statusCode = jedis.set(key, value, nxxx);
    		jedis.close();
    		if(SUCCESS_OK.equalsIgnoreCase(statusCode)){
    			return true;
    		}
    		return false;
    	}
    	
    	/**
    	 * 当key不存在时,设置值,成功返回true
    	 * @param key
    	 * @param value
    	 * @return
    	 */
    	public static boolean setIfNotExists(String key, String value){
    		Jedis jedis = jedisPool.getResource();
    		//1 if the key was set, 0 if the key was not set
    		Long statusCode = jedis.setnx(key, value);
    		jedis.close();
    		if(SUCCESS_STATUS_LONG == statusCode){
    			return true;
    		}
    		return false;
    	}
    	
    	/**
    	 * 当key不存在时,设置值,成功返回true,同setIfNotExists
    	 * @param key
    	 * @param value
    	 * @return
    	 */
    	public static boolean setNX(String key, String value){
    		return setIfNotExists(key, value);
    	}
    	
    	/**
    	 * 仅当key不存在时则设置值,成功返回true,存在时不设置值
    	 * @param key
    	 * @param value
    	 * @param seconds,秒数,不能小于0
    	 * @return
    	 */
    	public static boolean setIfNotExists(String key, String value, long seconds){
    		if(seconds < 0){
    			return false;
    		}
    		return set(key, value, NX, EX, seconds);
    	}
    	
    	/**
    	 * 仅当key不存在时则设置值,成功返回true,存在时不设置值,同setIfNotExists(key, value, seconds)
    	 * @param key
    	 * @param value
    	 * @param seconds
    	 * @return
    	 */
    	public static boolean setNX(String key, String value, Long seconds){
    		return setIfNotExists(key, value, seconds);
    	}
    	
    	/**
    	 * 当key存在时则设置值,成功返回true,不存在不设置值
    	 * @param key
    	 * @param value
    	 * @return
    	 */
    	public static boolean setIfExists(String key, String value){
    		return set(key, value, XX);
    	}
    	
    	/**
    	 * 当key存在时则设置值,成功返回true,不存在不设置值,同setIfExists
    	 * @param key
    	 * @param value
    	 * @return
    	 */
    	public static boolean setXX(String key, String value){
    		return setIfExists(key, value);
    	}
    	
    	/**
    	 * 仅当key存在时则设置值,成功返回true,不存在不设置值
    	 * @param key
    	 * @param value
    	 * @param seconds,秒数,不能小于0
    	 * @return
    	 */
    	public static boolean setIfExists(String key, String value, long seconds){
    		if(seconds < 0){
    			return false;
    		}
    		return set(key, value, XX, EX, seconds);
    	}
    	
    	/**
    	 * 仅当key存在时则设置值,成功返回true,不存在不设置值
    	 * @param key
    	 * @param value
    	 * @param seconds,秒数,不能小于0
    	 * @return
    	 */
    	public static boolean setXX(String key, String value, long seconds){
    		return setIfExists(key, value, seconds);
    	}
    	
    	/**
    	 * 设置超期时间
    	 * @param key
    	 * @param seconds 为Null时,将会马上过期。可以设置-1,0,表示马上过期
    	 * @return
    	 */
    	public static boolean setTime(String key, Integer seconds){
    		if(seconds == null){
    			seconds = -1;
    		}
    		Jedis jedis = jedisPool.getResource();
    		Long statusCode = jedis.expire(key, seconds);
    		jedis.close();
    		if(SUCCESS_STATUS_LONG == statusCode){
    			return true;
    		}
    		return false;
    	}
    	
    	/**
    	 * 设置超期时间
    	 * @param key
    	 * @param seconds 为Null时,将会马上过期。可以设置-1,0,表示马上过期
    	 * @return
    	 */
    	public static boolean setOutTime(String key, Integer seconds){
    		return setTime(key, seconds);
    	}
    	
    	/**
    	 * 设置超期时间
    	 * @param key
    	 * @param seconds 秒数,为Null时,将会马上过期。可以设置-1,0,表示马上过期
    	 * @return
    	 */
    	public static boolean expire(String key, Integer seconds){
    		return setTime(key, seconds);
    	}
    	
    	/**
    	 * 判断key是否存在,存在返回true
    	 * @param key
    	 * @return
    	 */
    	public static boolean exists(String key){
    		Jedis jedis = jedisPool.getResource();
    		boolean result = jedis.exists(key);
    		jedis.close();
    		return result;
    	}
    	
    	/**
    	 * 判断key是否存在,存在返回true
    	 * @param key
    	 * @return
    	 */
    	public static boolean isExists(String key){
    		return exists(key);
    	}
    	
    	/**
    	 * 将key设置为永久
    	 * @param key
    	 * @return
    	 */
    	public static boolean persist(String key){
    		long time = getTime(key);
    		if(time == -1){
    			return true;
    		}
    		Jedis jedis = jedisPool.getResource();
    		//已经是永久的,返回0
    		Long statusCode = jedis.persist(key);
    		jedis.close();
    		if(SUCCESS_STATUS_LONG == statusCode){
    			return true;
    		}
    		return false;
    	}
    	
    	/**
    	 * 获取剩余时间(秒)
    	 * @param key
    	 * @return
    	 */
    	public static Long getTime(String key){
    		Jedis jedis = jedisPool.getResource();
    		Long time = jedis.ttl(key);
    		jedis.close();
    		return time;
    	}
    	
    	/**
    	 * 获取剩余时间(秒)
    	 * @param key
    	 * @return
    	 */
    	public static Long Ttl(String key){
    		return getTime(key);
    	}
    	
    	/**
    	 * 随机获取一个key
    	 * @return
    	 */
    	public static String randomKey(){
    		Jedis jedis = jedisPool.getResource();
    		String key = jedis.randomKey();
    		jedis.close();
    		return key;
    	}
    	
    	/**
    	 * 随机获取一个key
    	 * @return
    	 */
    	public static String random(){
    		return randomKey();
    	}
    	
    	/**
    	 * 修改 key 的名称,成功返回true,如果不存在该key,则会抛错:ERR no such key
    	 * 注:如果newKey已经存在,则会进行覆盖。建议使用renameNX
    	 * @param oldkey 原来的key
    	 * @param newKey 新的key
    	 * @return
    	 */
    	public static boolean rename(String oldkey, String newKey){
    		Jedis jedis = jedisPool.getResource();
    		String statusCode = jedis.rename(oldkey, newKey);
    		jedis.close();
    		System.out.println("statusCode="+statusCode);
    		if(SUCCESS_OK.equalsIgnoreCase(statusCode)){
    			return true;
    		}
    		return false;
    	}
    	
    	/**
    	 * 仅当 newkey 不存在时,将 key 改名为 newkey 。成功返回true
    	 * @param oldkey
    	 * @param newKey
    	 * @return
    	 */
    	public static boolean renameNX(String oldkey, String newKey){
    		Jedis jedis = jedisPool.getResource();
    		Long statusCode = jedis.renamenx(oldkey, newKey);
    		jedis.close();
    		if(SUCCESS_STATUS_LONG == statusCode){
    			return true;
    		}
    		return false;
    	}
    	
    	/**
    	 * 仅当 newkey 不存在时,将 key 改名为 newkey 。成功返回true
    	 * @param oldkey
    	 * @param newKey
    	 * @return
    	 */
    	public static boolean renameIfNotExists(String oldkey, String newKey){
    		return renameNX(oldkey, newKey);
    	}
    	
    	/**
    	 * 返回 key 所储存的值的类型。
    	 * @param key
    	 * @return
    	 */
    	public static String type(String key){
    		Jedis jedis = jedisPool.getResource();
    		String type = jedis.type(key);
    		jedis.close();
    		return type;
    	}
    	
    	/**
    	 * 返回 key 所储存的值的类型。
    	 * @param key
    	 * @return
    	 */
    	public static String getType(String key){
    		return type(key);
    	}
    	
    	/**
    	 * 删除key及值
    	 * @param key
    	 * @return
    	 */
    	public static boolean del(String key){
    		Jedis jedis = jedisPool.getResource();
    		Long statusCode = jedis.del(key);
    		jedis.close();
    		if(SUCCESS_STATUS_LONG == statusCode){
    			return true;
    		}
    		return false;
    	}
    	
    	/**
    	 * 删除key及值
    	 * @param key
    	 * @return
    	 */
    	public static boolean delete(String key){
    		return del(key);
    	}
    	
    	/**
    	 * 删除key及值
    	 * @param key
    	 * @return
    	 */
    	public static boolean remove(String key){
    		return del(key);
    	}
    	
    	/**
    	 * 批量删除key及值
    	 * @param key
    	 * @return
    	 */
    	public static boolean del(String[] keys){
    		Jedis jedis = jedisPool.getResource();
    		Long statusCode = jedis.del(keys);
    		jedis.close();
    		if(statusCode > 0){
    			return true;
    		}
    		return false;
    	}
    	
    	/**
    	 * 批量删除key及值
    	 * @param key
    	 * @return
    	 */
    	public static boolean delete(String[] keys){
    		return del(keys);
    	}
    	
    	/**
    	 * 批量删除key及值
    	 * @param key
    	 * @return
    	 */
    	public static boolean remove(String[] keys){
    		return del(keys);
    	}
    	
    	
    	public static void main(String[] args) {
    		//System.out.println("statusCode="+statusCode);
    		//System.out.println(set("wahaha1", "哇哈哈"));
    		//System.out.println(setByTime("wahaha1", "哈哈", 1));
    		//System.out.println(getTime("wahaha1"));
    		/*System.out.println(set("wa", "哈哈", NX, EX, 10L));
    		System.out.println(set("wa", "哈哈60", XX, EX, 60L));*/
    		//System.out.println(set("wa", "哈哈哈哈2", XX));
    		//System.out.println(setIfNotExists("wa", "哈哈not"));
    		//System.out.println(setIfNotExists("wa", "哈哈not", 30));
    		//System.out.println(setIfExists("wahaha", "有就设置"));
    		//System.out.println(setIfExists("wahaha", "有就设置", 60));
    		//System.out.println(setTime("wa", -1));
    		//System.out.println(exists("wa"));
    		//System.out.println(isExists("wa"));
    		//System.out.println(setByTime("wa", "30秒过期", 30));
    		//System.out.println(persist("wa"));
    		/*for(int i=0; i<30; i++){
    			System.out.println(randomKey());
    		}*/
    		//System.out.println(rename("waa", "wa"));
    		//System.out.println(renameNX("waa", "waa"));
    		//System.out.println(getType("wa"));
    		/*System.out.println(del("wa"));
    		System.out.println(get("wa"));
    		System.out.println(Ttl("wa"));*/
    		System.out.println(del(new String[]{"a"}));
    	}
    	
    	
    
    	
    	
    }
    

    Redis操作字符串工具类封装:http://fanshuyao.iteye.com/blog/2326221

    Redis操作Hash工具类封装:http://fanshuyao.iteye.com/blog/2327134

    Redis操作List工具类封装:http://fanshuyao.iteye.com/blog/2327137

    >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>.

    蕃薯耀 2016年9月22日 15:15:32 星期四

    http://fanshuyao.iteye.com/

  • 相关阅读:
    Alpha 冲刺 (8/10)
    Alpha 冲刺 (7/10)
    Alpha 冲刺 (6/10)
    团队作业-随堂小测(同学录)
    Alpha 冲刺 (5/10)
    LeetCode-1
    c++向量
    软件工程实践总结作业
    个人作业——软件产品案例分析
    个人技术博客Alpha----Android Studio学习
  • 原文地址:https://www.cnblogs.com/fanshuyao/p/6227097.html
Copyright © 2020-2023  润新知