1、引入依赖
<!-- Redis数据库-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
2、配置文件application.yml
# 数据库连接
spring:
redis:
host: 127.0.0.1
port: 6379
#password
#database 具体要写入redis的哪个数据库
3、调用Spring封装好的类
@Autowired
private StringRedisTemplate redisTemplate;
4、调用redisTemplate的方法
详见: RedisTemplate - 常用集合之opsFor系列 - 简书 (jianshu.com)
HashOperations<String, String, String> opsForHash = redisTemplate.opsForHash();
5、写入数据
opsForHash.put(
redisKey, //key
String.valueOf(product.getId()), //hashKey
gson.toJson(cart)); // hashValue
写入和读出的时候的序列化和反序列化
序列化:把对象转化为可传输的字节序列过程称为序列化。
反序列化:把字节序列还原为对象的过程称为反序列化。
序列化最终的目的是为了对象可以跨平台存储,和进行网络传输。而我们进行跨平台存储和网络传输的方式就是IO,而我们的IO支持的数据格式就是字节数组。
因为我们单方面的只把对象转成字节数组还不行,因为没有规则的字节数组我们是没办法把对象的本来面目还原回来的,所以我们必须在把对象转成字节数组的时候就制定一种规则(序列化),那么我们从IO流里面读出数据的时候再以这种规则把对象还原回来(反序列化)。
如果我们要把一栋房子从一个地方运输到另一个地方去,序列化就是我把房子拆成一个个的砖块放到车子里,然后留下一张房子原来结构的图纸,反序列化就是我们把房子运输到了目的地以后,根据图纸把一块块砖头还原成房子原来面目的过程
RedisTemplate中5种常见的OpsFor和泛型的应用 - 知乎 (zhihu.com)https://zhuanlan.zhihu.com/p/364864852