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.youkuaiyun.com/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();
		}
	}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值