springboot向redis写入数据步骤

springboot向redis写入数据步骤

1、引入redis依赖并配置

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

2、在主配置文件application.xml中配置redis数据库

	redis:
		host: 127.0.0.1			----> redis装在哪上,就用哪的ip,本机的话用127.0.0.1,虚拟机的话用虚拟机上的ip
		port: 6379
		password: 				----> 如果没有设置密码就不写这一项

3、写入数据

------引入:<!--json组件:将对象转为字符串、json-->-------------------
			<dependency>
				<groupId>com.google.code.gson</groupId>
				<artifactId>gson</artifactId>
			</dependency>

**********************不带注释**************************************		
	@Autowired
	private StringRedisTemplate redisTemplate;
	private Gson gson = new Gson();
	
    HashOperations<String, String, String> opsForHash = redisTemplate.opsForHash();//hash结构存储redis
    String redisKey  = String.format(CART_REDIS_KEY_TEMPLATE, uid);//reids的key(如:cart_1),第一个参数

    Cart cart;
    String value = opsForHash.get(redisKey, String.valueOf(product.getId()));
    if (StringUtils.isEmpty(value)) {
        cart = new Cart(product.getId(), quantity, form.getSelected());
    }else {
        cart = gson.fromJson(value, Cart.class);
        cart.setQuantity(cart.getQuantity() + quantity);
    }
    opsForHash.put(redisKey,
            String.valueOf(product.getId()),
            gson.toJson(cart));//序列化,再将cart对象转为json,然后put进redis	

************************带注释*********************************************				
	@Autowired
	private StringRedisTemplate redisTemplate;//spring封装好的
	private Gson gson = new Gson();//一款将对象转为json、string的组件

	//写入到redis:1、引入redis依赖并配置
    //key: cart_1
    //三个string参数:1、reids的key(如:cart_1),后面两个string是存到redis中的KV值(2、HK:商品id,3、HV:商品信息json)
    HashOperations<String, String, String> opsForHash = redisTemplate.opsForHash();//hash结构存储redis
    String redisKey  = String.format(CART_REDIS_KEY_TEMPLATE, uid);//reids的key(如:cart_1),第一个参数

    Cart cart;
    //2、先读redis中数据,看是否有该商品
    String value = opsForHash.get(redisKey, String.valueOf(product.getId()));//得到redis中的cart对象的json形式
    if (StringUtils.isEmpty(value)) {
        //value为空,表示没有该商品, 则新增一个
        cart = new Cart(product.getId(), quantity, form.getSelected());
    }else {
        //已经有了(json格式),数量+1
        cart = gson.fromJson(value, Cart.class);//取出存到redis中的cart对象的json形式,反序列化将json转为cart对象
        cart.setQuantity(cart.getQuantity() + quantity);//数量+1
    }

    opsForHash.put(redisKey,
            String.valueOf(product.getId()),
            gson.toJson(cart));//序列化,再将cart对象转为json,然后put进redis	
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值