标签:java redis
jedis是java操作redis最常用的驱动包,有多中使用方式,做一个总结方法自己使用:
依赖jar
<dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>2.6.2</version> <type>jar</type> </dependency>
1.最简单的使用方式
/** * 这中是最简单的使用方式,每个Jedis对象都代表一个和RedisServer的socket连接,可以通过它来和远程的redis服务器通讯,执行命令;缺点在于不能每次使用都new一个Jedis对象。 */ @Test public void testSimpleJedis(){ Jedis jedis = new Jedis("127.0.0.1", 6379); jedis.set("name", "sky"); System.out.println(jedis.get("name")); }
2. 使用连接池方式
/** * 这种采用连接池的方式可以避免频繁的创建和销毁Jedis对象所带来的性能消耗;连接池底层是 使用commons-pool来实现的,所有commons-pool支持的配置参数都可以用来配置JedisPool 缺点是只能操作一个远程的redis服务器 */ public void testJedisPool(){ JedisPool jedisPool = new JedisPool("127.0.0.1", 6379); Jedis jedis = jedisPool.getResource(); jedis.set("name", "sky"); System.out.println(jedis.get("name")); jedisPool.returnBrokenResource(jedis); } 和 spring 的集成配置 <bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig"> <property name="maxIdle" value="${redis.maxIdle}" /> <property name="maxTotal" value="${redis.maxActive}" /> <property name="maxWaitMillis" value="${redis.maxWait}" /> <property name="testOnBorrow" value="${redis.testOnBorrow}" /> </bean> <bean class="redis.clients.jedis.JedisPool"> <constructor-arg index="0" ref="jedisPoolConfig"/> <constructor-arg index="1" value="${redis.host}"/> <constructor-arg index="2" value="${redis.port}"/> </bean>
3. 集群分片
/** * 集群分片直连。 采用一致性hash来处理分片机器down机故障,减小缓存失效对应用的影响。 */ @Test public void testShared(){ List<JedisShardInfo> shards = Arrays.asList( new JedisShardInfo("localhost", 6379), new JedisShardInfo("localhost", 6380)); //在new的同时建立和远程服务器的连接 ShardedJedis sharding = new ShardedJedis(shards); long start = System.currentTimeMillis(); for (int i = 0; i < 100000; i++) { String result = sharding.set("sn" + i, "n" + i); } long end = System.currentTimeMillis(); System.out.println("Simple@Sharing SET: " + ((end - start) / 1000.0) + " seconds"); sharding.disconnect(); }
4.集群分片+连接池
@Test public void testSharedPool(){ List<JedisShardInfo> shards = Arrays.asList( new JedisShardInfo("localhost",6379), new JedisShardInfo("localhost",6380)); ShardedJedisPool pool = new ShardedJedisPool(new JedisPoolConfig(), shards); ShardedJedis one = pool.getResource(); long start = System.currentTimeMillis(); for (int i = 0; i < 100000; i++) { String result = one.set("spn" + i, "n" + i); } long end = System.currentTimeMillis(); pool.returnResource(one); System.out.println("Simple@Pool SET: " + ((end - start)/1000.0) + " seconds"); pool.destroy(); }
本文出自 “java小沙弥” 博客,请务必保留此出处http://leokongwq.blog.51cto.com/1310215/1708083
标签:java redis
原文地址:http://leokongwq.blog.51cto.com/1310215/1708083