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. BZOJ1895: Pku3580 supermemo

    1895: Pku3580 supermemo Time Limit: 15 Sec  Memory Limit: 64 MBSubmit: 77  Solved: 47[Submit][Status ...

  2. winhex的使用

    1. 当我们用VC编写代码,将数据写入到磁盘的文件后,用winhex查看,winhex可以检测文件最后写入时间的变动,如果有变动,则会提示“此文件的最后写入时间已经改变.解除当前状态并重新载入吗?”, ...

  3. HTTP2.0那些事

    1. HTTP2.0的前世 http2.0的前世是http1.0和http1.1这两兄弟.虽然之前仅仅只有两个版本,但这两个版本所包含的协议规范之庞大,足以让任何一个有经验的工程师为之头疼.http1 ...

  4. MsoShapeType /InlineShape枚举

    指定形状的类型或形状范围. 名称 值 说明 msoAutoShape 1 自选图形. msoCallout 2 标注. msoCanvas 20 画布. msoChart 3 图. msoCommen ...

  5. udhcpc 参数使用说明

    当没有网络的时候,板子一直发送dhcp请求,导致程序不往下执行,解决的办法是把它切换到后台运行,可是如何切换到后台呢,有办法,它自带参数可以实现该功能.如下: udhcpc -b -i eth0 -p ...

  6. MySql定位执行效率较低的SQL语句

    MySQL能够记录执行时间超过参数 long_query_time 设置值的SQL语句,默认是不记录的. 获得初始锁定的时间不算作执行时间.mysqld在SQL执行完和所有的锁都被释放后才写入日志.且 ...

  7. LinkedHashSet的实现原理

    1. LinkedHashSet概述 LinkedHashSet是具有可预知迭代顺序的Set接口的哈希表和链接列表实现.此实现与HashSet的不同之处在于,后者维护着一个运行于所有条目的双重链接列表 ...

  8. Apache设置防DDOS模块mod_evasive

    mod_evasive 是Apache(httpd)服务器的防DDOS的一个模块.对于WEB服务器来说,是目前比较好的一个防护DDOS攻击的扩展模块.虽然并不能完全防御 DDOS攻击,但在一定条件下, ...

  9. 安装qc 出现error An error occurred while attempting to connect to the database.

    When trying to install mercury quality center starter edition 9.0 on Windows XP media center, I am g ...

  10. leecode 归并排序 链表(java)

    写了好久,终于写成了.第一次zai leecode错题,题目质量很高,适合面试,与 1.归并排序是稳定的,在java中 Arrays.sort(a);中对于对象的排序就是归并排序.对于原子类型数据使用 ...