客户端采用最新的jedis 2.7
1.
maven依赖:
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>2.7.2</version>
</dependency>
2.
增加spring 配置
- <bean name="genericObjectPoolConfig" class="org.apache.commons.pool2.impl.GenericObjectPoolConfig" >
- <property name="maxWaitMillis" value="-1" />
- <property name="maxTotal" value="1000" />
- <property name="minIdle" value="8" />
- <property name="maxIdle" value="100" />
- </bean>
- <bean id="jedisCluster" class="xxx.JedisClusterFactory">
- <property name="addressConfig">
- <value>classpath:connect-redis.properties</value>
- </property>
- <property name="addressKeyPrefix" value="address" /> <!-- 属性文件里 key的前缀 -->
- <property name="timeout" value="300000" />
- <property name="maxRedirections" value="6" />
- <property name="genericObjectPoolConfig" ref="genericObjectPoolConfig" />
- </bean>
3.
增加connect-redis.properties 配置文件
这里配置了6个节点
- address1=172.16.23.27:6379
- address2=172.16.23.27:6380
- address3=172.16.23.27:6381
- address4=172.16.23.27:6382
- address5=172.16.23.27:6383
- address6=172.16.23.27:6384
4.
增加java类:
- import java.util.HashSet;
- import java.util.Properties;
- import java.util.Set;
- import java.util.regex.Pattern;
- import org.apache.commons.pool2.impl.GenericObjectPoolConfig;
- import org.springframework.beans.factory.FactoryBean;
- import org.springframework.beans.factory.InitializingBean;
- import org.springframework.core.io.Resource;
- import redis.clients.jedis.HostAndPort;
- import redis.clients.jedis.JedisCluster;
- public class JedisClusterFactory implements FactoryBean<JedisCluster>, InitializingBean {
- private Resource addressConfig;
- private String addressKeyPrefix ;
- private JedisCluster jedisCluster;
- private Integer timeout;
- private Integer maxRedirections;
- private GenericObjectPoolConfig genericObjectPoolConfig;
- private Pattern p = Pattern.compile("^.+[:]\\d{1,5}\\s*$");
- @Override
- public JedisCluster getObject() throws Exception {
- return jedisCluster;
- }
- @Override
- public Class<? extends JedisCluster> getObjectType() {
- return (this.jedisCluster != null ? this.jedisCluster.getClass() : JedisCluster.class);
- }
- @Override
- public boolean isSingleton() {
- return true;
- }
- private Set<HostAndPort> parseHostAndPort() throws Exception {
- try {
- Properties prop = new Properties();
- prop.load(this.addressConfig.getInputStream());
- Set<HostAndPort> haps = new HashSet<HostAndPort>();
- for (Object key : prop.keySet()) {
- if (!((String) key).startsWith(addressKeyPrefix)) {
- continue;
- }
- String val = (String) prop.get(key);
- boolean isIpPort = p.matcher(val).matches();
- if (!isIpPort) {
- throw new IllegalArgumentException("ip 或 port 不合法");
- }
- String[] ipAndPort = val.split(":");
- HostAndPort hap = new HostAndPort(ipAndPort[0], Integer.parseInt(ipAndPort[1]));
- haps.add(hap);
- }
- return haps;
- } catch (IllegalArgumentException ex) {
- throw ex;
- } catch (Exception ex) {
- throw new Exception("解析 jedis 配置文件失败", ex);
- }
- }
- @Override
- public void afterPropertiesSet() throws Exception {
- Set<HostAndPort> haps = this.parseHostAndPort();
- jedisCluster = new JedisCluster(haps, timeout, maxRedirections,genericObjectPoolConfig);
- }
- public void setAddressConfig(Resource addressConfig) {
- this.addressConfig = addressConfig;
- }
- public void setTimeout(int timeout) {
- this.timeout = timeout;
- }
- public void setMaxRedirections(int maxRedirections) {
- this.maxRedirections = maxRedirections;
- }
- public void setAddressKeyPrefix(String addressKeyPrefix) {
- this.addressKeyPrefix = addressKeyPrefix;
- }
- public void setGenericObjectPoolConfig(GenericObjectPoolConfig genericObjectPoolConfig) {
- this.genericObjectPoolConfig = genericObjectPoolConfig;
- }
- }
5.
到此配置完成
使用时,直接注入即可, 如下所示:
@Autowired
JedisCluster jedisCluster;
http://xyqck163.iteye.com/blog/2211108
相关推荐
redis3.0 widows集群 spring整合jedis redis搭建window集群代码和文档rubygems-2.5.1和rubyinstaller-2.2.3-x64软件下载
redis 3.0 集群的安装和原理部分的设置,主从复制,哨兵,集群,故障转移,
redis3.0集群正式版出来啦,redis3.0.集群环境安装手册
NULL 博文链接:https://zjjndnr.iteye.com/blog/2386575
Redis3.0集群代理系统, 并发接收客户端请求,计算Key的哈希槽值,转发到对应的缓存服务器,并将缓存服务器的返回值回传给客户端, 这样客户端只要访问集群代理系统,实现一次性定位访问,效率与单台缓存服务器...
redis3.0-集群部署文档
Redis3.0集群部署方案
redis3.0集群安装手册
Redis3.0.504Redis3.0.504Redis3.0.504Redis3.0.504Redis3.0.504
Redis3.0集群与应用,简单易懂
Redis3.0 集群安装过程 1. 下载redis 2. 编译 安装,拷贝配置文件 3. 修改redis.conf配置文件 4. 部署6份redis 实例 5. 修改 6个redis实例的配置文件 6. 安装集群需安装ruby运行环境 7. 编写脚本启动6个redis实例 8...
项目由maven构建,使用springMVC整合了Redis的集群,发布到tomcat中,访问http://localhost:8080/SpringRedisCluster/redis/hello.do测试即可,前提是配好了redis的集群。
(4)集群:Redis 3.0支持集群,可以将多个Redis实例拼接成一个集群,并实现负载均衡,提高Redis的可用性。 3、总结: Redis 3.0是一款高性能的开源内存数据库,它拥有非常快速的读写性能,几乎是传统数据库的1000倍...
某播客Redis3.0新特性、主从复制、集群视频教程 某播客Redis3.0新特性、主从复制、集群视频教程 某播客Redis3.0新特性、主从复制、集群视频教程
redis3.0windows版,解压后可直接使用
redis3.0.501绿色版 自己改下批处理的路径
redis3.0-windows.具体安装步骤请转至博主博客
spring4.0结合redis3.0需要的jar
redis3.0正式版出来了,最新钻研了下,奉上redis3.0 demo代码
redis 3.0 win7 32位x86,亲测可用!