将数据写入redis

  • 导入依赖
  <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-redis</artifactId>
  </dependency>
  
  <dependency>
            <groupId>com.google.code.gson</groupId>
            <artifactId>gson</artifactId>
  </dependency>
  • 实例化对象
@Autowired
private StringRedisTemplate redisTemplate;

private Gson gson = new Gson();
  • 方法调用
  redisTemplate.opsForValue().set(String.format("%d",uid)
                ,gson.toJson(new Cart(product.getId(),quantity,form.getSelected())));

newCart是获取我需要的参数
使用gson的原因 就是因为 quantity类型是Interger
toJson需要的是Stirng类型 使用gson序列化 为json 就可以传递了
在这里插入图片描述
可以看到redis终端显示成功
在这里插入图片描述
刷新 成功把数据写入redis

  • 当我把ID更改 存入相同的数据时 发现 数据被覆盖了
  • 如果用List 去更改数据 需要去遍历 如果List中数据越多 那遍历次数越多 会造成性能损耗
  • 应该使用Map来存储 get set查找速度快
  • 改为Map存储
HashOperations<String, String, Object> opsForHash = redisTemplate.opsForHash();
        opsForHash.put(String.format(CART_REDIS_KEY_TEMPLATE,uid),
                String.valueOf(product.getId()),
                gson.toJson(new Cart(product.getId(),quantity,form.getSelected())));

代码运行后报错:

org.springframework.dao.QueryTimeoutException: Redis command timed out; nested exception is io.lettuce.core.RedisCommandTimeoutException: io.lettuce.core.RedisCommandTimeoutException: Command timed out after 1 minute(s)

原因:现在存入的是map类型 之前已经存过List 类型不同 需要删除 重新存

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值