您的位置:首页 > 数据库 > Redis

SpringBoot整合redis集群并使用StringRedisTemplate和RedisTemplate简单操作Redis集群

2019-03-15 12:37 946 查看

Redis集群安装参考:https://blog.csdn.net/weixin_42465125/article/details/87885133

pom依赖:

[code]<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.3.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>cn.cuit.redis</groupId>
<artifactId>redis-demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>redis-demo</name>
<description>Demo project for Spring Boot</description>

<properties>
<java.version>1.8</java.version>
</properties>

<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>

<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>

</project>

properties配置文件:

[code]spring.application.name=spring-boot-redis

# spring.redis.host=192.168.174.221

spring.redis.cluster.nodes=192.168.174.221:6381, 192.168.174.221:6382, 192.168.174.221:6383, 192.168.174.221:6384, 192.168.174.221:6385, 192.168.174.221:6386
# 新版
spring.redis.jedis.pool.max-wait=-1
spring.redis.jedis.pool.max-active=300
spring.redis.jedis.pool.max-idle=100
spring.redis.jedis.pool.min-idle=20
## 连接超时时间(毫秒)
spring.redis.timeout=60000
## Redis数据库索引(默认为0)
spring.redis.database=0

#旧版
## 连接池最大连接数(使用负值表示没有限制)
#spring.redis.pool.max-active=300
## 连接池最大阻塞等待时间(使用负值表示没有限制)
#spring.redis.pool.max-wait=-1
## 连接池中的最大空闲连接
#spring.redis.pool.max-idle=100
## 连接池中的最小空闲连接
#spring.redis.pool.min-idle=20

启动类:

[code]package cn.cuit.redis.redisdemo;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class RedisDemoApplication {

public static void main(String[] args) {
SpringApplication.run(RedisDemoApplication.class, args);
}

}

测试类:

[code]package cn.cuit.redis.redisdemo.crud;

import javax.annotation.PostConstruct;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.data.redis.core.ListOperations;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.data.redis.core.ValueOperations;
import org.springframework.test.context.junit4.SpringRunner;

/**
* 这只是一个简单例子,更多参考如下: https://www.cnblogs.com/zwcry/p/9176250.html
* https://www.cnblogs.com/superfj/p/9232482.html
* https://www.cnblogs.com/jiangbei/p/8601107.html
*/
@RunWith(SpringRunner.class)
@SpringBootTest
public class RedisClusterTest {

@Autowired
private StringRedisTemplate stringRedisTemplate;

@Autowired
private RedisTemplate<String, String> redisTemplate;

ValueOperations<String, String> stringRedis;

ListOperations<String, String> listRedis;

/**
* 被@PostConstruct修饰的方法会在服务器加载Servlet的时候运行,并且只会被服务器调用一次,
* 类似于Serclet的inti()方法。被@PostConstruct修饰的方法会在构造函数之后运行。
*/
@PostConstruct
public void init() {
stringRedis = stringRedisTemplate.opsForValue();
listRedis = redisTemplate.opsForList();
}

@Test
public void testPutString() {
stringRedis.set("str:name", "CUIT");
}

@Test
public void testGetString() {
System.out.println(">>>>>>>>>>>>>>>>>>>>>" + stringRedis.get("str:name"));
}

@Test
public void testPutList() {
listRedis.leftPushAll("list:key", new String[] { "value1", "value2", "value3" });
}

@Test
public void testPopFromList() {
System.out.println(">>>>>>>>>>>>>>>>>>>>>" + listRedis.rightPop("list:key"));
System.out.println(">>>>>>>>>>>>>>>>>>>>>" + listRedis.leftPop("list:key"));
}

}

测试结果:

testPutString:

testGetString: 

 

 testPutList:

 

testPopFromList :

********************************* 不积跬步无以至千里,不积小流无以成江海 *********************************

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: