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

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

pom依赖:

<?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配置文件:

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

启动类:

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);
	}

}

测试类:

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 :

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

猜你喜欢

转载自blog.csdn.net/weixin_42465125/article/details/88417718
今日推荐