java代码访问redis集群

本例环境:
        jdk 1.7
        Redis-x64-3.2.100
环境搭建可参考如下:
        redis集群环境搭建-(redis-cluster)(windows版本) : 
        https://blog.csdn.net/zhangbeizhen18/article/details/102668554

1.本例代码下载地址
        https://github.com/zhangbeizhen/spring-redis
2.pom.xml文件需引入redis相关jar包
        本例:

<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.10.RELEASE</version>
</dependency>
<dependency>
    <groupId>org.springframework.data</groupId>
    <artifactId>spring-data-keyvalue</artifactId>
    <version>1.2.10.RELEASE</version>
    <scope>test</scope>
</dependency>
<dependency>
    <groupId>org.springframework.data</groupId>
    <artifactId>spring-data-commons</artifactId>
    <version>1.13.10.RELEASE</version>
</dependen

3.redis相关配置

<!-- 2019-10-21 -->
<!-- jedis pool 配置 -->
<bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig">
	<!-- 最大连接数 -->
	<property name="maxTotal" value="256" />
	<!-- 最大空闲连接数 -->
	<property name="maxIdle" value="50" />
	<!-- 每次释放连接的最大数目 -->
	<property name="numTestsPerEvictionRun" value="512" />
	<!-- 释放连接的扫描间隔(毫秒)-->
	<property name="timeBetweenEvictionRunsMillis" value="30000" />
	<!-- 释放连接最小空闲时间 -->
	<property name="minEvictableIdleTimeMillis" value="-1" />
	<!-- 连接空闲多久后释放,当空闲时间>该值且空闲连接>最大空闲连接数时直接释放 -->
	<property name="softMinEvictableIdleTimeMillis" value="10000" />
	<!-- 获取连接时的最大等待毫秒数,小于零:阻塞不确定的时间,默认-1 -->
	<property name="maxWaitMillis" value="1500" />
	<!-- 在获取连接的时候检查有效性,默认false -->
	<property name="testOnBorrow" value="true" />
	<!-- 在空闲时检查有效性,默认false -->
	<property name="testWhileIdle" value="true" />
	<!-- 当调用返回时检查有效性,默认false -->
	<property name="testOnReturn" value="false" />
	<!-- 是否开启jmx监控,默认为true,可以通过jconsole等工具监控连接池 -->
	<property name="jmxEnabled" value="true" />
	<!-- 使用默认pool -->
	<property name="jmxNamePrefix" value="pool" />
	<!-- 连接耗尽时是否阻塞,false报异常,ture阻塞直到超时,默认true-->
	<property name="blockWhenExhausted" value="false" />
</bean>
<!-- 序列化 -->
<bean id="serializer" class="org.springframework.data.redis.serializer.StringRedisSerializer"/>

3.redis-cluster相关配置

<!-- 2019-10-21 -->
<!--配置RedisCluster -->
<bean id="redisClusterConfiguration"
  class="org.springframework.data.redis.connection.RedisClusterConfiguration">
  <property name="maxRedirects" value="4"></property>
  <property name="clusterNodes">
    <set>
      <bean class="org.springframework.data.redis.connection.RedisNode">
      	<constructor-arg name="host" value="127.0.0.1" />
      	<constructor-arg name="port" value="6379" />
      </bean>
      <bean class="org.springframework.data.redis.connection.RedisNode">
      	<constructor-arg name="host" value="127.0.0.1" />
      	<constructor-arg name="port" value="6380" />
      </bean>
      <bean class="org.springframework.data.redis.connection.RedisNode">
      	<constructor-arg name="host" value="127.0.0.1" />
      	<constructor-arg name="port" value="6381" />
      </bean>
      <bean class="org.springframework.data.redis.connection.RedisNode">
      	<constructor-arg name="host" value="127.0.0.1" />
      	<constructor-arg name="port" value="6382" />
      </bean>
      <bean class="org.springframework.data.redis.connection.RedisNode">
      	<constructor-arg name="host" value="127.0.0.1" />
      	<constructor-arg name="port" value="6383" />
      </bean>
      <bean class="org.springframework.data.redis.connection.RedisNode">
      	<constructor-arg name="host" value="127.0.0.1" />
      	<constructor-arg name="port" value="6384" />
      </bean>
    </set>
  </property>
</bean>
<!--配置JedisConnectionFactory -->
<bean id="jedisClusterConnectionFactory"
	class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory">
	<constructor-arg name="clusterConfig" ref="redisClusterConfiguration" />
	<constructor-arg name="poolConfig" ref="jedisPoolConfig" />
	<property name="password" value="" />
</bean>
<!--操作集群redisTemplate -->
<bean id="redisClusterTemplate" class="org.springframework.data.redis.core.RedisTemplate">
	<property name="connectionFactory" ref="jedisClusterConnectionFactory" />
	<property name="defaultSerializer" ref="serializer" />
	<property name="keySerializer" ref="serializer" />
	<property name="valueSerializer" ref="serializer" />
</bean>

4.OptRedisClusterService代码调用

@Service
public class OptRedisClusterService {
  private static final Logger logger = LoggerFactory.getLogger(OptRedisClusterService.class);
  @Autowired
  private RedisTemplate redisClusterTemplate;	
  public String optCluster(){
  	String result ="";
  	logger.info("从集群读出数据:" +"Hello");
  	ValueOperations value = redisClusterTemplate.opsForValue();
  	result = value.get("Hello").toString();
  	logger.info("集群读出结果是: " + result);		
  	logger.info("向集群写入数据:" +"HelloCluster:20191021");
  	value.set("HelloCluster", "20191021");		
  	return result;
  }
}

5.测试url        
        http://127.0.0.1:8080/spring-redis/service/redis?str=test
6.测试截图
6.1集群中数据-使用命令行写入的数据
        截图:
        
6.2从客户端查看代码写入数据
        登入命令
        redis-cli –c –h 127.0.0.1  -p 6379
        截图:
        
6.3代码控制台输出从集群读出的数据
        截图:
        
        
以上,感谢.

发布了183 篇原创文章 · 获赞 40 · 访问量 15万+

猜你喜欢

转载自blog.csdn.net/zhangbeizhen18/article/details/102674174
今日推荐