Redis和Spring整合代码

 
	<!-- Redis客户端 -->
	<dependency>
		<groupId>redis.clients</groupId> 
		<artifactId>jedis</artifactId>
		<version>2.9.0</version>
	</dependency>
	<!-- redis Spring  --> 
	 <dependency>  
		  <groupId>org.springframework.data</groupId>  
		  <artifactId>spring-data-redis</artifactId>  
		  <version>1.8.1.RELEASE</version>  
    </dependency>

 

1,redis单机版spring.xml配置,redis 可以使用自己配置的连接池,也可以使用系统默认配置的连接池。 

		<!-- 连接池配置 -->
		<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 name="poolConfig" ref="jedisPoolConfig"/>
		<constructor-arg name="host" value="192.168.84.128"/>
		<constructor-arg name="port" value="6379"/>
	</bean>

2,redis测试

	/**
	 * 测试单机版的redis
	 */
	public static void JedisSingle(){
		//new 一个使用配置的对象,也可以不对配件文件设置。
		JedisPoolConfig config=new JedisPoolConfig();
		config.setMaxIdle(2);//空闲数
		config.setMaxTotal(30);//连接数
		//new一个redis对象连接池,
		//参数1,配置文件如果有;参数2,虚拟机ip地址;参数3,端口号。
		JedisPool pool=new JedisPool(config,HOST,PORT);
		//从池中获取redis对象									
		Jedis jedis = pool.getResource();
		//操作redis对象设置或获取值
		String set = jedis.hget("itemMap", "key");
		System.out.println(set);
		jedis.close();
		pool.close();
	}

3,redis 集群在spring.xml中整合配置(index="0"表示构造方法第一个参数,index="1"表示构造方法第二个参数)

<!-- redis集群 -->
	<bean id="jedisCluster" class="redis.clients.jedis.JedisCluster">
		<constructor-arg index="0">
			<set>
				<bean class="redis.clients.jedis.HostAndPort">
					<constructor-arg index="0" value="192.168.84.128"></constructor-arg>
					<constructor-arg index="1" value="7001"></constructor-arg>
				</bean>
				<bean class="redis.clients.jedis.HostAndPort">
					<constructor-arg index="0" value="192.168.84.128"></constructor-arg>
					<constructor-arg index="1" value="7002"></constructor-arg>
				</bean>
				<bean class="redis.clients.jedis.HostAndPort">
					<constructor-arg index="0" value="192.168.84.128"></constructor-arg>
					<constructor-arg index="1" value="7003"></constructor-arg>
				</bean>
				<bean class="redis.clients.jedis.HostAndPort">
					<constructor-arg index="0" value="192.168.84.128"></constructor-arg>
					<constructor-arg index="1" value="7004"></constructor-arg>
				</bean>
				<bean class="redis.clients.jedis.HostAndPort">
					<constructor-arg index="0" value="192.168.84.128"></constructor-arg>
					<constructor-arg index="1" value="7005"></constructor-arg>
				</bean>
				<bean class="redis.clients.jedis.HostAndPort">
					<constructor-arg index="0" value="192.168.84.128"></constructor-arg>
					<constructor-arg index="1" value="7006"></constructor-arg>
				</bean>
			</set>
		</constructor-arg>
	<!-- 	表示配置文件的构造方法参数 -->
		<!-- <constructor-arg index="1" ref="jedisPoolConfig"></constructor-arg> -->
	</bean>

4,整合redis集群测试

	/**
	 * 测试集群jedis
	 */
	public static void JedisCluster(){
		//new一个Set集合存放每一个HostAndPort对象
		Set<HostAndPort> nodes=new HashSet<HostAndPort>();
		//new HostAndPort()对象,参数虚拟机ip地址,端口号
		HostAndPort hap1=new HostAndPort(HOST, 7001);
		HostAndPort hap2=new HostAndPort(HOST, 7002);
		HostAndPort hap3=new HostAndPort(HOST, 7003);
		HostAndPort hap4=new HostAndPort(HOST, 7004);
		HostAndPort hap5=new HostAndPort(HOST, 7005);
		HostAndPort hap6=new HostAndPort(HOST, 7006);
		//把每一个 HostAndPort对象放到Set集合中
		nodes.add(hap1);
		nodes.add(hap2);
		nodes.add(hap3);
		nodes.add(hap4);
		nodes.add(hap5);
		nodes.add(hap6);
		//使用new JedisCluster()获取集群
		redis.clients.jedis.JedisCluster jc=new redis.clients.jedis.JedisCluster(nodes);
//		String name = jc.get("name");
		//使用集群的方法操作
		jc.set("age", "21");
		System.out.println(jc.get("age"));
	}

一般在项目中使用  @Autowired注解方式得到集群对象。然后操作集群。

    @Autowired
    private JedisCluster jedisCluster;

 

完。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值