03.RedisJava客户端Jedis的使用
1.Jedis基本使用
publicstaticvoid main(String[] args)
{
Jedis jedis =newJedis("192.168.110.101",6379);
String result = jedis.ping();// 测试连接
System.out.println(result);
jedis.close();
}
//关键字(Keys)
System.out.println("exists :"+ jedis.exists("name"));
System.out.println("del :"+ jedis.del("name"));
//字符串(String)
System.out.println("set :"+ jedis.set("name","危常焕"));
System.out.println("get :"+ jedis.get("name"));
//哈希(Hashs)
for(int i =0; i <10; i++)
{
System.out.println("hset :"+ jedis.hset("hset","set-key"+ i,"set-value"+ i));
}
System.out.println("hkeys :"+ jedis.hkeys("hset"));
//列表(Lists)
System.out.println("rpush :"+ jedis.rpush("lset","lset001","lset002","lset003","lset004"));
System.out.println("lrange :"+ jedis.lrange("lset",0,2));
//集合(Sets)
System.out.println("sadd :"+ jedis.sadd("sadd","sadd001","sadd002","sadd003"));
System.out.println("scard :"+ jedis.scard("sadd"));
//有序集合(Sorted Sets)
Map<String,Double> scoreMembers =newHashMap<String,Double>();
scoreMembers.put("001",0.1D);
scoreMembers.put("002",0.2D);
scoreMembers.put("003",0.3D);
System.out.println("zadd :"+ jedis.zadd("zadd", scoreMembers));
System.out.println("zrange :"+ jedis.zrange("zadd",1L,2L));
//HyperLogLog
for(int i =0; i <10; i++)
{
System.out.println("pfadd :"+ jedis.pfadd("HyperLogLog", UUID.randomUUID().toString()));
}
System.out.println("pfcount :"+ jedis.pfcount("HyperLogLog"));
//发布/订阅(Pub/Sub)
Thread thread =newThread(newRunnable()
{
@Override
publicvoid run()
{
finalJedis j =newJedis("192.168.110.101",6379);
j.subscribe(newJedisPubSub()
{
@Override
publicvoid onMessage(String channel,String message)
{
System.out.println("onMessage--channel:"+ channel +" message:"+ message);
this.unsubscribe();
}
},"channel001");
j.close();
System.out.println("连接已关闭");
}
});
thread.start();
Thread.sleep(10);
System.out.println("publish :"+ jedis.publish("channel001","发送一条消息"));
//事务(Transactions)
Transaction transaction = jedis.multi();
System.out.println("set :"+ transaction.set("multi001","123"));
System.out.println("incr :"+ transaction.incr("multi001"));
System.out.println("transaction.exec :"+ transaction.exec());
// 脚本(Scripting)
System.out.println("eval :"+ jedis.eval("local msg = \"Hello, world!\" return msg"));
//连接(Connection)
System.out.println("ping :"+ jedis.ping());
System.out.println("select :"+ jedis.select(0));
//服务(Server)
System.out.println("dbSize :"+ jedis.dbSize());
System.out.println("clientList :"+ jedis.clientList());
2.Jedis深入使用

