先说下题外话,前几天看见一篇关于redis缓存的文章一开始没放在心上,因为我也用过redis来做过购物车。我经常思考redis到底能用来做什么,如果是用于存取数据的话,那又和消息中间件有什么区别呢,存取都能办到,就是单纯的靠速度快吗?
redis是用来存取数据的,优点是依托于内存速度快,采用键值对的形式。RabbitMQ是消息中间件,通过生产者和消费者方式理解。看文章经常能看到淘宝通过redis缓存数据解决亿万数据并发什么的,但我用redis通过RedisTemplate存取数据,还是类似于数据库调用存取操作也并没有感受到很特别的地方。
因为我现在也是在用阿里云建网站,和以前在本地编程还是有区别的更看重速度了,所以我用了这个redis做缓存了只想说厉害。很多思路一下子被打开了。接下来且听我详细讲解一波。
redis做缓存做了什么
实现数据缓存,如果缓存中没有数据,则从数据库查询,并且写入redis缓存。如果redis缓存中有数据,则直接从redis中读取。
通过Linux来理解,如果学过操作系统是知道内存管理的,是要会算内存的命中率的,内存管理就是把一些比较重要,计算机经常会访问的数据存入内存中,这样就可以直接通过内存读取。redis缓存也同理,把一些复杂重要的信息,存起来这样就不用每次连接数据池通过数据库来查询出来,例如说读某一用户的购物车,购物车挺复杂,要先通过用户查查购物车,在通过购物车查商品的详细信息。通过缓存就可以查过一次后,下一次直接获取,速度会快很多。
实现
1.依赖
<!-- redis依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<!-- cache依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-cache</artifactId>
</dependency>
<!-- json格式转换-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.46</version>
</dependency>
2.配置
!--RedisProperties!--Redis数据库索引&