Redis缓存服务器Java客户端Jedis2.8 demo

1.项目地址:

https://github.com/xetorthio/jedis/tree/jedis-2.8.0

2.jar包

由于github上没有提供编译好的jar包,恰好你的代码又不是用maven来管理的;你可以用下载本博主通过maven编译源码得到的jar包

http://download.csdn.net/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

猜你喜欢

转载自xianlincai.iteye.com/blog/2367909
今日推荐