publicstaticvoid main(String[] args)
{
JedisPoolConfig config =newJedisPoolConfig();
// 连接池中最大连接数。高版本:maxTotal,低版本:maxActive
config.setMaxTotal(8);
// 连接池中最大空闲的连接数
config.setMaxIdle(4);
// 连接池中最少空闲的连接数
config.setMinIdle(1);
// 当连接池资源耗尽时,调用者最大阻塞的时间,超时将跑出异常。单位,毫秒数;默认为-1.表示永不超时。高版本:maxWaitMillis,低版本:maxWait
config.setMaxWaitMillis(15000);
// 连接空闲的最小时间,达到此值后空闲连接将可能会被移除。负值(-1)表示不移除
config.setMinEvictableIdleTimeMillis(300000);
// 对于“空闲链接”检测线程而言,每次检测的链接资源的个数。默认为3
config.setNumTestsPerEvictionRun(3);
// “空闲链接”检测线程,检测的周期,毫秒数。如果为负值,表示不运行“检测线程”。默认为-1
config.setTimeBetweenEvictionRunsMillis(60000);// 一分钟
// 向调用者输出“链接”资源时,是否检测是有有效,如果无效则从连接池中移除,并尝试获取继续获取。默认为false。建议保持默认值
config.setTestOnBorrow(false);
// 向连接池“归还”链接时,是否检测“链接”对象的有效性。默认为false。建议保持默认值
config.setTestOnReturn(false);
// 向调用者输出“链接”对象时,是否检测它的空闲超时;默认为false。如果“链接”空闲超时,将会被移除。建议保持默认值
config.setTestWhileIdle(false);
JedisPool pool =newJedisPool(config,"192.168.110.101",6379);
Jedis jedis = pool.getResource();// 从pool中获取资源
try
{
jedis.set("k1","v1");
System.out.println(jedis.get("k1"));
}
catch(Exception e)
{
e.printStackTrace();
}
finally
{
jedis.close();
// pool.returnResource(jedis); // 此方法已过时
}
for(int i =0; i <10; i++)
{
jedis = pool.getResource();
// jedis.close(); // 去掉注释观察效果
System.out.println("NumActive:"+ pool.getNumActive());
System.out.println("NumIdle:"+ pool.getNumIdle());
System.out.println("NumWaiters:"+ pool.getNumWaiters());
}
pool.close();
pool.destroy();
}
publicstaticvoid main(String[] args)
{
String host =null;
int port =0;
Set<String> sentinels =newHashSet<String>();
sentinels.add("192.168.110.100:26379");
sentinels.add("192.168.110.100:36379");
sentinels.add("192.168.110.100:46379");
JedisSentinelPool jedisSentinelPool =newJedisSentinelPool("master001", sentinels);
host = jedisSentinelPool.getCurrentHostMaster().getHost();
port = jedisSentinelPool.getCurrentHostMaster().getPort();
System.out.println(host +":"+ port);
Jedis jedis = jedisSentinelPool.getResource();
jedis.set("001","ASDFG");
System.out.println(jedis.get("001"));
jedis.close();
// 关闭Redis Master服务
Scanner scanner =newScanner(System.in);
String input = scanner.nextLine();
System.out.println(input);
host = jedisSentinelPool.getCurrentHostMaster().getHost();
port = jedisSentinelPool.getCurrentHostMaster().getPort();
System.out.println(host +":"+ port);
jedis = jedisSentinelPool.getResource();
jedis.set("001","ZXCVB");
System.out.println(jedis.get("001"));
jedis.close();
jedisSentinelPool.close();
jedisSentinelPool.destroy();
}
192.168.110.102:6379
ASDFG
2015-10-222:50:30 redis.clients.jedis.JedisSentinelPool initPool
信息:CreatedJedisPool to master at 192.168.110.101:6379
192.168.110.101:6379
ZXCVB

