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
相关推荐
Jedis是一个Java客户端,它允许开发者方便地在Java应用程序中使用Redis数据库。 首先,让我们深入理解"获取连接池.创建redis实例"这一部分。在高并发的环境中,为了提高性能并有效地管理资源,我们会使用连接池来...
而Jedis是Java语言的一个客户端,用于与Redis服务器进行交互,提供了丰富的API来操作Redis的各种数据结构。 首先,我们要了解Redis 3.0.7的集群部署。在Redis 3.0.7版本中,引入了集群功能,允许用户将数据分布到多...
"基于Redis缓存商城分类以及商品信息Demo"是一个很好的实践案例,它利用Redis的高性能特性来提升商城系统的性能。以下将详细讲解这个Demo所涉及的知识点。 1. Redis简介: Redis是一个开源的、基于内存的数据结构...
本示例“redis缓存demo”旨在介绍如何在实际应用中使用Redis作为缓存。 首先,我们需要了解Redis的基本概念。Redis支持的数据类型包括字符串(Strings)、哈希(Hashes)、列表(Lists)、集合(Sets)和有序集合(Sorted ...
**Java操作Redis服务器端Demo** 在Java中,我们可以使用Jedis或Lettuce库来操作Redis。这里以Jedis为例,演示基本的Redis操作。 1. **添加Jedis依赖** 如果使用Maven,将以下依赖添加到`pom.xml`文件中: ```...
- **客户端库**:在Java、Python、Node.js等语言中,都有丰富的Redis客户端库,例如Java的Jedis和Lettuce,它们提供了与Redis交互的API。 - **缓存策略**:常见的缓存策略有LRU(Least Recently Used)、LFU...
Redis提供了一个Java客户端Jedis,它是连接Redis的首选库。以下是使用Jedis进行操作的基本步骤: 1. 添加依赖:在你的项目中引入Jedis的依赖,通常在Maven或Gradle的配置文件中添加相应的依赖项。 2. 连接Redis:...
Jedis是Java开发人员广泛使用的Redis客户端,它允许程序与Redis键值存储系统进行通信。Redis是一种高性能的内存数据结构服务器,常用于缓存、消息中间件以及作为数据库。 描述中提到“Java连接VM虚拟机测试Demo”,...
Jedis是Java社区广泛使用的Redis客户端,提供了丰富的API来操作Redis服务器。在这个“完整的java操作redis demo”中,我们不仅可以看到如何使用Jedis进行基本的Redis操作,还能学习到如何结合Java处理Excel数据,这...
接着,在项目中添加Redis的Java客户端库,如Jedis或Lettuce,以便通过代码与Redis进行交互。 2. **Spring集成Redis**: "spring mybatis redis缓存demo"提示我们这里使用了Spring框架,因此可以通过Spring Data ...
首先,Java与Redis的交互通常通过Java Redis客户端库Jedis来实现。Jedis是Java社区广泛使用的Redis客户端,它提供了丰富的API,可以方便地完成各种Redis操作。要使用Jedis,首先需要将其添加到项目的依赖管理工具中...
首先,我们需要在项目中引入Jedis库,这是一个Java客户端,用于连接和操作Redis。你可以通过Maven或Gradle在你的构建文件中添加依赖。对于Maven,可以在pom.xml文件中添加以下依赖: ```xml <groupId>redis....
在Java编程中,Redis是一个非常流行的开源键值存储系统,常用于数据缓存、消息队列等场景。Redis提供了发布/订阅(Publish/Subscribe)功能,使得多个客户端可以订阅特定的频道,当有其他客户端向该频道发布消息时,...
而Java作为广泛使用的编程语言,通过Jedis库与Redis进行交互,实现了对Redis丰富的操作功能。本文将深入探讨如何使用Java和Jedis来操作Redis,涉及Redis的基本数据类型、主从复制以及事务处理。 首先,让我们了解...
- Jedis是Java中常用的Redis客户端库,提供了丰富的API操作Redis。 - 如`Jedis jedis = new Jedis("localhost", 6379);`用于连接本地的Redis服务器。 - `jedis.set("key", "value");`用于设置键值对,`jedis.get...
Java客户端可以通过Sentinel API来获取当前的主节点信息。 10. **Redisson库**: 除了Jedis,还有另一个流行的Java Redis客户端——Redisson,它提供了更高级的功能,如分布式锁、队列、计数器等。 11. **Spring ...
要使用Java调用Redis,我们通常会借助于Jedis库,这是一个Java客户端,能够方便地与Redis服务器通信。首先,需要在项目中添加Jedis的依赖。如果你使用的是Maven,可以在pom.xml文件中加入以下依赖: ```xml ...
通过阅读和运行代码,你可以更深入地学习Redis的基本操作和Java客户端的使用方法。随着Redis版本的更新,Jedis也在不断演进,因此在实际项目中,应确保使用最新或与所用Redis版本兼容的Jedis版本。
1. Jedis:Java开发的Redis客户端,广泛应用于Java项目中。Jedis提供了一系列API,如连接、选择数据库、执行命令、关闭连接等。 2. Lettuce:另一个流行的Java Redis客户端,它基于Netty框架,提供了异步和反应式...