Redis学习笔记(二)
2015-11-18 09:26
609 查看
通过Jedis客户端连接Redis缓存步骤:
1、添加jar包:
pom坐标:<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>2.7.0</version>
</dependency>
jar包如下:
commons-pool2-2.3.jar
jedis-2.7.0.jar
2、单实例连接
通过创建单实例jedis对象连接redis服务,如下代码:// 单实例连接redis @Test public void testJedisSingle() { Jedis jedis = new Jedis("192.168.101.3", 6379); jedis.set("name", "bar"); String name = jedis.get("name"); System.out.println(name); jedis.close(); }
3、使用连接池连接
通过单实例连接redis不能对redis连接进行共享,可以使用连接池对redis连接进行共享,提高资源利用率,使用jedisPool连接redis服务,如下代码:@Test public void pool() { JedisPoolConfig config = new JedisPoolConfig(); //最大连接数 config.setMaxTotal(30); //最大连接空闲数 config.setMaxIdle(2); JedisPool pool = new JedisPool(config, "192.168.101.3", 6379); Jedis jedis = null; try { jedis = pool.getResource(); jedis.set("name", "lisi"); String name = jedis.get("name"); System.out.println(name); }catch(Exception ex){ ex.printStackTrace(); }finally{ if(jedis != null){ //关闭连接 jedis.close(); } } }
4、jedis和Spring整合
配置spring配置文件applicationContext.xml<!-- 连接池配置 --> <bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig"> <!-- 最大连接数 --> <property name="maxTotal" value="30" /> <!-- 最大空闲连接数 --> <property name="maxIdle" value="10" /> <!-- 每次释放连接的最大数目 --> <property name="numTestsPerEvictionRun" value="1024" /> <!-- 释放连接的扫描间隔(毫秒) --> <property name="timeBetweenEvictionRunsMillis" value="30000" /> <!-- 连接最小空闲时间 --> <property name="minEvictableIdleTimeMillis" value="1800000" /> <!-- 连接空闲多久后释放, 当空闲时间>该值 且 空闲连接>最大空闲连接数 时直接释放 --> <property name="softMinEvictableIdleTimeMillis" value="10000" /> <!-- 获取连接时的最大等待毫秒数,小于零:阻塞不确定的时间,默认-1 --> <property name="maxWaitMillis" value="1500" /> <!-- 在获取连接的时候检查有效性, 默认false --> <property name="testOnBorrow" value="true" /> <!-- 在空闲时检查有效性, 默认false --> <property name="testWhileIdle" value="true" /> <!-- 连接耗尽时是否阻塞, false报异常,ture阻塞直到超时, 默认true --> <property name="blockWhenExhausted" value="false" /> </bean> <!-- redis单机 通过连接池 --> <bean id="jedisPool" class="redis.clients.jedis.JedisPool" destroy-method="close"> <constructor-arg index="0" ref="jedisPoolConfig"></constructor-arg> <constructor-arg index="1" value="192.168.101.3"></constructor-arg> <constructor-arg index="2" value="7001"></constructor-arg> </bean>
测试代码:
private ApplicationContext applicationContext; @Before public void init() { applicationContext = new ClassPathXmlApplicationContext( "classpath:applicationContext.xml"); } @Test public void testJedisPool() { JedisPool pool = (JedisPool) applicationContext.getBean("jedisPool"); try { jedis = pool.getResource(); jedis.set("name", "lisi"); String name = jedis.get("name"); System.out.println(name); }catch(Exception ex){ ex.printStackTrace(); }finally{ if(jedis != null){ //关闭连接 jedis.close(); } } }
相关文章推荐
- Redis学习手册(事务)
- redis 安装过程
- Redis的配置
- Redis的安装与使用
- redis性能监控
- Redis序列化存储Java集合List等自定义类型
- Redis序列化存储Java集合List等自定义类型
- Redis序列化存储Java集合List等自定义类型
- Redis监控方案
- Redis总结(二)C#中如何使用redis
- 内存替换redis hll
- redis集群方案总结
- redis缓存技术学习 www.iigrowing.cn/redis-huan-cun-ji-shu-xue-xi.html
- mysql保障数据一致性:redis与mysql数据同步(二)
- 初学Redis(2)——用Redis作为Mysql数据库的缓存
- (转) Redis 遇到的坑
- redis性能相关的数据指标
- 查看远程Redis服务器的版本
- java之redis篇(spring-data-redis整合)
- Redis学习笔记2-Redis的集群