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

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);

}

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