Merge branch 'master' of github.com:redisson/redisson

pull/903/head
Nikita 8 years ago
commit 083065c332

@ -37,6 +37,7 @@ import org.redisson.connection.RedisClientEntry;
import io.netty.util.concurrent.Future;
import io.netty.util.concurrent.FutureListener;
import org.redisson.misc.URIBuilder;
/**
*
@ -55,7 +56,7 @@ public class RedisNodes<N extends Node> implements NodesGroup<N> {
@Override
public N getNode(String address) {
Collection<N> clients = (Collection<N>) connectionManager.getClients();
URI uri = URI.create(address);
URI uri = URIBuilder.create(address);
InetSocketAddress addr = new InetSocketAddress(uri.getHost(), uri.getPort());
for (N node : clients) {
if (node.getAddr().equals(addr)) {

@ -44,6 +44,7 @@ import io.netty.util.Timer;
import io.netty.util.concurrent.Future;
import io.netty.util.concurrent.FutureListener;
import io.netty.util.concurrent.GlobalEventExecutor;
import org.redisson.misc.URIBuilder;
/**
* Low-level Redis client
@ -101,7 +102,7 @@ public class RedisClient {
*/
@Deprecated
public RedisClient(String address) {
this(URI.create(address));
this(URIBuilder.create(address));
}
/*

@ -26,6 +26,7 @@ import io.netty.channel.nio.NioEventLoopGroup;
import io.netty.channel.socket.SocketChannel;
import io.netty.channel.socket.nio.NioSocketChannel;
import io.netty.util.Timer;
import org.redisson.misc.URIBuilder;
/**
*
@ -56,11 +57,11 @@ public class RedisClientConfig {
private String sslKeystorePassword;
public RedisClientConfig setAddress(String host, int port) {
this.address = URI.create("redis://" + host + ":" + port);
this.address = URIBuilder.create("redis://" + host + ":" + port);
return this;
}
public RedisClientConfig setAddress(String address) {
this.address = URI.create(address);
this.address = URIBuilder.create(address);
return this;
}
public RedisClientConfig setAddress(URI address) {

@ -17,6 +17,7 @@ package org.redisson.client;
import java.net.InetSocketAddress;
import java.net.URI;
import org.redisson.misc.URIBuilder;
/**
*
@ -27,12 +28,12 @@ public class RedisRedirectException extends RedisException {
private static final long serialVersionUID = 181505625075250011L;
private int slot;
private URI url;
private final int slot;
private final URI url;
public RedisRedirectException(int slot, String url) {
this.slot = slot;
this.url = URI.create("//" + url);
this.url = URIBuilder.create("//" + url);
}
public int getSlot() {

@ -18,6 +18,7 @@ package org.redisson.cluster;
import java.net.URI;
import java.util.HashSet;
import java.util.Set;
import org.redisson.misc.URIBuilder;
/**
*
@ -52,7 +53,7 @@ public class ClusterNodeInfo {
return address;
}
public void setAddress(String address) {
this.address = URI.create(address);
this.address = URIBuilder.create(address);
}
public void addSlotRange(ClusterSlotRange range) {

@ -18,6 +18,7 @@ package org.redisson.config;
import java.net.URI;
import java.util.ArrayList;
import java.util.List;
import org.redisson.misc.URIBuilder;
/**
*
@ -53,7 +54,7 @@ public class ClusterServersConfig extends BaseMasterSlaveServersConfig<ClusterSe
*/
public ClusterServersConfig addNodeAddress(String ... addresses) {
for (String address : addresses) {
nodeAddresses.add(URI.create(address));
nodeAddresses.add(URIBuilder.create(address));
}
return this;
}

@ -18,6 +18,7 @@ package org.redisson.config;
import java.net.URI;
import java.util.HashSet;
import java.util.Set;
import org.redisson.misc.URIBuilder;
/**
*
@ -60,7 +61,7 @@ public class MasterSlaveServersConfig extends BaseMasterSlaveServersConfig<Maste
*/
public MasterSlaveServersConfig setMasterAddress(String masterAddress) {
if (masterAddress != null) {
this.masterAddress = URI.create(masterAddress);
this.masterAddress = URIBuilder.create(masterAddress);
}
return this;
}
@ -85,7 +86,7 @@ public class MasterSlaveServersConfig extends BaseMasterSlaveServersConfig<Maste
*/
public MasterSlaveServersConfig addSlaveAddress(String ... addresses) {
for (String address : addresses) {
slaveAddresses.add(URI.create(address));
slaveAddresses.add(URIBuilder.create(address));
}
return this;
}

