Redis学习笔记(二)

原创 2015年11月18日 09:26:07

通过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();
			}
		}
	}




数据库垂直拆分,水平拆分利器,cobar升级版mycat

1,关于MycatMycat情报 基于阿里的开源cobar ,可以用于生产系统中,目前在做如下的一些改进: 非阻塞IO的实现,相对于目前的cobar,并发性能大大提升,而且不会陷入假死状态 优化...

mysql主从复制、读写分离到数据库水平拆分及库表散列

web项目最原始的情况是一台服务器只能连接一个mysql服务器(c3p0只能配置一个mysql),但随着项目的增大,这种方案明显已经不能满足需求了。 Mysql主从复制,读写分离: 上面的方案使用...

redis学习笔记

  • 2017年12月07日 21:31
  • 1.85MB
  • 下载

redis 缓存技术学习笔记

  • 2015年07月23日 09:40
  • 147KB
  • 下载

redis学习笔记二之数据类型

转自:http://www.cnblogs.com/xhan/archive/2011/02/02/1948891.html 本文介绍下redis支持的各种数据类型包括string,list ,...

Redis学习笔记

  • 2016年09月17日 16:25
  • 394KB
  • 下载

redis 学习笔记

  • 2013年07月18日 20:28
  • 37KB
  • 下载

Redis学习笔记(二)----跳跃表

Skip List 介绍Skip List是一种随机化的数据结构,基于并联的链表,其效率可比拟于二叉查找树(对于大多数操作需要O(log n)平均时间)。基本上,跳跃列表是对有序的链表增加上附加的前进...

redis学习笔记

  • 2017年04月27日 09:45
  • 2.12MB
  • 下载

Redis学习笔记整理

  • 2017年11月14日 14:47
  • 82KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Redis学习笔记(二)
举报原因:
原因补充:

(最多只允许输入30个字)