Redis的应用场景

1. 分布式集群系统中Session共享

redis和memcache的区别???

memcache数据存储有上限,数据类型单一

2.利用key的时效性实现​​手机验证码​​,​​订单有效时间(待支付)​​,​​存储认证后的token信息​


3.利用Zset完成排行榜等功能

4. 实现分布式缓存

​缓存解决了什么问题???​

  • 核心是减轻了数据库的访问压力
  • 提高吞吐量和运行效率

​既然能提高效率,项目中所有数据加入缓存岂不是更好???​

  • 使用缓存适用于数据库中数据极少发生修改的情况
  • 更多用于查询较多的情况(比如商品信息)

本地缓存和分布式缓存的区别????

  • 比如mybatis的一级和二级缓存就是本地缓存,把数据缓存在应用服务器的内存中


分布式和集群???


​利用mybatis本地缓存结合Redis实现分布式缓存​

5. 解决分布式集群系统中分布式锁问题(​​LUA脚本​​)

  1. 在一个jvm(进程)中,可以使用Synchronized等
  2. 但是如果是集群,则相当于有多个jvm,此时加锁只能保证一个jvm的同步性,不能保证不同的jvm间对共享资源的同步