`

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

 

 

 

分享到:
评论

相关推荐

    Jedis2.8Demo文件-从数据类型到订阅部分

    Jedis是一个Java客户端,它允许开发者方便地在Java应用程序中使用Redis数据库。 首先,让我们深入理解"获取连接池.创建redis实例"这一部分。在高并发的环境中,为了提高性能并有效地管理资源,我们会使用连接池来...

    jedis2.8 与 spring3.2 整合

    而Jedis是Java语言的一个客户端,用于与Redis服务器进行交互,提供了丰富的API来操作Redis的各种数据结构。 首先,我们要了解Redis 3.0.7的集群部署。在Redis 3.0.7版本中,引入了集群功能,允许用户将数据分布到多...

    基于Redis缓存商城分类以及商品信息Demo

    "基于Redis缓存商城分类以及商品信息Demo"是一个很好的实践案例,它利用Redis的高性能特性来提升商城系统的性能。以下将详细讲解这个Demo所涉及的知识点。 1. Redis简介: Redis是一个开源的、基于内存的数据结构...

    redis缓存demo

    本示例“redis缓存demo”旨在介绍如何在实际应用中使用Redis作为缓存。 首先,我们需要了解Redis的基本概念。Redis支持的数据类型包括字符串(Strings)、哈希(Hashes)、列表(Lists)、集合(Sets)和有序集合(Sorted ...

    redis安装教程和java操作服务器端demo

    **Java操作Redis服务器端Demo** 在Java中,我们可以使用Jedis或Lettuce库来操作Redis。这里以Jedis为例,演示基本的Redis操作。 1. **添加Jedis依赖** 如果使用Maven,将以下依赖添加到`pom.xml`文件中: ```...

    Redis缓存的使用封装,附加Demo

    - **客户端库**:在Java、Python、Node.js等语言中,都有丰富的Redis客户端库,例如Java的Jedis和Lettuce,它们提供了与Redis交互的API。 - **缓存策略**:常见的缓存策略有LRU(Least Recently Used)、LFU...

    Windows环境下安装Redis和java使用Redis的Demo

    Redis提供了一个Java客户端Jedis,它是连接Redis的首选库。以下是使用Jedis进行操作的基本步骤: 1. 添加依赖:在你的项目中引入Jedis的依赖,通常在Maven或Gradle的配置文件中添加相应的依赖项。 2. 连接Redis:...

    Jedis测试Demo

    Jedis是Java开发人员广泛使用的Redis客户端,它允许程序与Redis键值存储系统进行通信。Redis是一种高性能的内存数据结构服务器,常用于缓存、消息中间件以及作为数据库。 描述中提到“Java连接VM虚拟机测试Demo”,...

    完整的java操作redis demo

    Jedis是Java社区广泛使用的Redis客户端,提供了丰富的API来操作Redis服务器。在这个“完整的java操作redis demo”中,我们不仅可以看到如何使用Jedis进行基本的Redis操作,还能学习到如何结合Java处理Excel数据,这...

    mybati与redis缓存demo合集

    接着,在项目中添加Redis的Java客户端库,如Jedis或Lettuce,以便通过代码与Redis进行交互。 2. **Spring集成Redis**: "spring mybatis redis缓存demo"提示我们这里使用了Spring框架,因此可以通过Spring Data ...

    【收集】Java调用Redis 入门级Demo

    首先,Java与Redis的交互通常通过Java Redis客户端库Jedis来实现。Jedis是Java社区广泛使用的Redis客户端,它提供了丰富的API,可以方便地完成各种Redis操作。要使用Jedis,首先需要将其添加到项目的依赖管理工具中...

    Java调用Redis 简单Demo

    首先,我们需要在项目中引入Jedis库,这是一个Java客户端,用于连接和操作Redis。你可以通过Maven或Gradle在你的构建文件中添加依赖。对于Maven,可以在pom.xml文件中添加以下依赖: ```xml &lt;groupId&gt;redis....

    java redis 发布与订阅小demo jedis

    在Java编程中,Redis是一个非常流行的开源键值存储系统,常用于数据缓存、消息队列等场景。Redis提供了发布/订阅(Publish/Subscribe)功能,使得多个客户端可以订阅特定的频道,当有其他客户端向该频道发布消息时,...

    Java通过Jedis操作Redis

    而Java作为广泛使用的编程语言,通过Jedis库与Redis进行交互,实现了对Redis丰富的操作功能。本文将深入探讨如何使用Java和Jedis来操作Redis,涉及Redis的基本数据类型、主从复制以及事务处理。 首先,让我们了解...

    redis可运行的demo

    - Jedis是Java中常用的Redis客户端库,提供了丰富的API操作Redis。 - 如`Jedis jedis = new Jedis("localhost", 6379);`用于连接本地的Redis服务器。 - `jedis.set("key", "value");`用于设置键值对,`jedis.get...

    Java-redis-demo

    Java客户端可以通过Sentinel API来获取当前的主节点信息。 10. **Redisson库**: 除了Jedis,还有另一个流行的Java Redis客户端——Redisson,它提供了更高级的功能,如分布式锁、队列、计数器等。 11. **Spring ...

    Java调用Redis 简单Demo.zip

    要使用Java调用Redis,我们通常会借助于Jedis库,这是一个Java客户端,能够方便地与Redis服务器通信。首先,需要在项目中添加Jedis的依赖。如果你使用的是Maven,可以在pom.xml文件中加入以下依赖: ```xml ...

    JAVA连接redis进行操作的DEMO源码(2016)

    通过阅读和运行代码,你可以更深入地学习Redis的基本操作和Java客户端的使用方法。随着Redis版本的更新,Jedis也在不断演进,因此在实际项目中,应确保使用最新或与所用Redis版本兼容的Jedis版本。

    redis客户端操作实战-redisDemo.zip

    1. Jedis:Java开发的Redis客户端,广泛应用于Java项目中。Jedis提供了一系列API,如连接、选择数据库、执行命令、关闭连接等。 2. Lettuce:另一个流行的Java Redis客户端,它基于Netty框架,提供了异步和反应式...

Global site tag (gtag.js) - Google Analytics