redis集群之哨兵模式高可用整合spring的配置使用及spring缓存机制和redis的结合

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:p="http://www.springframework.org/schema/p"
	xmlns:context="http://www.springframework.org/schema/context"
	xmlns:cache="http://www.springframework.org/schema/cache"
	xmlns:aop="http://www.springframework.org/schema/aop"
	xmlns:tx="http://www.springframework.org/schema/tx"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.3.xsd
		http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
		http://www.springframework.org/schema/cache http://www.springframework.org/schema/cache/spring-cache.xsd
		http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
		http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.0.xsd">
	<!-- spring缓存机制和redis的结合 -->	
	<!-- 缓存注解驱动 -->
	<cache:annotation-driven/>	
	
	<!-- 缓存管理器memocache ehcache redis -->
	<bean id="redisCacheManger"  class="org.springframework.data.redis.cache.RedisCacheManager">
		<!-- 注入redis模板 -->
		<constructor-arg name="redisOperations" ref="template"></constructor-arg>
		<!-- 设置缓存名称 -->
		<constructor-arg name="cacheNames">
			<list>
				<value>cachename</value>
			</list>
		</constructor-arg>
		<!-- 默认的超时时间 默认10分钟 -->
		<property name="defaultExpiration" value="600"></property>
	</bean>
	
	<!-- spring缓存机制和redis的结合使用 在serviceImpl处的注解使用说明
		@Cacheable(value="cachename" ,key="students")
		当调用该方法时,首先根据key去缓存服务器查找数据,如果找到了数据,则直接返回,
		不会调用注解的方法,如果没有找到,则正常调用目标方法,并且将方法的返回值进行缓存
		该注解通常用于数据查找,必须注解有返回值的方法
		
		@CachePut(value="cachename",key="'student_'+#result.id")
		@CachePut(value="cachename",key="'student_'+#stu.id")
		该注解基本和Cacheable类似,唯一的不同在于,CachePut注解的方法一定会被执行,通常用于增加、更新数据
		
		@CacheEvict(value="cachename",key="'student_'+#id")
		该注解通常用于删除
		
		注解里还有两个不常用的参数condition、unless
	-->
</beans>
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:p="http://www.springframework.org/schema/p"
	xmlns:context="http://www.springframework.org/schema/context"
	xmlns:aop="http://www.springframework.org/schema/aop"
	xmlns:tx="http://www.springframework.org/schema/tx"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.3.xsd
		http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
		http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
		http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.0.xsd">
		
		<!-- 配置redis连接池对象 -->
		<bean id="poolConfig" class="redis.clients.jedis.JedisPoolConfig">
			<!-- 最大空闲数 -->
			<property name="maxIdle" value="50"></property>
			<!-- 最大连接数 -->
			<property name="maxTotal" value="100"></property>
			<!-- 最大等待时间 -->
			<property name="maxWaitMillis" value="20000"></property>
		</bean>
		
		<!-- 哨兵配置项 -->
		<bean id="sentinelConfig"  class="org.springframework.data.redis.connection.RedisSentinelConfiguration">
			<!-- 配置master主服务器的名称 -->
			<property name="master">
				<bean class="org.springframework.data.redis.connection.RedisNode">
					<property name="name" value="mymaster"></property>
				</bean>
			</property>
			<!-- 配置哨兵服务 -->
			<property name="sentinels">
				<set>
					<bean class="org.springframework.data.redis.connection.RedisNode">
						<constructor-arg name="host" value="192.168.101.153"></constructor-arg>
						<constructor-arg name="port" value="26379"></constructor-arg>
					</bean>
					<bean class="org.springframework.data.redis.connection.RedisNode">
						<constructor-arg name="host" value="192.168.101.153"></constructor-arg>
						<constructor-arg name="port" value="26380"></constructor-arg>
					</bean>
					<bean class="org.springframework.data.redis.connection.RedisNode">
						<constructor-arg name="host" value="192.168.101.153"></constructor-arg>
						<constructor-arg name="port" value="26381"></constructor-arg>
					</bean>
				</set>
			</property>
		</bean>
		
		<!-- 配置redis连接工厂 -->
		<bean id="connectionFactory"  class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory">
			<!-- 连接池配置 -->
			<property name="poolConfig" ref="poolConfig"></property>
			<!-- 配置哨兵 -->
			<constructor-arg name="sentinelConfig" ref="sentinelConfig"/>
			<!-- 连接主机 -->
			<property name="hostName" ref="192.168.101.128"></property>
			<!-- 端口 -->
			<property name="port" ref="6379"></property>
			<!-- 密码 -->
			<property name="password" ref="root"></property>
		</bean>
		
		
		<!-- 
		配置序列化的方式   搜索*RedisSerializer  有很多种序列化的方式
		 -->
		<bean id="stringRedisSerializer" class="org.springframework.data.redis.serializer.StringRedisSerializer"></bean>
		
		
		<!-- 配置redis模板对象
			模板的使用
			Student的实体类要事项接口 Serializable
			Student stu = new Student(10,"小红",19,new Date());
			template.opsForValue().set("student",stu);
		 -->
		<bean id="template" class="org.springframework.data.redis.core.RedisTemplate">
			<!-- 配置连接工厂 -->
			<property name="connectionFactory" ref="connectionFactory"></property>
			<!-- 修改键的序列化器 -->
			<property name="keySerializer" ref="stringRedisSerializer"></property>
			<!--  修改值的序列化器  -->
			<property name="valueSerializer" ref="stringRedisSerializer"></property>
		</bean>
</beans>

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值