publicstaticvoid main(String[] args)
{
JedisPoolConfig config =newJedisPoolConfig();
List<JedisShardInfo> shards =newArrayList<JedisShardInfo>();
shards.add(newJedisShardInfo("192.168.110.101","Redis001",6379,20*1000,1));
shards.add(newJedisShardInfo("192.168.110.102","Redis002",6379,20*1000,2));
shards.add(newJedisShardInfo("192.168.110.103","Redis003",6379,20*1000,4));
ShardedJedisPool shardedJedisPool =newShardedJedisPool(config, shards);
for(int i =0; i <10; i++)
{
ShardedJedis shardedJedis = shardedJedisPool.getResource();
String key ="shard"+ i;
shardedJedis.set(key,"v-"+ i);
System.out.println(shardedJedis.get(key));
JedisShardInfo shardInfo = shardedJedis.getShardInfo(key);
System.out.println("getHost:"+ shardInfo.getHost());
shardedJedis.close();
}
shardedJedisPool.close();
shardedJedisPool.destroy();
}
v-0
getHost:192.168.110.102
v-1
getHost:192.168.110.101
v-2
getHost:192.168.110.102
v-3
getHost:192.168.110.103
v-4
getHost:192.168.110.102
v-5
getHost:192.168.110.102
v-6
getHost:192.168.110.103
v-7
getHost:192.168.110.102
v-8
getHost:192.168.110.102
v-9
getHost:192.168.110.103
//位置:redis.clients.util.Sharded<R, S extends ShardInfo<R>>
privatevoid initialize(List<S> shards)
{
nodes =newTreeMap<Long, S>();
for(int i =0; i != shards.size();++i)
{
final S shardInfo = shards.get(i);
if(shardInfo.getName()==null)
for(int n =0; n <160* shardInfo.getWeight(); n++)
{
nodes.put(this.algo.hash("SHARD-"+ i +"-NODE-"+ n), shardInfo);
}
else
for(int n =0; n <160* shardInfo.getWeight(); n++)
{
nodes.put(this.algo.hash(shardInfo.getName()+"*"+ shardInfo.getWeight()+ n), shardInfo);
}
resources.put(shardInfo, shardInfo.createResource());
}
}
03.RedisJava客户端Jedis的使用的更多相关文章
- Redis的Java客户端Jedis的八种调用方式(事务、管道、分布式)介绍
jedis是一个著名的key-value存储系统,而作为其官方推荐的java版客户端jedis也非常强大和稳定,支持事务.管道及有jedis自身实现的分布式. 在这里对jedis关于事务.管道和分布式 ...
- Java客户端Jedis的八种调用方式
redis是一个著名的key-value存储系统,而作为其官方推荐的java版客户端jedis也非常强大和稳定,支持事务.管道及有jedis自身实现的分布式. 在这里对jedis关于事务.管道和分 ...
- Redis客户端——Jedis的使用
本文介绍基于Java语言的Redis客户端——Jedis的使用,包括Jedis简介.获取Jedis.Jedis直连.Jedis连接池以及二者的对比的选择. Jedis简介 Jedis 是 Redis ...
- 【转载】Redis的Java客户端Jedis的八种调用方式(事务、管道、分布式…)介绍
转载地址:http://blog.csdn.net/truong/article/details/46711045 关键字:Redis的Java客户端Jedis的八种调用方式(事务.管道.分布式…)介 ...
- Redis(九):Redis的Java客户端Jedis
Redis的Java客户端Jedis导航目录: 安装JDK 安装Eclipse Jedis所需要的Jar包 Jedis常用操作 JedisPool 安装JDK tar -zxvf jdk-7u67-l ...
- 9.Redis的Java客户端Jedis
Redis的Java客户端Jedis Jedis所需jar包 commons-pool-1.6.jar jedis-2.1.0.jar 1.Jedis常用操作(jedis中的api 和 我们在 l ...
- redis 学习(8)-- redis 客户端 -- Jedis
redis 客户端 -- Jedis 1. Jedis 直连 本质是 TCP 连接. 执行流程 创建Jedis对象 通过Jedis执行命令 返回Jedis执行结果 关闭Jedis连接 demo 要使用 ...
- Redis的客户端Jedis
1. Redis支持消息的订阅与发布 Redis的消息订阅支持:先订阅后发布 订阅:subscribe c1 c2 发布:publish c2 hello-redis 支持通配符的订阅:psubscr ...
- redis客户端--jedis
一.jedis jedis 是 redis推荐的java客户端.通过Jedis我们可以很方便地使用java代码的方式,对redis进行操作.jedis使用起来比较简单,它的操作方法与redis命令相类 ...
随机推荐
- Winform TreeView 单选
private void treeView1_AfterCheck(object sender, TreeViewEventArgs e) { //通过鼠标或者键盘触发事件,防止修改节点的Checke ...
- 分布式MySQL集群方案的探索与思考
转载:http://www.infoq.com/cn/articles/exploration-of-distributed-mysql-cluster-scheme?utm_campaign=rig ...
- 【PHP开源产品】Ecshop的商品筛选功能实现分析之一
一.首先,说明一下为什么要对category.php文件进行分析. 原因如下: ①个人对商城类商品筛选功能的实现比较好奇: ②对商城中关于商品的数据表设计比较感兴趣.(该功能涉及到与数据库的交互,而且 ...
- Windows下安装redis,并与PHP使用
一.在windows下安装redis: redis的官方网站下载地址:http://redis.io/download 进入以上网址之后,请见以下的图片操作下载redis: 第一步: 第二步:在对应的 ...
- Py Split and Count For "PFW Impact Crusher For Sale South Africa"
data = 'As we all know, the impact Crusher is fully used in the transportation, energy, construction ...
- 【原】简述使用spark集群模式运行程序
本文前提是已经正确安装好scala,sbt以及spark了 简述将程序挂载到集群上运行的步骤: 1.构建sbt标准的项目工程结构: 其中: ~/build.sbt文件用来配置项目的基本信息(项目名 ...
- IT新人论成长
说自己是新人,其实自己也不新了,2012年毕业,辗转3个城市,现在在上海一家公司,工资不到5K. 在来现在公司之前,我从事web后台开发,采用MVC模式,虽然做了不少的网站,但感觉自己的水平还是在底层 ...
- UCOS2_STM32F1移植详细过程(一)
Ⅰ.概述 该文写针对初学µC/OS的朋友,基于以下平台来一步一步移植µC/OS嵌入式操作系统.UCOS移植相关平台: 系统平台:µC/OS-II (最新V2.92版) 硬件平台:STM32F1 ...
- 开始认真学计算机网络----computer network学习笔记(一)
什么是计算机网络,就是连一堆计算机,计算机不单单指pc,还包括打印机啦,手机啦巴拉巴拉一堆 为什么要连,share data共享数据 数据? 文档,图片,视频,巴拉巴拉 网络有什么类型? LAN--- ...
- EChart 关于图标控件的简单实用
1.下载前段框架并放入项目中去. 2.在js中调用 <!DOCTYPE html> <html lang="en"> <head> <me ...