<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd">
<context:property-placeholder location="classpath:spring/applicationContextRedis.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="100000"/>
<property name="softMinEvictableIdleTimeMillis" value="10000"/>
<property name="maxWaitMillis" value="1500"/>
<property name="testOnBorrow" value="false"/>
<property name="testWhileIdle" value="true"/>
<property name="blockWhenExhausted" value="false"/>
bean>
<bean id="jedisCuster" class="redis.clients.jedis.JedisCluster">
<constructor-arg name="jedisClusterNode">
<set>
<bean class="redis.clients.jedis.HostAndPort">
<constructor-arg name="host" value="${redis.host}"/>
<constructor-arg name="port" value="${redis.port1}"/>
bean>
<bean class="redis.clients.jedis.HostAndPort">
<constructor-arg name="host" value="${redis.host}"/>
<constructor-arg name="port" value="${redis.port2}"/>
bean>
<bean class="redis.clients.jedis.HostAndPort">
<constructor-arg name="host" value="${redis.host}"/>
<constructor-arg name="port" value="${redis.port3}"/>
bean>
<bean class="redis.clients.jedis.HostAndPort">
<constructor-arg name="host" value="${redis.host}"/>
<constructor-arg name="port" value="${redis.port4}"/>
bean>
<bean class="redis.clients.jedis.HostAndPort">
<constructor-arg name="host" value="${redis.host}"/>
<constructor-arg name="port" value="${redis.port5}"/>
bean>
<bean class="redis.clients.jedis.HostAndPort">
<constructor-arg name="host" value="${redis.host}"/>
<constructor-arg name="port" value="${redis.port6}"/>
bean>
set>
constructor-arg>
<constructor-arg name="connectionTimeout" value="${redis.timeout}"/>
<constructor-arg name="soTimeout" value="${redis.soTimeout}"/>
<constructor-arg name="password" value="${redis.password}"/>
<constructor-arg name="maxAttempts" value="${redis.attempts}"/>
<constructor-arg name="poolConfig" ref="jedisPoolConfig"/>
bean>
<bean id="jedisClientCluster" class="xin.csqsx.utils.jedis.JedisClientCluster">
<property name="jedisCluster" ref="jedisCuster" />
bean>
beans>
package xin.csqsx.utils.jedis;
import java.util.List;
import java.util.Map;
import redis.clients.jedis.JedisCluster;
/**
* 包名 xin.csqsx.utils.jedis
* 类名 JedisClientCluster
* 类描述 redis集群操作工具类
*
* @author Lucifer
* @version 1.0
* 创建日期 2017/11/20
* 时间 19:39
*/
public class JedisClientCluster implements JedisClient {
private JedisCluster jedisCluster;
public JedisCluster getJedisCluster() {
return jedisCluster;
}
public void setJedisCluster(JedisCluster jedisCluster) {
this.jedisCluster = jedisCluster;
}
@Override
public String set(String key, String value) {
return jedisCluster.set(key, value);
}
@Override
public String get(String key) {
return jedisCluster.get(key);
}
@Override
public Boolean exists(String key) {
return jedisCluster.exists(key);
}
@Override
public Long expire(String key, int seconds) {
return jedisCluster.expire(key, seconds);
}
@Override
public Long ttl(String key) {
return jedisCluster.ttl(key);
}
@Override
public Long hset(String key, String field, String value) {
return jedisCluster.hset(key, field, value);
}
@Override
public String hget(String key, String field) {
return jedisCluster.hget(key, field);
}
@Override
public Long hdel(String key, String... field) {
return jedisCluster.hdel(key, field);
}
@Override
public Boolean hexists(String key, String field) {
return jedisCluster.hexists(key, field);
}
@Override
public Map hgetAll(String key) {
return jedisCluster.hgetAll(key);
}
@Override
public List hvals(String key) {
return jedisCluster.hvals(key);
}
@Override
public Long del(String key) {
return jedisCluster.del(key);
}
}
package xin.csqsx.utils.jedis;
import java.util.List;
import java.util.Map;
/**
* 包名 xin.csqsx.utils.jedis
* 类名 JedisClient
* 类描述 jedis操作redis集群的相关操作
*
* @author Lucifer
* @version 1.0
* 创建日期 2017/11/20
* 时间 15:54
*/
public interface JedisClient {
/**
* 设置一个字符串类型的值,如果记录存在则覆盖原有value
*
* @param key 值对应的键
* @param value 值
* @return 状态码, 成功则返回OK
*/
String set(String key, String value);
/**
* 从redis中根据key取值
*
* @param key 要取得值对应的key
* @return 取到的value值
*/
String get(String key);
/**
* 判断某个键值对是否存在
*
* @param key 根据键判断
* @return 判断结果
*/
Boolean exists(String key);
/**
* 设置键值对的过期时间
*
* @param key 要设置过期时间的k键值对的键
* @param seconds 过期时间
* @return 影响的记录数
*/
Long expire(String key, int seconds);
/**
* 查看键值对的剩余时间
*
* @param key 要查看的键值对的键
* @return 剩余时间
*/
Long ttl(String key);
/**
* 添加一个对应关系
*
* @param key 存储的键
* @param field 存储的名字
* @param value 存储的值
* @return 状态码, 1成功, 0失败, 如果field已存在将更新, 返回0
*/
Long hset(String key, String field, String value);
/**
* 返回hash中指定存储的值
*
* @param key 查找的存储的键
* @param field 查找的存储的名字
* @return 指定存储的值
*/
String hget(String key, String field);
/**
* 从hash中删除指定的存储
*
* @param key 存储的键
* @param field 存储的名字
* @return 状态码, 1成功, 0失败
*/
Long hdel(String key, String... field);
/**
* 检测hash中指定的存储是否存在
*
* @param key 存储的键
* @param field 存储的额名字
* @return 状态码, 1代表成功, 0代表失败
*/
Boolean hexists(String key, String field);
/**
* 以map的形式返回hash存储的名字和值
*
* @param key 存储的键
* @return 根据key查找到的存储的名字和值
*/
Map hgetAll(String key);
/**
* 获取hash中value的集合
*
* @param key hash中存储的键
* @return 指定键的所有value的集合
*/
List hvals(String key);
/**
* 根据存储的键删除存储
*
* @param key 存储的键
* @return 状态码, 1成功, 0失败
*/
Long del(String key);
}
2017/11/20
Lucifer