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/

Redis操作字符串工具类封装,Redis工具类封装的更多相关文章

  1. Redis 操作字符串数据

    Redis 操作字符串数据: > set name "Tom" // set 用于添加 key/value 数据,如果 key 存在则覆盖 OK > setnx nam ...

  2. c# redis 操作类库推荐:StackExchange.Redis.Extensions

    StackExchange是一个优秀的c# redis客户端,但是存在操作略为繁琐的弊端,为了简化操作,使用 StackExchange.Redis.Extensions成为了一个非常值得推荐的选择. ...

  3. Redis操作Set工具类封装,Java Redis Set命令封装

    Redis操作Set工具类封装,Java Redis Set命令封装 >>>>>>>>>>>>>>>>& ...

  4. Redis操作List工具类封装,Java Redis List命令封装

    Redis操作List工具类封装,Java Redis List命令封装 >>>>>>>>>>>>>>>> ...

  5. Redis操作Hash工具类封装,Redis工具类封装

    Redis操作Hash工具类封装,Redis工具类封装 >>>>>>>>>>>>>>>>>> ...

  6. Redis】Java中使用Jedis操作Redis(Maven导入包)、创建Redis连接池

    如果我们使用Java操作Redis, 需要确保已经安装了 redis 服务及 Java redis 驱动. Maven项目可以直接在pom.xml中加入jedis包驱动: <!-- https: ...

  7. python笔记7:mysql、redis操作

    模块安装: 数据操作用到的模块pymysql,需要通过pip install pymysql进行安装. redis操作用的模块是redis,需要通过pip install redis进行安装. 检验是 ...

  8. redis的介绍与操作及Django中使用redis缓存

    redis VS mysql的区别 """ redis: 内存数据库(读写快).非关系型(操作数据方便) mysql: 硬盘数据库(数据持久化).关系型(操作数据间关系) ...

  9. Atitit.redis操作总结

    Atitit.redis操作总结 1.1. 获取redis所有kv1 1.2. dbsize:返回当前数据库中key的数目 1 1.3. 一起吧所有key列出来1 1.4. Java连接redis   ...

随机推荐

  1. WPF——数据绑定及属性改变事件

    一.首先需要封装一下文本框的属性,并且在实体类中添加一个实体类的属性改变函数 public class User : INotifyPropertyChanged //INotifyPropertyC ...

  2. apache开源项目--ibatis

    iBATIS一词来源于“internet”和“abatis”的组合,是一个由Clinton Begin在2001年发起的开放源代码项目.最初侧重于密码软件的开发,现在是一个基于Java的持久层框架.i ...

  3. MySQL海量数据查询优化策略

    1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索 ...

  4. 使用 EPUB 制作数字图书

    基于 XML 的开放式 eBook 格式 是否需要分发文档.创建电子图书或者把喜欢的博客文章存档?EPUB 是一种开放式的数字图书规范,以常用的技术如 XML.CSS 和 XHTML 为基础,EPUB ...

  5. Java之 AtomicInteger

    AtomicInteger,一个提供原子操作的Integer的类.在Java语言中,++i和i++操作并不是线程安全的,在使用的时候,不可避免的会用到synchronized关键字.而AtomicIn ...

  6. CORREL

    CORREL Show All Returns the correlation coefficient of the array1 and array2 cell ranges. Use the co ...

  7. HDU5668 Circle 非互质中国剩余定理

    分析:考虑对给定的出圈序列进行一次模拟,对于出圈的人我们显然可以由位置,编号等关系得到一个同余方程 一圈做下来我们就得到了n个同余方程 对每个方程用扩展欧几里得求解,最后找到最小可行解就是答案. 当然 ...

  8. POJ 1185 (状态压缩DP)

    中文题目,题意就不说了. 不得不说这是一道十分经典的状态压缩DP的题目. 思路: 通过分析可以发现,第i行的格子能不能放大炮仅与第i-1和i-2行的放法有关,而与前面的放法无关,因此,如果我们知道了i ...

  9. loadrunner SQL2008

    1. 下载 JDBC 驱动(sqljdbc4.jar) 2. 在 run-time setting 下的 classpath 把 JDBC 驱动引入 /* * LoadRunner Java scri ...

  10. .Net 程序的运行

    1. 用.Net开发的程序运行的某台机器上必须安装.Net FrameWork 2. .Net FrameWork向下兼容的实现 在安装4.0的时候,会把3.5,2.0等低版本的都装上,从而实现向下兼 ...