1.项目地址:
https://github.com/xetorthio/jedis/tree/jedis-2.8.0
2.jar包
由于github上没有提供编译好的jar包,恰好你的代码又不是用maven来管理的;你可以用下载本博主通过maven编译源码得到的jar包
http://download.youkuaiyun.com/detail/caicongyang/9428915
3.代码
RedisClientTest.java
package com.caicongyang.redis;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
import org.junit.Test;
import redis.clients.jedis.BinaryClient;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.Tuple;
public class RedisClientTest {
@Test
public void firstConnect(){
Jedis jedis = new Jedis("192.168.150.137",6379);
jedis.set("ccy", "handsome boy");
String value = jedis.get("ccy");
jedis.close();
System.out.println(value);
}
@Test
public void testList(){
Jedis jedis = new Jedis("192.168.150.137",6379);
//清空数据,为后面的测试做准备
jedis.del("list");
jedis.del("list2");
//往list中添加string字符串
jedis.lpush("list", "java","c++","ruby","php");
//获取list长度
System.out.println("获取list长度:");
Long llen = jedis.llen("list".getBytes());
System.out.println(llen);
//获取指定位置开始到指定位置结束的元素
System.out.println("获取list中的指定元素:");
List<String> returnList = jedis.lrange("list", 0, 1);
for(String s:returnList){
System.out.println(s);
}
//取链表中的全部元素,其中0表示第一个元素,-1表示最后一个元素。
System.out.println("获取list中的所有元素:");
List<String> rList = jedis.lrange("list", 0, -1);
for(String s:rList){
System.out.println(s);
}
//获取索引值为1(头部的第二个元素)的元素值。
System.out.println("获取索引值为1(头部的第二个元素)的元素值:");
String lindex = jedis.lindex("list", 1);
System.out.println(lindex);
//设置指定索引的值
System.out.println("设置指定索引的值:");
String s1 = jedis.lset("list", 1,"hive");
System.out.println(s1);
System.out.println(jedis.lindex("list", 1));
//在某个元素的后面插入新元素,还回插入后list的数量
System.out.println("在某个元素的后面插入新元素");
Long r2 = jedis.linsert("list", BinaryClient.LIST_POSITION.AFTER, "c++", ".net");
System.out.println(r2);
//仅有当参数中指定的Key存在时,该命令才会在其所关联的List Value的尾部插入参数中给出的Value,否则将不会有任何操作发生。
System.out.println("lpush判断是否插入成功:");
Long v1 = jedis.lpushx("list", "hadoop"); //还回插入后list的数量
Long v2 = jedis.lpushx("list2", "hadoop"); //key不存在,所以还回0
System.out.println(v1+":"+v2);
//弹出指定索引的值
System.out.println("弹出指定索引的值");
String lpopValue = jedis.lpop("list");
System.out.println(lpopValue);
//将list的尾部元素弹出,同时再插入到list2的头部(原子性的完成这两步操作)。
System.out.println("将list的尾部元素弹出,同时再插入到list2的头部");
String rpoplpush = jedis.rpoplpush("list", "list2");
System.out.println(rpoplpush);
System.out.println(jedis.llen("list2"));
jedis.close();
}
@Test
public void testSet(){
Jedis jedis = new Jedis("192.168.150.137",6379);
//清空数据,为后面的测试做准备
jedis.del("set1");
jedis.del("set2");
//增加数据
jedis.sadd("set1", "apple","mi","huawei");
//随机的返回了某一成员。
System.out.println("随机的返回某一成员");
String srandmember = jedis.srandmember("set1");
System.out.println(srandmember);
//移动某个值set2 ;1:成功,0失败
System.out.println("移动某个值到set2");
Long smove = jedis.smove("set1", "set2", "huawei");
System.out.println(smove);
//增加数据
jedis.sadd("set2", "mi");
//查看set中的成员
System.out.println("查看set中的成员");
Set<String> smembers = jedis.smembers("set1");
for(String s:smembers){
System.out.println(s);
}
System.out.println("查看set2中的成员");
Set<String> smembers2 = jedis.smembers("set2");
for(String s:smembers2){
System.out.println(s);
}
//比较两个set的差异
System.out.println("比较两个set的差异");
Set<String> sdiff = jedis.sdiff("set1","set2");
for(String s:sdiff){
System.out.println(s);
}
//将3个集合的差异成员存在在diffkey关联的Set中,并返回插入的成员数量
System.out.println("存储两个set的差异并存储");
Long sdiffstore = jedis.sdiffstore("diffkey","set1", "set2");
System.out.println(sdiffstore);
System.out.println("查看diffkey中的成员");
Set<String> smembers3 = jedis.smembers("diffkey");
for(String s:smembers3){
System.out.println(s);
}
//取并集
jedis.sinterstore("sinter", "set1","set2");
System.out.println("查看sinter中的成员");
Set<String> smembers4 = jedis.smembers("sinter");
for(String s:smembers4){
System.out.println(s);
}
//取并集
jedis.sunionstore("unionstore", "set1","set2");
System.out.println("查看unionstore中的成员");
Set<String> smembers5 = jedis.smembers("unionstore");
for(String s:smembers5){
System.out.println(s);
}
//是否存在集合中
System.out.println("是否存在集合中");
Boolean sismember = jedis.sismember("unionstore", "apple");
System.out.println(sismember);
jedis.close();
}
@Test
public void testSortSet(){
Jedis jedis = new Jedis("192.168.150.137",6379);
//清空数据,为后面的测试做准备
jedis.del("zset1");
jedis.del("zset2");
Map<String,Double> map = new HashMap<String,Double>();
map.put("China", 100.00);
map.put("UA", 90.00);
map.put("Japan", 70.00);
//增加数据
jedis.zadd("zset1",map);
//获取zset中的所有成员
Set<String> zrange = jedis.zrange("zset1", 0, -1);
for(String s:zrange){
System.out.println(s);
}
//zcard获取成员数据
System.out.println("zcard获取成员数据");
Long zcard = jedis.zcard("zset1");
System.out.println(zcard);
//获取zset中的所有成员
Set<Tuple> zrangeWithScores = jedis.zrangeWithScores("zset1", 0, -1);
for(Tuple s:zrangeWithScores){
System.out.println(s.getElement()+":"+s.getScore());
}
//zrank 还回元素索引
System.out.println("还回元素索引");
Long zrank = jedis.zrank("zset1", "China");
System.out.println(zrank);
//还回分数
System.out.println("还回元素分数");
Double zscore = jedis.zscore("zset1", "China");
System.out.println(zscore);
//将成员的分数增加2,并返回该成员更新后的分数。
System.out.println("返回该成员更新后的分数");
Double zincrby = jedis.zincrby("zset1", 2.00, "China");
System.out.println(zincrby);
//根据分数取相对应的值
System.out.println("根据分数取相对应的值");
Set<String> zrangeByScore = jedis.zrangeByScore("zset1", "95", "106");
for(String s:zrangeByScore){
System.out.println(s);
}
//#以位置索引从高到低的方式获取并返回此区间内的成员。
System.out.println("以位置索引从高到低的方式获取并返回此区间内的成员");
Set<String> zrevrange = jedis.zrevrange("zset1", 0, 0);
for(String s: zrevrange){
System.out.println(s);
}
jedis.close();
}
@Test
public void testHashes(){
Jedis jedis = new Jedis("192.168.150.137",6379);
//清空数据,为后面的测试做准备
jedis.del("hash1");
jedis.del("hash2");
jedis.hset("hash1", "mary", "160");
jedis.hset("hash1", "tom", "166");
jedis.hset("hash1", "tony", "178");
//获取关键字key的字段所对应的值
System.out.println("获取关键字key的字段所对应的值");
String hget = jedis.hget("hash1", "mary");
System.out.println(hget);
//增加字段的值,返回加后的结果
System.out.println("增加字段的值");
Long hincrBy = jedis.hincrBy("hash1", "mary", 10);
System.out.println(hincrBy);
//还回所有k-v
System.out.println("还回所有k-v值");
Map<String, String> hgetAll = jedis.hgetAll("hash1");
for(String key :hgetAll.keySet()){
System.out.println(key+":"+hgetAll.get(key));
}
//还回所有的key
System.out.println("还回所有的key");
Set<String> hkeys = jedis.hkeys("hash1");
for(String key:hkeys){
System.out.println(key);
}
//还回所有的value
System.out.println("还回所有的value");
List<String> hvals = jedis.hvals("hash1");
for(String val:hvals){
System.out.println(val);
}
}
}
ps:大过年的还在学习也是蛮拼的...
4.其他本文用到的学习链接:
http://www.mamicode.com/info-detail-505779.html
http://www.cnblogs.com/stephen-liu74/archive/2012/03/19/2352932.html