redis
redis
1024个秘密
好好工作,好好学习,好好生活。
展开
-
分布式缓存redis(持久化) - 大总结3
redis的持久化 一、为什么redis需要持久化? redis持久化的意义,主要在于故障恢复。 如果redis宕机了,被重启,如果不进行持久化,那么所有的数据将会丢失,造成大型故障。 持久化,把数据存到磁盘上,然后从磁盘里备份一份到阿里云等云存储服务上,如遇机器宕机,可以保证不会丢掉所有数据。 二、redis的持久化有哪几种方式? RDB:对redis里面的数据进行周期性的持久化。每隔一段时间,...原创 2020-05-07 21:29:04 · 174 阅读 · 0 评论 -
redis的并发竞争
redis的并发竞争 redis的并发竞争问题是什么? 某个时刻,多个系统实例都去更新key。 如何解决redis的并发竞争问题? 增加zookeeper分布式锁和时间戳,来保证后者不会被覆盖。原创 2020-05-20 21:15:16 · 138 阅读 · 0 评论 -
redis-保证和数据库的一致性
如何保证redis和数据库的一致性? cache Aside pattern 读取的时候,先从缓存读,读不到就读数据库,然后取出数据之后写入到缓存; 更新的时候,先删除缓存,再更新数据库。 为啥不是更新缓存? 如果缓存的计算逻辑比较复杂(比如要关联表计算什么的),而且写的频率大于读的频率,那么更新缓存就不是很划算啦。 为什么要先删除缓存,在更新数据库? 如果先更新数据库,再删除缓存,那么如果删除失败了,就会导致缓存里是旧数据,数据库里是新数据。 如果删了缓存,更新数据库失败了,那么也无非是多更新一次缓存。原创 2020-05-16 18:48:38 · 667 阅读 · 0 评论 -
redis的雪崩和穿透,情况描述及解决方案
redis的雪崩和穿透 1、redis的雪崩发生的现象? 原本,缓存可以消化很多请求,使得这些请求不用到达数据库,降低db负载。 但是,如果缓存宕机了,所有请求将全部到达数据,数据库扛不住的话,会直接崩溃。 2、如何处理缓存雪崩? 首先,redis必须是高可用的,主从模式,哨兵,redis cluster等,避免全盘崩溃。 其次,不单单只有redis这一级缓存,可以多做一些,比如在系统内部增加ehcache。 (1、业务发送请求;2、先查本地的ehcache缓存;3、如果没有,查redis;4、如果还没有原创 2020-05-16 17:20:17 · 255 阅读 · 0 评论 -
redis cluster 的集群模式
redis的集群模式 一、单机redis的存储瓶颈问题。 master和slave存储的数据量是一模一样的,如果master只能存储32g,那么这个模式下,一共也只能存储32g数据。 二、如何突破单机瓶颈问题,让redis支持海量数据。 建立多个master,每个master上存放部分数据,那么总容量就等于master容量之和。 三、redis的集群架构 - redis cluster cluster - 支撑n个master node,每个master node都可以挂载多个slave node。 读原创 2020-05-16 14:51:37 · 267 阅读 · 0 评论 -
分布式缓存redis(主从复制+哨兵) - 大总结2
redis 灵魂拷问1:如何保证redis高并发/支撑10万+的并发,应该怎么做? 单机redis,能够承载的QPS大概在上万到几万不等。如果是十几万,就不行啦。 方案:用主从模式实现读写分离。 一般来说,对于缓存,都是读的高并发,写是比较少的。 架构是主从架构,一主多从,主负责写,并把数据同步复制到其他的slave节点,slave节点只负责读。 如果读的请求量增加,继续增加redis slave...原创 2020-05-05 02:05:13 · 468 阅读 · 0 评论 -
分布式缓存redis(基础+线程模型+过期策略) - 大总结1
分布式缓存 - 大总结 灵魂拷问一:在项目中如何使用缓存的? 第一种场景,需要缓存要查询用户的历史订单,请求接口剧多,如果实时去请求的话,接口超时。 第二种场景,分布式缓存锁,用户参加了a活动就不能参加b活动,防止并发,所以要用到分布式缓存锁。 灵魂拷问二:为啥要使用缓存呢? (1) 高性能 多个用户请求同一份数据,每一份查询都耗时很久。 可以把这份数据放在缓存里,这样第一次查询从数据库查,其余...原创 2020-05-04 23:17:37 · 374 阅读 · 0 评论