@ -18,6 +18,7 @@ package org.redisson.config;
import java.net.URI;
import java.util.ArrayList;
import java.util.List;
import org.redisson.misc.URIBuilder;
/**
* Configuration for an Azure Redis Cache or AWS ElastiCache servers.
@ -61,7 +62,7 @@ public class ReplicatedServersConfig extends BaseMasterSlaveServersConfig<Replic
*/
public ReplicatedServersConfig addNodeAddress(String ... addresses) {
for (String address : addresses) {
nodeAddresses.add(URI.create(address));
nodeAddresses.add(URIBuilder.create(address));
}
return this;
}

@ -18,6 +18,7 @@ package org.redisson.config;
import java.net.URI;
import java.util.ArrayList;
import java.util.List;
import org.redisson.misc.URIBuilder;
/**
*
@ -67,7 +68,7 @@ public class SentinelServersConfig extends BaseMasterSlaveServersConfig<Sentinel
*/
public SentinelServersConfig addSentinelAddress(String ... addresses) {
for (String address : addresses) {
sentinelAddresses.add(URI.create(address));
sentinelAddresses.add(URIBuilder.create(address));
}
return this;
}

@ -16,6 +16,7 @@
package org.redisson.config;
import java.net.URI;
import org.redisson.misc.URIBuilder;
/**
*
@ -125,7 +126,7 @@ public class SingleServerConfig extends BaseConfig<SingleServerConfig> {
*/
public SingleServerConfig setAddress(String address) {
if (address != null) {
this.address = URI.create(address);
this.address = URIBuilder.create(address);
}
return this;
}

