redis集群之哨兵模式高可用整合spring的配置使用及spring缓存机制和redis的结合
2018-06-06 22:04
1166 查看
<?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>
阅读更多
相关文章推荐
- Redis整合Spring结合使用缓存实例
- Redis整合Spring结合使用缓存实例
- Redis整合Spring结合使用缓存实例
- Redis整合Spring结合使用缓存实例
- Redis整合Spring结合使用缓存实例(转)
- Redis整合Spring结合使用缓存实例
- Redis整合Spring结合使用缓存实例
- Redis整合Spring结合使用缓存实例
- Redis整合Spring结合使用缓存实例
- Redis学习总结(2)——Redis整合Spring结合使用缓存实例
- Redis整合Spring结合使用缓存实例
- Redis学习总结(3)——Redis整合Spring结合使用缓存实例
- Redis高可用集群-哨兵模式(Redis-Sentinel)搭建配置教程【Windows环境】
- Redis整合Spring结合使用缓存实例
- Redis整合Spring结合使用缓存实例
- Redis整合Spring结合使用缓存实例
- 使用 Spring data redis 结合 Spring cache 缓存数据配置
- Redis整合Spring结合使用缓存实例
- Redis整合Spring结合使用缓存实例(三)
- Redis整合Spring结合使用缓存实例