Redis学习笔记(Redis深度历险 ——钱品文)

本文深入探讨了Redis作为缓存中间件的使用,对比了Redis与Memcached的优势,强调了Redis的持久化和丰富的数据结构。文章详细讲解了Redis的常见问题,如缓存一致性、数据结构的应用、高可用性方案以及如何解决缓存穿透、击穿、雪崩问题。此外,还介绍了Redis的限流、分布式锁和延迟任务的实现策略。
摘要由CSDN通过智能技术生成

为什么要用Redis?

因为传统的关系型数据库比如MySQL已经不能适用于所有的场景了。在传统的关系型数据库里,数据存放在磁盘上,IO开销很大。在高并发的情景下,比如秒杀系统里的库存扣减、对访问流量高峰的应对等,很容易把数据库打崩,所以需要引入缓存中间件。目前比较主流的缓存中间件有Redis和Memcached,综合考虑他们的优缺点,最后选择了Redis。
(1)提高对热点数据的访问性能
(2)在高并发场景下,分担数据库压力。

Redis相比Memcached有什么优势呢?

Memcached不支持持久化,数据只能放在内存里。
Redis可以持久化,支持更多数据类型。
Redis原生支持集群。

Redis常见问题

  1. 缓存和数据库双写一致性问题
  2. 缓存雪崩、缓存穿透、缓存击穿问题
  3. 缓存的并发竞争问题

Redis有哪些数据结构?

最基本的数据结构有5种,包括字符串string、哈希hash、链表list、集合set、有序集合sorted set。
此外还有位图bitset、hyperLogLog、Geo、Pub/Sub、BloomFilter等。

这些数据结构各可以用来做什么?Redis可以用来做什么?

Redis是一个开源的内存中的数据结构存储系统,可以用来做数据库、缓存、消息中间件。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Fu9z9t3j-1578570129201)(quiver-image-url/4C6EFC9EEDA7EADB30C1F0C0BDF81C5D.jpg =646x372)]
(1)string:缓存功能,计数器,存储用户session
(2)Hash:存储结构化的对象,但是不能表达嵌套对象的对象
(3)List:下拉分页,消息队列
(4)set:去重,交集看共同好友,并集差集
(5)zset:排行榜,热搜榜,带权重的队列
(6)BitMap:位图,以bit位为基本的单位存储信息,记录boolean,省空间
(7)Hyperloglog:不精确的去重技术功能,如统计UV(网站访客量)
(8)Geospatial:保存地理位置,做距离计算。寻找附近的人

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值