@ -48,6 +48,7 @@ import org.slf4j.LoggerFactory;
import io.netty.util.concurrent.Future;
import io.netty.util.concurrent.FutureListener;
import io.netty.util.internal.PlatformDependent;
import org.redisson.misc.URIBuilder;
/**
*
@ -104,7 +105,7 @@ public class SentinelConnectionManager extends MasterSlaveConnectionManager {
log.info("slave: {} added", host);
if (flags.contains("s_down") || flags.contains("disconnected")) {
URI uri = URI.create(host);
URI uri = URIBuilder.create(host);
disconnectedSlaves.add(uri);
log.warn("slave: {} is down", host);
}
@ -215,7 +216,7 @@ public class SentinelConnectionManager extends MasterSlaveConnectionManager {
String port = parts[3];
String addr = createAddress(ip, port);
URI uri = URI.create(addr);
URI uri = URIBuilder.create(addr);
registerSentinel(cfg, uri, c);
}
}
@ -237,7 +238,7 @@ public class SentinelConnectionManager extends MasterSlaveConnectionManager {
// to avoid addition twice
if (slaves.putIfAbsent(slaveAddr, true) == null) {
final MasterSlaveEntry entry = getEntry(singleSlotRange.getStartSlot());
RFuture<Void> future = entry.addSlave(URI.create(slaveAddr));
RFuture<Void> future = entry.addSlave(URIBuilder.create(slaveAddr));
future.addListener(new FutureListener<Void>() {
@Override
public void operationComplete(Future<Void> future) throws Exception {
@ -379,7 +380,7 @@ public class SentinelConnectionManager extends MasterSlaveConnectionManager {
String newMaster = createAddress(ip, port);
if (!newMaster.equals(current)
&& currentMaster.compareAndSet(current, newMaster)) {
changeMaster(singleSlotRange.getStartSlot(), URI.create(newMaster));
changeMaster(singleSlotRange.getStartSlot(), URIBuilder.create(newMaster));
log.info("master {} changed to {}", current, newMaster);
}
}

@ -30,6 +30,7 @@ import java.util.concurrent.atomic.AtomicInteger;
import org.redisson.connection.ClientConnectionsEntry;
import io.netty.util.internal.PlatformDependent;
import org.redisson.misc.URIBuilder;
/**
* Weighted Round Robin balancer.
@ -77,7 +78,7 @@ public class WeightedRoundRobinBalancer implements LoadBalancer {
*/
public WeightedRoundRobinBalancer(Map<String, Integer> weights, int defaultWeight) {
for (Entry<String, Integer> entry : weights.entrySet()) {
URI uri = URI.create(entry.getKey());
URI uri = URIBuilder.create(entry.getKey());
InetSocketAddress addr = new InetSocketAddress(uri.getHost(), uri.getPort());
if (entry.getValue() <= 0) {
throw new IllegalArgumentException("Weight can't be less than or equal zero");

@ -0,0 +1,40 @@
/**
* Copyright 2016 Nikita Koksharov
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.redisson.misc;
import java.net.URI;
/**
*
* @author Rui Gu (https://github.com/jackygurui)
*/
public class URIBuilder {
public static URI create(String uri) {
URI u = URI.create(uri);
//Let's assuming most of the time it is OK.
if (u.getHost() != null) {
return u;
}
String s = uri.substring(0, uri.lastIndexOf(":"))
.replaceFirst("redis://", "")
.replaceFirst("rediss://", "");
//Assuming this is an IPv6 format, other situations will be handled by
//Netty at a later stage.
return URI.create(uri.replace(s, "[" + s + "]"));
}
}

@ -16,6 +16,8 @@
package org.redisson.spring.support;
import org.redisson.client.RedisClient;
import org.redisson.client.RedisClientConfig;
import org.springframework.beans.factory.parsing.BeanComponentDefinition;
import org.springframework.beans.factory.support.BeanDefinitionBuilder;
import org.springframework.beans.factory.xml.AbstractSimpleBeanDefinitionParser;
import org.springframework.beans.factory.xml.ParserContext;
@ -26,20 +28,21 @@ import org.w3c.dom.Element;
*
* @author Rui Gu (https://github.com/jackygurui)
*/
public final class RedisDefinitionParser
public final class RedisDefinitionParser
extends AbstractSimpleBeanDefinitionParser {
private static final String ADDRESS_ATTRIBUTE = "address";
private static final String HOST_ATTRIBUTE = "host";
private static final String PORT_ATTRIBUTE = "port";
private static final String CONNECTION_TIMEOUT_ATTRIBUTE = "connectionTimeout";
private static final String COMMAND_TIMEOUT_ATTRIBUTE = "commandTimeout";
private final RedissonNamespaceParserSupport helper;
public RedisDefinitionParser(RedissonNamespaceParserSupport helper) {
this.helper = helper;
}
@Override
protected Class<RedisClient> getBeanClass(Element element) {
return RedisClient.class;
@ -48,14 +51,27 @@ public final class RedisDefinitionParser
@Override
protected void doParse(Element element, ParserContext parserContext, BeanDefinitionBuilder builder) {
builder.getRawBeanDefinition().setBeanClass(RedisClient.class);
helper.addConstructorArgs(element,
HOST_ATTRIBUTE, String.class, builder);
helper.addConstructorArgs(element,
PORT_ATTRIBUTE, int.class, builder);
helper.addConstructorArgs(element,
CONNECTION_TIMEOUT_ATTRIBUTE, int.class, builder);
helper.addConstructorArgs(element,
COMMAND_TIMEOUT_ATTRIBUTE, int.class, builder);
if (helper.hasAttribute(element, HOST_ATTRIBUTE)) {
helper.addConstructorArgs(element,
HOST_ATTRIBUTE, String.class, builder);
helper.addConstructorArgs(element,
PORT_ATTRIBUTE, int.class, builder);
helper.addConstructorArgs(element,
CONNECTION_TIMEOUT_ATTRIBUTE, int.class, builder);
helper.addConstructorArgs(element,
COMMAND_TIMEOUT_ATTRIBUTE, int.class, builder);
} else {
BeanDefinitionBuilder b
= helper.createBeanDefinitionBuilder(element,
parserContext,
RedisClientConfig.class);
String configId = helper.getId(null, b, parserContext);
helper.parseAttributes(element, parserContext, b);
BeanComponentDefinition def
= helper.registerBeanDefinition(b, configId,
null, parserContext);
helper.addConstructorArgs(def, RedisClientConfig.class, builder);
}
builder.setDestroyMethodName("shutdown");
parserContext.getDelegate().parseQualifierElements(element,
builder.getRawBeanDefinition());
@ -65,7 +81,7 @@ public final class RedisDefinitionParser
protected boolean shouldGenerateIdAsFallback() {
return true;
}
@Override
protected boolean isEligibleAttribute(String attributeName) {
return helper.isEligibleAttribute(attributeName);

@ -15,7 +15,6 @@
*/
package org.redisson.spring.support;
import java.net.URI;
import java.util.List;
import org.redisson.Redisson;
@ -124,7 +123,7 @@ public final class RedissonDefinitionParser
String id = parserContext.getReaderContext().generateBeanName(bd);
helper.registerBeanDefinition(builder, id,
helper.parseAliase(element), parserContext);
parseAttributes(element, parserContext, builder);
helper.parseAttributes(element, parserContext, builder);
redissonDef.addDependsOn(id);
parseChildElements(element, id, null, redissonDef, parserContext);
parserContext.getDelegate().parseQualifierElements(element, bd);
@ -140,45 +139,6 @@ public final class RedissonDefinitionParser
redissonDef.addDependsOn(id);
}
private void parseAttributes(Element element, ParserContext parserContext, BeanDefinitionBuilder builder) {
NamedNodeMap attributes = element.getAttributes();
for (int x = 0; x < attributes.getLength(); x++) {
Attr attribute = (Attr) attributes.item(x);
if (helper.isEligibleAttribute(attribute)) {
String propertyName
= attribute.getLocalName().endsWith(REF_SUFFIX)
? attribute.getLocalName()
.substring(0, attribute.getLocalName()
.length() - REF_SUFFIX.length())
: attribute.getLocalName();
propertyName = Conventions
.attributeNameToPropertyName(propertyName);
Assert.state(StringUtils.hasText(propertyName),
"Illegal property name returned from"
+ " 'extractPropertyName(String)': cannot be"
+ " null or empty.");
if (attribute.getLocalName().endsWith(REF_SUFFIX)) {
builder.addPropertyReference(propertyName,
attribute.getValue());
} else {
Object value = attribute.getValue();
String localName = helper.getName(element);
if ("masterAddress".equals(propertyName)
&& ConfigType.masterSlaveServers.name()
.equals(localName)) {
try {
value = URI.create((String) value);
} catch (Exception e) {
//value may be a placeholder
value = "redis://" + value;
}
}
builder.addPropertyValue(propertyName, value);
}
}
}
}
@Override
public BeanDefinition parse(Element element, ParserContext parserContext) {
//Sort out the Config Class
@ -186,7 +146,7 @@ public final class RedissonDefinitionParser
= helper.createBeanDefinitionBuilder(element, parserContext,
Config.class);
String configId = helper.getId(null, configBuilder, parserContext);
parseAttributes(element, parserContext, configBuilder);
helper.parseAttributes(element, parserContext, configBuilder);
helper.registerBeanDefinition(configBuilder, configId,
null, parserContext);
@ -200,7 +160,7 @@ public final class RedissonDefinitionParser
parserContext.getDelegate().parseQualifierElements(element,
builder.getRawBeanDefinition());
String id = helper.getId(element, builder, parserContext);
parseAttributes(element, parserContext, configBuilder);
helper.parseAttributes(element, parserContext, configBuilder);
//Sort out all the nested elements
parseChildElements(element, configId, id, builder, parserContext);

@ -25,9 +25,11 @@ import org.springframework.beans.factory.support.BeanDefinitionBuilder;
import org.springframework.beans.factory.support.BeanDefinitionReaderUtils;
import org.springframework.beans.factory.xml.ParserContext;
import org.springframework.core.Conventions;
import org.springframework.util.Assert;
import org.springframework.util.StringUtils;
import org.w3c.dom.Attr;
import org.w3c.dom.Element;
import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
/**
@ -39,6 +41,7 @@ public class RedissonNamespaceParserSupport {
public final static String REDISSON_NAMESPACE
= "http://redisson.org/schema/redisson";
static final String REF_SUFFIX = "-ref";
static final String API_CLASS_PATH_PREFIX = "org.redisson.api.R";
static final String IMPL_CLASS_PATH_PREFIX = "org.redisson.Redisson";
@ -93,6 +96,33 @@ public class RedissonNamespaceParserSupport {
return aliases;
}
public void parseAttributes(Element element, ParserContext parserContext, BeanDefinitionBuilder builder) {
NamedNodeMap attributes = element.getAttributes();
for (int x = 0; x < attributes.getLength(); x++) {
Attr attribute = (Attr) attributes.item(x);
if (isEligibleAttribute(attribute)) {
String propertyName
= attribute.getLocalName().endsWith(REF_SUFFIX)
? attribute.getLocalName()
.substring(0, attribute.getLocalName()
.length() - REF_SUFFIX.length())
: attribute.getLocalName();
propertyName = Conventions
.attributeNameToPropertyName(propertyName);
Assert.state(StringUtils.hasText(propertyName),
"Illegal property name returned from"
+ " 'extractPropertyName(String)': cannot be"
+ " null or empty.");
if (attribute.getLocalName().endsWith(REF_SUFFIX)) {
builder.addPropertyReference(propertyName,
attribute.getValue());
} else {
builder.addPropertyValue(propertyName, attribute.getValue());
}
}
}
}
public BeanDefinitionBuilder createBeanDefinitionBuilder(Element element, ParserContext parserContext, Class<?> cls) {
BeanDefinitionBuilder builder
= BeanDefinitionBuilder.genericBeanDefinition();

@ -1,2 +1,3 @@
http\://redisson.org/schema/redisson/redisson.xsd=org/redisson/spring/support/redisson-1.0.xsd
http\://redisson.org/schema/redisson/redisson.xsd=org/redisson/spring/support/redisson-1.1.xsd
http\://redisson.org/schema/redisson/redisson-1.0.xsd=org/redisson/spring/support/redisson-1.0.xsd
http\://redisson.org/schema/redisson/redisson-1.1.xsd=org/redisson/spring/support/redisson-1.1.xsd

@ -61,7 +61,7 @@ public class SpringNamespaceTest extends BaseTest {
}
public static void startContext() throws Exception {
System.setProperty("redisAddress", RedisRunner.getDefaultRedisServerBindAddressAndPort());
System.setProperty("redisAddress", "redis://" + RedisRunner.getDefaultRedisServerBindAddressAndPort());
//Needs a instance running on the default port, launch it if there isn't one already
if (RedisRunner.isFreePort(6379)) {
@ -79,7 +79,7 @@ public class SpringNamespaceTest extends BaseTest {
RedisRunner.getDefaultRedisServerInstance().getRedisServerBindAddress(),
RedisRunner.getDefaultRedisServerInstance().getRedisServerPort())
.run();
System.setProperty("slave1Address", slave1.getRedisServerAddressAndPort());
System.setProperty("slave1Address", "redis://" + slave1.getRedisServerAddressAndPort());
RedisRunner.RedisProcess slave2 = new RedisRunner()
.nosave()
@ -89,7 +89,7 @@ public class SpringNamespaceTest extends BaseTest {
RedisRunner.getDefaultRedisServerInstance().getRedisServerBindAddress(),
RedisRunner.getDefaultRedisServerInstance().getRedisServerPort())
.run();
System.setProperty("slave2Address", slave2.getRedisServerAddressAndPort());
System.setProperty("slave2Address", "redis://" + slave2.getRedisServerAddressAndPort());
RedisRunner.RedisProcess sentinel1 = new RedisRunner()
.nosave()
@ -101,7 +101,7 @@ public class SpringNamespaceTest extends BaseTest {
RedisRunner.getDefaultRedisServerInstance().getRedisServerBindAddress(),
RedisRunner.getDefaultRedisServerInstance().getRedisServerPort(),
2).run();
System.setProperty("sentinel1Address", sentinel1.getRedisServerAddressAndPort());
System.setProperty("sentinel1Address", "redis://" + sentinel1.getRedisServerAddressAndPort());
RedisRunner.RedisProcess sentinel2 = new RedisRunner()
.nosave()
@ -113,7 +113,7 @@ public class SpringNamespaceTest extends BaseTest {
RedisRunner.getDefaultRedisServerInstance().getRedisServerBindAddress(),
RedisRunner.getDefaultRedisServerInstance().getRedisServerPort(),
2).run();
System.setProperty("sentinel2Address", sentinel2.getRedisServerAddressAndPort());
System.setProperty("sentinel2Address", "redis://" + sentinel2.getRedisServerAddressAndPort());
RedisRunner.RedisProcess sentinel3 = new RedisRunner()
.nosave()
@ -125,7 +125,7 @@ public class SpringNamespaceTest extends BaseTest {
RedisRunner.getDefaultRedisServerInstance().getRedisServerBindAddress(),
RedisRunner.getDefaultRedisServerInstance().getRedisServerPort(),
2).run();
System.setProperty("sentinel3Address", sentinel3.getRedisServerAddressAndPort());
System.setProperty("sentinel3Address", "redis://" + sentinel3.getRedisServerAddressAndPort());
RedisRunner slave = new RedisRunner().randomPort().randomDir().nosave();
ClusterRunner clusterRunner = new ClusterRunner()
.addNode(new RedisRunner().randomPort().randomDir().nosave(),//master1
@ -143,7 +143,7 @@ public class SpringNamespaceTest extends BaseTest {
new RedisRunner().randomPort().randomDir().nosave());//slave1-3-2
final AtomicLong index = new AtomicLong(0);
clusterRunner.run().getNodes().stream().forEach((node) -> {
System.setProperty("node" + (index.incrementAndGet()) + "Address", node.getRedisServerAddressAndPort());
System.setProperty("node" + (index.incrementAndGet()) + "Address", "redis://" + node.getRedisServerAddressAndPort());
});
context = new ClassPathXmlApplicationContext("classpath:org/redisson/spring/support/namespace.xml");

@ -2,7 +2,9 @@ package org.redisson.spring.support;
import io.netty.channel.EventLoopGroup;
import java.lang.reflect.Method;
import java.util.Map;
import java.util.concurrent.Executor;
import static org.hamcrest.Matchers.*;
import org.junit.Test;
import org.redisson.ClusterRunner;
import org.redisson.RedisRunner;
@ -11,7 +13,10 @@ import org.redisson.config.Config;
import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import static org.junit.Assert.*;
import org.redisson.client.RedisClient;
import org.redisson.client.RedisConnection;
import org.redisson.client.codec.Codec;
import org.redisson.client.protocol.RedisCommands;
import org.redisson.codec.CodecProvider;
import org.redisson.config.SingleServerConfig;
import org.redisson.liveobject.provider.ResolverProvider;
@ -38,6 +43,27 @@ public class SpringNamespaceWikiTest {
}
}
@Test
public void testRedisClient() throws Exception {
RedisRunner.RedisProcess run = new RedisRunner()
.requirepass("do_not_use_if_it_is_not_set")
.nosave()
.randomDir()
.run();
try {
ClassPathXmlApplicationContext context
= new ClassPathXmlApplicationContext("classpath:org/redisson/spring/support/namespace_wiki_redis_client.xml");
RedisClient redisClient = context.getBean(RedisClient.class);
RedisConnection connection = redisClient.connect();
Map<String, String> info = connection.sync(RedisCommands.INFO_ALL);
assertThat(info, notNullValue());
assertThat(info, not(info.isEmpty()));
((ConfigurableApplicationContext) context).close();
} finally {
run.stop();
}
}
@Test
public void testSingleWithPlaceholder() throws Exception {
RedisRunner.RedisProcess run = new RedisRunner()
@ -66,6 +92,12 @@ public class SpringNamespaceWikiTest {
System.setProperty("redisson.password", "do_not_use_if_it_is_not_set");
System.setProperty("redisson.subscriptionsPerConnection", "10");
System.setProperty("redisson.clientName", "client_name");
System.setProperty("redisson.sslEnableEndpointIdentification", "true");
System.setProperty("redisson.sslProvider", "JDK");
System.setProperty("redisson.sslTruststore", "/tmp/truststore.p12");
System.setProperty("redisson.sslTruststorePassword", "not_set");
System.setProperty("redisson.sslKeystore", "/tmp/keystore.p12");
System.setProperty("redisson.sslKeystorePassword", "not_set");
System.setProperty("redisson.subscriptionConnectionMinimumIdleSize", "11");
System.setProperty("redisson.subscriptionConnectionPoolSize", "12");
System.setProperty("redisson.connectionMinimumIdleSize", "13");

@ -6,7 +6,7 @@
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd
http://redisson.org/schema/redisson classpath:org/redisson/spring/support/redisson-1.0.xsd
http://redisson.org/schema/redisson classpath:org/redisson/spring/support/redisson-1.1.xsd
">
<context:annotation-config />
<context:property-placeholder system-properties-mode="OVERRIDE"/>

@ -6,7 +6,7 @@
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd
http://redisson.org/schema/redisson classpath:org/redisson/spring/support/redisson-1.0.xsd
http://redisson.org/schema/redisson classpath:org/redisson/spring/support/redisson-1.1.xsd
">
<bean id="myCodec" class="org.redisson.codec.MsgPackJacksonCodec"/>
<bean id="myCodecProvider" class="org.redisson.codec.DefaultCodecProvider"/>
@ -51,6 +51,12 @@
password="do_not_use_if_it_is_not_set"
subscriptions-per-connection="5"
client-name="none"
ssl-enable-endpoint-identification="true"
ssl-provider="JDK"
ssl-truststore="/tmp/truststore.p12"
ssl-truststore-password="no_pass"
ssl-keystore="/tmp/keystore.p12"
ssl-keystore-password="no_pass"
load-balancer-ref="myLoadBalancer"
subscription-connection-minimum-idle-size="1"
subscription-connection-pool-size="50"
@ -62,9 +68,9 @@
subscription-mode="SLAVE"
scan-interval="1000"
>
<redisson:node-address value="127.0.0.1:6379" />
<redisson:node-address value="127.0.0.1:6380" />
<redisson:node-address value="127.0.0.1:6381" />
<redisson:node-address value="redis://127.0.0.1:6379" />
<redisson:node-address value="redis://127.0.0.1:6380" />
<redisson:node-address value="redis://127.0.0.1:6381" />
</redisson:cluster-servers>
</redisson:client>
</beans>

@ -6,7 +6,7 @@
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd
http://redisson.org/schema/redisson classpath:org/redisson/spring/support/redisson-1.0.xsd
http://redisson.org/schema/redisson classpath:org/redisson/spring/support/redisson-1.1.xsd
">
<bean id="myCodec" class="org.redisson.codec.MsgPackJacksonCodec"/>
<bean id="myCodecProvider" class="org.redisson.codec.DefaultCodecProvider"/>
@ -51,6 +51,12 @@
password="do_not_use_if_it_is_not_set"
subscriptions-per-connection="5"
client-name="none"
ssl-enable-endpoint-identification="true"
ssl-provider="JDK"
ssl-truststore="/tmp/truststore.p12"
ssl-truststore-password="no_pass"
ssl-keystore="/tmp/keystore.p12"
ssl-keystore-password="no_pass"
load-balancer-ref="myLoadBalancer"
subscription-connection-minimum-idle-size="1"
subscription-connection-pool-size="50"
@ -60,11 +66,11 @@
master-connection-pool-size="64"
read-mode="SLAVE"
subscription-mode="SLAVE"
master-address="127.0.0.1:6379"
master-address="redis://127.0.0.1:6379"
database="0"
>
<redisson:slave-address value="127.0.0.1:6380" />
<redisson:slave-address value="127.0.0.1:6381" />
<redisson:slave-address value="redis://127.0.0.1:6380" />
<redisson:slave-address value="redis://127.0.0.1:6381" />
</redisson:master-slave-servers>
</redisson:client>
</beans>

@ -0,0 +1,48 @@
<?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:context="http://www.springframework.org/schema/context"
xmlns:redisson="http://redisson.org/schema/redisson"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd
http://redisson.org/schema/redisson classpath:org/redisson/spring/support/redisson-1.1.xsd
">
<bean id="myExecutor" class="org.springframework.beans.factory.config.MethodInvokingFactoryBean">
<property name="staticMethod" value="java.util.concurrent.Executors.newFixedThreadPool"/>
<property name="arguments" value="8"/>
</bean>
<bean id="myEventLoopGroup" class="io.netty.channel.nio.NioEventLoopGroup"/>
<bean id="myTimer" class="io.netty.util.HashedWheelTimer"/>
<redisson:redis
id="redisClient"
name="redisClient1,redisClient2"
address="redis://127.0.0.1:6379"
timer-ref="myTimer"
executor-ref="myExecutor"
group-ref="myEventLoopGroup"
socket-channel-class="io.netty.channel.socket.nio.NioSocketChannel"
connect-timeout="2000"
command-timeout="10000"
ssl-enable-endpoint-identification="true"
ssl-provider="JDK"
ssl-truststore="/tmp/truststore.p12"
ssl-truststore-password="no_pass"
ssl-keystore="/tmp/keystore.p12"
ssl-keystore-password="no_pass"
password="do_not_use_if_it_is_not_set"
database="1"
client-name="myClient"
read-only="false"
>
<!--
You can't have both name attribute and qualifier element at
the same time.
Both id attribute and name attribute can be used as qualifier
candidates.
-->
<!--<qualifier value="redisClient3"/>-->
</redisson:redis>
</beans>

@ -6,7 +6,7 @@
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd
http://redisson.org/schema/redisson classpath:org/redisson/spring/support/redisson-1.0.xsd
http://redisson.org/schema/redisson classpath:org/redisson/spring/support/redisson-1.1.xsd
">
<bean id="myCodec" class="org.redisson.codec.MsgPackJacksonCodec"/>
<bean id="myCodecProvider" class="org.redisson.codec.DefaultCodecProvider"/>
@ -51,6 +51,12 @@
password="do_not_use_if_it_is_not_set"
subscriptions-per-connection="5"
client-name="none"
ssl-enable-endpoint-identification="true"
ssl-provider="JDK"
ssl-truststore="/tmp/truststore.p12"
ssl-truststore-password="no_pass"
ssl-keystore="/tmp/keystore.p12"
ssl-keystore-password="no_pass"
load-balancer-ref="myLoadBalancer"
subscription-connection-minimum-idle-size="1"
subscription-connection-pool-size="50"
@ -63,9 +69,9 @@
scan-interval="1000"
database="0"
>
<redisson:node-address value="127.0.0.1:6379" />
<redisson:node-address value="127.0.0.1:6380" />
<redisson:node-address value="127.0.0.1:6381" />
<redisson:node-address value="redis://127.0.0.1:6379" />
<redisson:node-address value="redis://127.0.0.1:6380" />
<redisson:node-address value="redis://127.0.0.1:6381" />
</redisson:replicated-servers>
</redisson:client>
</beans>

@ -6,7 +6,7 @@
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd
http://redisson.org/schema/redisson classpath:org/redisson/spring/support/redisson-1.0.xsd
http://redisson.org/schema/redisson classpath:org/redisson/spring/support/redisson-1.1.xsd
">
<bean id="myCodec" class="org.redisson.codec.MsgPackJacksonCodec"/>
<bean id="myCodecProvider" class="org.redisson.codec.DefaultCodecProvider"/>
@ -51,6 +51,12 @@
password="do_not_use_if_it_is_not_set"
subscriptions-per-connection="5"
client-name="none"
ssl-enable-endpoint-identification="true"
ssl-provider="JDK"
ssl-truststore="/tmp/truststore.p12"
ssl-truststore-password="no_pass"
ssl-keystore="/tmp/keystore.p12"
ssl-keystore-password="no_pass"
load-balancer-ref="myLoadBalancer"
subscription-connection-minimum-idle-size="1"
subscription-connection-pool-size="50"
@ -63,8 +69,8 @@
master-name="myMaster"
database="0"
>
<redisson:sentinel-address value="127.0.0.1:26379" />
<redisson:sentinel-address value="127.0.0.1:26380" />
<redisson:sentinel-address value="redis://127.0.0.1:26379" />
<redisson:sentinel-address value="redis://127.0.0.1:26380" />
</redisson:sentinel-servers>
</redisson:client>
</beans>

@ -6,7 +6,7 @@
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd
http://redisson.org/schema/redisson classpath:org/redisson/spring/support/redisson-1.0.xsd
http://redisson.org/schema/redisson classpath:org/redisson/spring/support/redisson-1.1.xsd
">
<bean id="myCodec" class="org.redisson.codec.MsgPackJacksonCodec"/>
<bean id="myCodecProvider" class="org.redisson.codec.DefaultCodecProvider"/>
@ -49,8 +49,14 @@
failed-attempts="3"
password="do_not_use_if_it_is_not_set"
subscriptions-per-connection="5"
client-name="none"
address="127.0.0.1:6379"
client-name="none"
ssl-enable-endpoint-identification="true"
ssl-provider="JDK"
ssl-truststore="/tmp/truststore.p12"
ssl-truststore-password="no_pass"
ssl-keystore="/tmp/keystore.p12"
ssl-keystore-password="no_pass"
address="redis://127.0.0.1:6379"
subscription-connection-minimum-idle-size="1"
subscription-connection-pool-size="50"
connection-minimum-idle-size="10"

@ -6,7 +6,7 @@
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd
http://redisson.org/schema/redisson classpath:org/redisson/spring/support/redisson-1.0.xsd
http://redisson.org/schema/redisson classpath:org/redisson/spring/support/redisson-1.1.xsd
">
<context:property-placeholder system-properties-mode="OVERRIDE"/>
@ -43,7 +43,13 @@
failed-attempts="${redisson.failedAttempts}"
password="${redisson.password}"
subscriptions-per-connection="${redisson.subscriptionsPerConnection}"
client-name="${redisson.clientName}"
client-name="${redisson.clientName}"
ssl-enable-endpoint-identification="${redisson.sslEnableEndpointIdentification}"
ssl-provider="${redisson.sslProvider}"
ssl-truststore="${redisson.sslTruststore}"
ssl-truststore-password="${redisson.sslTruststorePassword}"
ssl-keystore="${redisson.sslKeystore}"
ssl-keystore-password="${redisson.sslKeystorePassword}"
address="${redisson.redisAddress}"
subscription-connection-minimum-idle-size="${redisson.subscriptionConnectionMinimumIdleSize}"
subscription-connection-pool-size="${redisson.subscriptionConnectionPoolSize}"

@ -6,7 +6,7 @@
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd
http://redisson.org/schema/redisson classpath:org/redisson/spring/support/redisson-1.0.xsd
http://redisson.org/schema/redisson classpath:org/redisson/spring/support/redisson-1.1.xsd
">
<context:annotation-config/>
<context:property-placeholder system-properties-mode="OVERRIDE"/>

Loading…
Cancel
Save