我自己学习用,我自己的理解,勿喷
1、什么是Redis?
Redis是一款基于内存的键-值型NoSQL数据库。NoSQL - 非关系型数据库
特点:可以进行快速的数据读写,官方给的数据 11W/s 读 8W/s 写。
redis读写很快是相对于mysql
2.Redis在实际开发中的运用场景
1)作为分布式系统的缓存服务器
客户端访问服务器的时候,会先检查redis是否有数据,redis有数据直接反馈给客户端,不再访问mysql.redisr如果没有再请求数据库,数据库同时会进行缓存重建到redis,下次就可以直接读redis.
2)应对数据高速读写的业务
高速读写,在互联网的项目中都是一个读多写少的.就比如说双十一淘宝,大量的客户访问,如果直接去读取数据库的话,对mysql无疑就是一个很大的压力,redis可以减轻mysql压力.缓存到redis服务器,后期再写入到数据库.但是这样会有一个问题,我们不只需要更新mysql,也要更新redis.就是我们往往买东西的时候,会看到库存还有1,但是就是不能下单,这并不是有货不给卖,实际库存就是空的.只是redis还没把数据同步到mysql.数据没有绝对的一致性
3)作为分布式锁使用(Zookeeper、Redis)
额…分布式锁的使用的话,早期做过一个项目,当时为了确保线程安全的话,用到了synchronized关键字确保线程安全,后期就是项目需要升级迭代,服务部署到不同的服务器中,集群.那么就可以用到redis的分布式锁.统一锁在redis中.
4)数据共享
额…数据共享就是之前做过一个项目,当时是用到了oauth2的jwt直接存储用户信息生成到令牌中,直接放入客户端的,每次带着令牌访问资源服务.那么还有另外一种方式就是把生成的令牌存储在redis中,每次访问资源服务器的时候就直接从redis中获取,可以实现资源的共享.
5)ID自增序列