大数据 - (七-5)- Redis - 经典问题解析

2020-11-19  本文已影响0人  啦啦啦喽啰

缓存问题

一、缓存穿透

解决方案

  • 布隆过滤器(Bloom Filter)是1970年由布隆提出的。它实际上是一个很长的二进制向量和一系列随机hash映射函数。
  • 布隆过滤器可以用于检索一个元素是否在一个集合中。它的优点是空间效率和查询时间都远远超过一般的算法。
  • 布隆过滤器的原理是:当一个元素被加入集合时,通过Khash函数将这个元素映射成一个数组中的K个点,把它们置为1。检索时,我们只要看看这些点是不是都是1就(大约)知道集合中有没有它了:如果这些点有任何一个0,则被检元素一定不在;如果都是1,则被检元素很可能在。

二、缓存雪崩

解决方案

三、缓存击穿

解决方案

四、数据不一致

保证数据的最终一致性(延时双删)

五、数据并发竞争

第一种方案:分布式锁+时间戳

第二种方案:利用消息队列

Hot Key
如何发现 hot key
如何处理热Key
Big Key

Big Key指的是存储的值(Value)非常大

常见场景
Big Key的影响
如何发现Big Key
Big Key的处理

分布式锁

watch

利用Watch实现Redis乐观锁

乐观锁基于CAS(Compare And Swap)思想(比较并替换),是不具有互斥性,不会产生锁等待而消耗资源,但是需要反复的重试,但也是因为重试的机制,能比较快的响应。因此我们可以利用redis来实现乐观锁

上一篇 下一篇

猜你喜欢

热点阅读