Redis Redis(2.6版本以上) Key 常用操作和方法详解
2016-04-26 16:12
627 查看
[java] view
plain copy
package ddd;
import java.io.UnsupportedEncodingException;
import java.util.List;
import java.util.Set;
import redis.clients.jedis.Jedis;
public class Key_Redis {
/**
* WQL 2014-3-3
* Redis Redis(2.6版本以上) Key 常用操作和方法详解
* @param args
* @throws UnsupportedEncodingException
*/
public static void main(String[] args) throws UnsupportedEncodingException {
Jedis je=new Jedis("127.0.0.1",6379);
je.auth("ycm12345");
/**
* 删除给定的一个或多个 key 。不存在的 key 会被忽略。
*/
je.del("kk01","kk02");
je.set("kk01", "哈哈,hellwo");
/** 序列化给定 key ,并返回被序列化的值*/
byte[] b=je.dump("kk01");
System.out.println(new String(b,"UTF-8")); //中文乱文
/** 检查给定 key 是否存在。 */
boolean exists=je.exists("kk01");
System.out.println(exists);
/**Key 查找
* KEYS * 匹配数据库中所有 key 。
KEYS h?llo 匹配 hello ,hallo 和 hxllo 等。
KEYS h*llo 匹配 hllo 和 heeeeello 等。
KEYS h[ae]llo 匹配 hello 和 hallo ,但不匹配 hillo 。
* */
Set<String> keys=je.keys("*");//返回所有Key,如果Key很多,不要这么做,会相当慢
/**
* 将 key 原子性地从当前实例传送到目标实例的指定数据库上,
* 一旦传送成功,key 保证会出现在目标实例上,而当前实例上的 key 会被删除。
* 这个命令是一个原子操作,它在执行的时候会阻塞进行迁移的两个实例,直到以下任意结果发生:迁移成功,迁移失败,等到超时。
*/
//je.migrate("192.168.1.127", 6371, "kk01", 0, 60000);
//当前实例己经被删除
System.out.println(je.get("kk01"));
Jedis je2=new Jedis("192.168.1.127",6371);
//新的Redis存储当前Key的值
System.out.println(je2.get("kk01"));
//为了方便测试,重新在6379赋值
je.set("kk01", "哈哈,hellwo");
/** 将当前数据库的 key 移动到给定的数据库 db 当中。
如果当前数据库 (源数据库) 和给定数据库 (目标数据库) 有相同名字的给定 key ,或者 key 不存在于当前
数据库,那么 MOVE 没有任何效果。 */
je.move("kk01", 1);
System.out.println("------------------------");
//返回给定 key 引用所储存的值的次数。此命令主要用于除错。
System.out.println(je.objectEncoding("kk01"));
//返回给定 key 引用所储存的值的次数。此命令主要用于除错。
System.out.println(je.objectRefcount("kk01"));
/** 从当前数据库中随机返回 (不删除) 一个 key 。*/
String key=je.randomKey();
System.out.println(key);
/**改名Key*/
je.rename("kk01", "new_kk01");
System.out.println(je.get("new_kk01"));
/** 当且仅当 newkey 不存在时,将 key 改名为 newkey 。 */
je.renamenx("new_kk01", "new_n_kk001");
je.rename("new_n_kk001", "kk01");
/** 以秒为单位,返回给定 key 的剩余生存时间 (TTL, time to live)。
* 在 Redis 2.8 以前,当 key 不存在,或者 key 没有设置剩余生存时间时,命令都返回 -1 。
* */
Long ttl=je.ttl("kk001");
System.out.println(ttl);
/**
* none (key 不存在)
string (字符串)
list (列表)
set (集合)
zset (有序集)
hash (哈希表)
*
*/
String t=je.type("kk01");
System.out.println(t);
}
}
plain copy
package ddd;
import java.io.UnsupportedEncodingException;
import java.util.List;
import java.util.Set;
import redis.clients.jedis.Jedis;
public class Key_Redis {
/**
* WQL 2014-3-3
* Redis Redis(2.6版本以上) Key 常用操作和方法详解
* @param args
* @throws UnsupportedEncodingException
*/
public static void main(String[] args) throws UnsupportedEncodingException {
Jedis je=new Jedis("127.0.0.1",6379);
je.auth("ycm12345");
/**
* 删除给定的一个或多个 key 。不存在的 key 会被忽略。
*/
je.del("kk01","kk02");
je.set("kk01", "哈哈,hellwo");
/** 序列化给定 key ,并返回被序列化的值*/
byte[] b=je.dump("kk01");
System.out.println(new String(b,"UTF-8")); //中文乱文
/** 检查给定 key 是否存在。 */
boolean exists=je.exists("kk01");
System.out.println(exists);
/**Key 查找
* KEYS * 匹配数据库中所有 key 。
KEYS h?llo 匹配 hello ,hallo 和 hxllo 等。
KEYS h*llo 匹配 hllo 和 heeeeello 等。
KEYS h[ae]llo 匹配 hello 和 hallo ,但不匹配 hillo 。
* */
Set<String> keys=je.keys("*");//返回所有Key,如果Key很多,不要这么做,会相当慢
/**
* 将 key 原子性地从当前实例传送到目标实例的指定数据库上,
* 一旦传送成功,key 保证会出现在目标实例上,而当前实例上的 key 会被删除。
* 这个命令是一个原子操作,它在执行的时候会阻塞进行迁移的两个实例,直到以下任意结果发生:迁移成功,迁移失败,等到超时。
*/
//je.migrate("192.168.1.127", 6371, "kk01", 0, 60000);
//当前实例己经被删除
System.out.println(je.get("kk01"));
Jedis je2=new Jedis("192.168.1.127",6371);
//新的Redis存储当前Key的值
System.out.println(je2.get("kk01"));
//为了方便测试,重新在6379赋值
je.set("kk01", "哈哈,hellwo");
/** 将当前数据库的 key 移动到给定的数据库 db 当中。
如果当前数据库 (源数据库) 和给定数据库 (目标数据库) 有相同名字的给定 key ,或者 key 不存在于当前
数据库,那么 MOVE 没有任何效果。 */
je.move("kk01", 1);
System.out.println("------------------------");
//返回给定 key 引用所储存的值的次数。此命令主要用于除错。
System.out.println(je.objectEncoding("kk01"));
//返回给定 key 引用所储存的值的次数。此命令主要用于除错。
System.out.println(je.objectRefcount("kk01"));
/** 从当前数据库中随机返回 (不删除) 一个 key 。*/
String key=je.randomKey();
System.out.println(key);
/**改名Key*/
je.rename("kk01", "new_kk01");
System.out.println(je.get("new_kk01"));
/** 当且仅当 newkey 不存在时,将 key 改名为 newkey 。 */
je.renamenx("new_kk01", "new_n_kk001");
je.rename("new_n_kk001", "kk01");
/** 以秒为单位,返回给定 key 的剩余生存时间 (TTL, time to live)。
* 在 Redis 2.8 以前,当 key 不存在,或者 key 没有设置剩余生存时间时,命令都返回 -1 。
* */
Long ttl=je.ttl("kk001");
System.out.println(ttl);
/**
* none (key 不存在)
string (字符串)
list (列表)
set (集合)
zset (有序集)
hash (哈希表)
*
*/
String t=je.type("kk01");
System.out.println(t);
}
}
相关文章推荐
- Redis Redis(2.6版本以上) Hash 常用操作和方法详解
- Ubuntu 14.04下安装和配置redis数据库
- linux下redis的安装及配置启动
- 使用spring cacheManager配置Guava Cache和Redis Cache
- Redis 学习手册
- [转]优化Redis内存的9个要点
- NoSql之相逢Redis
- redis设置主从服务器
- CentOS7使用Redis
- Redis实战(七)
- Redis实战(六)
- redis与spring结合使用
- Redis实战(五)
- Redis实战(四)
- Error creating bean with name 'enableRedisKeyspaceNotificationsInitializer'
- Error creating bean with name 'enableRedisKeyspaceNotificationsInitializer'
- Redis是一种面向“key-value”类型数据的分布式NoSQL数据库系统,具有高性能、持久存储、适应高并发应用场景等优势。它虽然起步较晚,但发展却十分迅速。
- Redis实战配置(三)
- Redis实战(二)
- redis配置详解