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));//HyperLogLogfor(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(){@Overridepublicvoid run(){finalJedis j =newJedis("192.168.110.101",6379);j.subscribe(newJedisPubSub(){@Overridepublicvoid 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,低版本:maxActiveconfig.setMaxTotal(8);// 连接池中最大空闲的连接数config.setMaxIdle(4);// 连接池中最少空闲的连接数config.setMinIdle(1);// 当连接池资源耗尽时,调用者最大阻塞的时间,超时将跑出异常。单位,毫秒数;默认为-1.表示永不超时。高版本:maxWaitMillis,低版本:maxWaitconfig.setMaxWaitMillis(15000);// 连接空闲的最小时间,达到此值后空闲连接将可能会被移除。负值(-1)表示不移除config.setMinEvictableIdleTimeMillis(300000);// 对于“空闲链接”检测线程而言,每次检测的链接资源的个数。默认为3config.setNumTestsPerEvictionRun(3);// “空闲链接”检测线程,检测的周期,毫秒数。如果为负值,表示不运行“检测线程”。默认为-1config.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:6379ASDFG2015-10-222:50:30 redis.clients.jedis.JedisSentinelPool initPool信息:CreatedJedisPool to master at 192.168.110.101:6379192.168.110.101:6379ZXCVB

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-0getHost:192.168.110.102v-1getHost:192.168.110.101v-2getHost:192.168.110.102v-3getHost:192.168.110.103v-4getHost:192.168.110.102v-5getHost:192.168.110.102v-6getHost:192.168.110.103v-7getHost:192.168.110.102v-8getHost:192.168.110.102v-9getHost: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);}elsefor(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命令相类 ...
随机推荐
- C#反射动态调用dll中的方法
//加载程序集(dll文件地址),使用Assembly类 Assembly assembly = Assembly.LoadFile(AppDomain.CurrentDomain.BaseDirec ...
- FileUpload无法赋值解决方案
FileUpload无法赋值解决方案 编写人:CC阿爸 2015-1-27 今天在这里,我想与大家一起分享如何处理fileupload控件不能赋值的问题.有兴趣的同学,可以一同探讨与学习一下,否则就略 ...
- HTTP协议的URI及各种方法
每个Web服务器资源都有一个名字,这样客户端就可以说明他们感兴趣的资源是什么了,服务器资 源名被统称为:统一资源标识符(Uniform Resource Identifier, URI) Joe的五金 ...
- varnish状态引擎2
如何让varnish支持虚拟主机: if (req.http.host = "www.nihao.com") { } 强制对某资源的请求,不检查缓存: 上图表示以/test1.ht ...
- 光迁PING值延迟计算!以及到中国最快的美国机房是哪个机房?
美国圣安娜KT机房/美国KT机房/美国KT服务器 KT机房是美国直达大陆最快的机房,ping值一般为195MS,是做web服务器的首选机房,深受中小站长的欢迎! 我们平时测试美国服务器的速度,都是通过 ...
- C#之匿名类型与隐式局部变量
一.匿名类型 下面一段代码展示了如何定义并且使用匿名类型: static void Main(string[] args) { var patent1 = new { Title = "Ne ...
- COUNT(*),count(1),COUNT(ALL expression),COUNT(DISTINCT expression) BY Group by
select column_2,count(column_2) as 'count(column_2)' ,count(column_1) as 'count(column_1)' ,count(*) ...
- oracle自定义job名字,job调度
一.调试创建 begin -- create_schedule dbms_scheduler.create_schedule(schedule_name => 's_change_send_da ...
- jdk 1.6 & 1.7新特性
jdk1.6新特性 1.Desktop类和SystemTray类 2.使用JAXB2来实现对象与XML之间的映射 3.StAX 4.使用Compiler API 5.轻量级Http Server AP ...
- 利用js排序html表格
在web前端开发中会遇到排序等功能,当然也可以用服务器端来排序,今天我做一个笔记,怎么用js来实现这些复杂的功能呢. 在学习这个之前一定得用html dom jquery 的知识,要不没有办法看明白的 ...