二:redis3.x-cluster集群于spring整合
来源:互联网 发布:好用的网络云盘 编辑:程序博客网 时间:2024/05/21 08:41
本篇主要介绍下redis3.x-cluster集群于spring整合
- 主要依赖的jar包(spring,junit其他相关的略)
<dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>2.9.0</version> </dependency> <dependency> <groupId>org.springframework.data</groupId> <artifactId>spring-data-redis</artifactId> <version>1.8.1.RELEASE</version> </dependency>
- spring整合redis配置:
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:context="http://www.springframework.org/schema/context" xmlns:p="http://www.springframework.org/schema/p" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.0.xsd http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-4.0.xsd"> <!-- 连接池配置 --> <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> <!-- jedis客户端单机版 <bean id="redisClient" class="redis.clients.jedis.JedisPool"> <constructor-arg name="host" value="10.133.7.231"></constructor-arg> <constructor-arg name="port" value="6379"></constructor-arg> <constructor-arg name="poolConfig" ref="jedisPoolConfig"></constructor-arg> </bean>--> <!-- 单机版本 Jedis封装调用 <bean id="cacheManger" class="org.jee.jframework.data.cache.redis.adapter.CacheMangerJedisSingleAdapter"> <constructor-arg name="jedisPool" ref="redisClient"></constructor-arg> </bean>--> <!-- jedis集群版配置 --> <bean id="jedisCluster" class="redis.clients.jedis.JedisCluster"> <constructor-arg name="nodes"> <set> <bean class="redis.clients.jedis.HostAndPort"> <constructor-arg name="host" value="192.168.83.186"></constructor-arg> <constructor-arg name="port" value="6379"></constructor-arg> </bean> <!-- --> <bean class="redis.clients.jedis.HostAndPort"> <constructor-arg name="host" value="192.168.1.136"></constructor-arg> <constructor-arg name="port" value="7002"></constructor-arg> </bean> <bean class="redis.clients.jedis.HostAndPort"> <constructor-arg name="host" value="192.168.1.136"></constructor-arg> <constructor-arg name="port" value="7003"></constructor-arg> </bean> <bean class="redis.clients.jedis.HostAndPort"> <constructor-arg name="host" value="192.168.1.136"></constructor-arg> <constructor-arg name="port" value="7004"></constructor-arg> </bean> <bean class="redis.clients.jedis.HostAndPort"> <constructor-arg name="host" value="192.168.1.136"></constructor-arg> <constructor-arg name="port" value="7005"></constructor-arg> </bean> <bean class="redis.clients.jedis.HostAndPort"> <constructor-arg name="host" value="192.168.1.136"></constructor-arg> <constructor-arg name="port" value="7006"></constructor-arg> </bean> </set> </constructor-arg> <constructor-arg name="poolConfig" ref="jedisPoolConfig"></constructor-arg> </bean> <!-- <bean id="jedisClient" class="com.ycscm.app.core.redis.impl.JedisClientCluster"></bean> --> <!-- 集群环境操作 --> <bean id="cacheManger" class="com.xx.xx.db.cache.redis.CacheMangerJedisClusterAdapter"> <!-- <constructor-arg name="jedisCluster" ref="jedisCluster" ></constructor-arg> --> <property name="jedisCluster" ref="jedisCluster"></property> </bean></beans>
- Java缓存操作接口定义
import java.util.Map;/** * * ClassName: ICacheMangerTarget <br/> * Function: redis缓存操作接口(适配器). <br/> * Reason: . <br/> * date: <br/> * * @author * @version * @since JDK 1.8 */public interface ICacheMangerTarget { /** * 缓存字符串数据结构-根据key获取值 * @param key * @return */ public String getWithkey(String key); /** * 缓存字符串数据结构-存储 * @param key * @param value * @return */ public String setKeyValue(String key, String value); /** * 缓存字符串数据结构-删除 * @param key * @return */ public long delWithkey(String key); /** * 缓存Hash(散列)数据结构-获取值 * @param hkey * @param key * @return */ public String getHashWithKey(String hkey, String key); /** * 缓存Hash(散列)数据结构-根据hashKey获取所有值 * @param hkey * @return */ public Map<String,String> getAllWithHashKey(String hkey); /** * 缓存Hash(散列)数据结构-存放值 * @param hkey * @param key * @param value * @return */ public long setHashKeyValue(String hkey, String key, String value); /** * * setrange:设置失效时间 <br/> * @author hadoop * @param hkey * @param key * @param value * @param time 失效时间 秒为单位 * @return * @since JDK 1.8 */ public String setExpxKeyCache(String key, String value,long timeout); /** * 缓存Hash(散列)数据结构-存放值Map * @param hkey * @param map * @return */ public String setHashKeyValues(String hkey, Map<String,String> map); /** * 缓存Hash(散列)数据结构-删除 * @param hkey * @param key * @return */ public long delHashWithKey(String hkey, String key); /** * * setValueByprotostuff:set值通过Protobuff序列化. <br/> * * @author hadoop * @param key * @param bytes * @return * @since JDK 1.8 */ public String setValueByprotostuff(String key ,byte[] bytes); /** * * getValueByprotostuff:获取值通过Protobuff序列化的. <br/> * * @author hadoop * @param key * @return * @since JDK 1.8 */ public byte[] getValueByprotostuff(String key); public long delByprotostuff(String key);}
- Java操作redis缓存接口实现:
import java.util.Map;import com.xx.xx.db.cache.ICacheMangerTarget;import redis.clients.jedis.JedisCluster;/** * * 类名称: CacheMangerJedisClusterAdapter <br/> * 功能描述: 缓存适配器实现-支持redis集群版 <br/> * 日期: 2017年7月11日 下午8:28:39 <br/> * * @author hadoop * @version * @since JDK 1.8 */public class CacheMangerJedisClusterAdapter implements ICacheMangerTarget { private JedisCluster jedisCluster; public CacheMangerJedisClusterAdapter(){ } /** * 构造函数初始化 jedisCluster对象 * @param jedisCluster */ public CacheMangerJedisClusterAdapter(JedisCluster jedisCluster){ this.jedisCluster = jedisCluster; } @Override public String getWithkey(String key) { return jedisCluster.get(key); } @Override public String setKeyValue(String key, String value) { return jedisCluster.set(key, value); } @Override public long delWithkey(String key) { return jedisCluster.del(key); } @Override public String getHashWithKey(String hkey, String key) { return jedisCluster.hget(hkey, key); } @Override public Map<String, String> getAllWithHashKey(String hkey) { return jedisCluster.hgetAll(hkey); } @Override public long setHashKeyValue(String hkey, String key, String value) { return jedisCluster.hset(hkey, key, value); } @Override public String setHashKeyValues(String hkey, Map<String, String> map) { return jedisCluster.hmset(hkey, map); } @Override public long delHashWithKey(String hkey, String key) { return jedisCluster.hdel(hkey, key); } public void setJedisCluster(JedisCluster jedisCluster) { this.jedisCluster = jedisCluster; } @Override public String setExpxKeyCache(String key, String value, long time) { // TODO Auto-generated method stub return ""; } @Override public String setValueByprotostuff(String key, byte[] bytes) { // TODO Auto-generated method stub return null; } @Override public byte[] getValueByprotostuff(String key) { // TODO Auto-generated method stub return null; } @Override public long delByprotostuff(String key) { // TODO Auto-generated method stub return 0; }}
redis3.x-cluster集群于spring整合记录到这里,很简单实际使用时结合实际情况改造下
阅读全文
0 0
- 二:redis3.x-cluster集群于spring整合
- 一:redis3.x cluster集群
- spring 整合 redis cluster集群
- redis3.x cluster设计
- Redis3缓存集群(cluster)搭建
- Redis3.x-集群搭建
- Redis3.x-集群搭建
- Redis3.x-集群搭建
- spring redis 集群(redis3.x及以上版本)
- Redis3.0.7 cluster/集群 安装配置教程
- Redis3.0.7 cluster/集群 安装配置教程
- Redis3.0 Cluster Redis集群搭建
- centos中redis3 cluster集群的搭建
- 基于Docker redis3.2.4 集群 Cluster
- Redis3.0.7 cluster/集群 安装配置教程
- Redis3.x集群的搭建
- Spring 4.2整合Redis3.2.8
- Redis-Cluster集群整合SpringCache
- 新手小白如何在window把自己的项目上传到github
- MAC下MYSQL5.7.17无法连接的问题
- MyCnCart之评论功能
- hdu-4445 暴力枚举
- Androidstudio好的网站
- 二:redis3.x-cluster集群于spring整合
- 学习Git需要清楚的几个术语以及常用的Git命令总结
- 【079】利用“剪叶子”算法实现树形结构的搜索功能,用Vue.js实现
- react dva 碎片01
- oracle中rownum详解
- hdu-4451 思维题
- Linux下安装mysql
- Go语言的安装与设置
- Codeforces Round #394 (Div. 2) E. Dasha and Puzzle —— 构造 + 贪心