springboot2.0整合redis框架 集成redis事務

1、pom.xml添加依賴

<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>2.0.0.RELEASE</version>
	</parent>
	<dependencies>
		<!-- SpringBoot web 核心組件 -->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
		</dependency>
		<!-- SpringBoot對Redis支持 -->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-data-redis</artifactId>
		</dependency>
	</dependencies>

2、封裝一個redisService類


//  springboot 2.0 整合redis
@Component
public class RedisService {

	@Autowired
	private StringRedisTemplate stringRedisTemplate;

	public void set(String key, Object object, Long time) {
		// 讓該方法能夠支持多種數據類型存放
		if (object instanceof String) {
			setString(key, object);
		}
		// 如果存放時Set類型
		if (object instanceof Set) {
			setSet(key, object);
		}
        //其他類型 就不加了先
		// 設置有效期

		if (time != null) {
			stringRedisTemplate.expire(key, time, TimeUnit.SECONDS);
		}

	}

	public void setString(String key, Object object) {
		String value = (String) object;
		// 存放string類型
		stringRedisTemplate.opsForValue().set(key, value);
	}

	public void setSet(String key, Object object) {
		Set<String> valueSet = (Set<String>) object;
		for (String string : valueSet) {
			stringRedisTemplate.opsForSet().add(key, string);
		}
	}

	public String getString(String key) {
		return stringRedisTemplate.opsForValue().get(key);
	}

}

3、controller層添加操作代碼

@RestController
public class IndexController {
	@Autowired
	private RedisService redisService;

	@RequestMapping("/setString")
	public String setString(String key, String object) {
		redisService.set(key, object, 60l);
		return "success";
	}

	@RequestMapping("/get")
	public String get(String key) {
		return redisService.getString(key);
	}

}

4、yml文件進行配置redis

spring:
  redis:
    database: 1
    host: 192.168.37.110
    port: 6379
    password: 123
    jedis:
      pool:
        max-active: 8
        max-wait: -1
        max-idle: 8
        min-idle: 0
    timeout: 10000

直接瀏覽器訪問進行測試就可以了

http://localhost:8080/setString?key=linkui&object=123456

 

 

如果不行,可能是redis你安裝的有問題,可以查看我這裏安裝步驟,看下是否有設置不對的地方

https://blog.csdn.net/jxpxlinkui/article/details/79639422

最後,redis集成事務操作

public void setString(String key, Object object) {
		// 開啓事務權限
		 stringRedisTemplate.setEnableTransactionSupport(true);
		try {
			// 開啓事務 begin
			 stringRedisTemplate.multi();
			String value = (String) object;
			stringRedisTemplate.opsForValue().set(key, value);
			System.out.println("存入完畢,馬上開始提交redis事務");
			// 提交事務
			 stringRedisTemplate.exec();
		} catch (Exception e) {
			// 需要回滾事務
			 stringRedisTemplate.discard();
		}
	}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章