您好,欢迎来到刀刀网。
搜索
您的当前位置:首页Redis入门到精通(一):入门Redis看这一篇就够了

Redis入门到精通(一):入门Redis看这一篇就够了

来源:刀刀网

一、Redis特性

1.速度快

正常情况下,Redis 执⾏命令的速度⾮常快,官⽅给出的数字是读写性能可以达到 10 万 / 秒,当然这也取决于机器的性能

  • Redis 的所有数据都是存放在内存中的
  • Redis 是⽤ C 语⾔实现的,⼀般来说 C 语⾔实现的程序 “距离” 操作系统更近,执⾏速度相对会更快
  • Redis 使⽤了单线程,预防了多线程可能产⽣的竞争问题。

2.基于键值对的数据结构服务器

Redis 的全程是 REmote Dictionary Server,它主要提供了 5 种数据结
构:字符串(string)、哈希(hash)、列表(list)、集合(set)、有序集合(ordered set /zet),同时在字符串的基础之上演变出了位图(Bitmaps)和 HyperLogLog 两种神奇的 ”数据结构“

3.持久化(Persistence)

Redis 提供了两种持久化⽅式:RDB 和 AOF,即可以⽤两种策略将内存的数据保存到硬盘中

4.主从复制(Replication)

Redis 提供了复制功能,实现了多个相同数据的 Redis 副本(Replica)

5.⾼可⽤(High Availability)和分布式(Distributed)

Redis 提供了⾼可⽤实现的 Redis 哨兵(Redis Sentinel),能够保证 Redis 结点的故障发现和故障⾃动转移。也提供了 Redis 集群(Redis Cluster),是真正的分布式实现,提供了⾼可⽤、读写和容量的扩展性。

二、Redis使用场景

1.缓存(Cache)

缓存机制⼏乎在所有⼤型⽹站都有使⽤,合理地使⽤缓存不仅可以加速数据的访问速度,⽽且能够有效地降低后端数据源的压⼒。Redis 提供了键值过期时间设置,并且也提供了灵活控制最⼤内存和内存溢出后的淘汰策略。

2.排行榜系统

排⾏榜系统⼏乎存在于所有的⽹站,例如按照热度排名的排⾏榜,按照发布时间的排⾏榜,按照各种复杂维度计算出的排⾏榜,Redis 提供了列表和有序集合的结构,合理地使⽤这些数据结构可以很⽅便地构建各种排⾏榜系统。

3.计数器应用

计数器在⽹站中的作⽤⾄关重要,例如视频⽹站有播放数、电商⽹站有浏览数,为了保证数据的实时性,每⼀次播放和浏览都要做加 1 的操作,如果并发量很⼤对于传统关系型数据的性能是⼀种挑战。Redis 天然⽀持计数功能⽽且计数的性能也⾮常好,可以说是计数器系统的重要选择。

4.社交网络

赞 / 踩、粉丝、共同好友 / 喜好、推送、下拉刷新等是社交⽹站的必备功能,由于社交⽹站访问量通常⽐较⼤,⽽且传统的关系型数据不太合适保存这种类型的数据,Redis 提供的数据结构可以相对⽐较容易地实现这些功能。

5.消息队列系统

消息队列系统可以说是⼀个⼤型⽹站的必备基础组件,因为其具有业务解耦、⾮实时业务削峰等特性。Redis 提供了发布订阅功能和阻塞队列的功能,虽然和专业的消息队⽐还不够⾜够强⼤,但是对于⼀般的消息队列功能基本可以满⾜

三、缓存场景场景问题

1.缓存穿透

结局方案一: 缓存空数据

缓存空数据,查询返回的数据为空,扔把这个空结果进行缓存
reids-- {key:“张三”,value:null}
优点: 简单
缺点: 消耗内存
可能发生不一致的问题–》(刚开始为null,后面有了数据但是缓存没有更新)

解决方案二: 布隆过滤器

位图

所谓位图,就是用每一位来存放某种状态,适用于海量数据,整数,数据无重复的场景。通常是用来判断某个数据存不存在的。

布隆过滤器概念

布隆过滤器是由布隆(Burton Howard Bloom)在1970年提出的 一种紧凑型的、比较巧妙的概率型数据结构,特点是高效地插入和查询,可以用来告诉你 “某样东西一定不存在或者可能存在”,它是用多个哈希函数,将一个数据映射到位图结构中。此种方式不仅可以提升查询效率,也可以节省大量的内存空间

2.缓存击穿

给某一个key设置了过期时间,当key过期时,恰好这个时间点对这个key有大量的并发请求过来,这些请求可能会瞬间将DB压垮
解决方案:
一:添加互斥锁:保证数据的强一致,但是性能较差
二:逻辑过期:保证服务器的高可用,性能比较高,但是不能保证数据的绝对一致

结局方案一:互斥锁

特点: 强一致 性能差

解决方案二:逻辑过期

此时线程1和线程3返回的都是过期数据,这就是保证了服务器的高可用的弊端的,不能保证数据一致性

3.缓存雪崩

在同一时间段内大量的缓存key失效或者redis服务宕机,导致大量的数据请求到到数据库,带来巨大压力

解决方案

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- gamedaodao.com 版权所有 湘ICP备2022005869号-6

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务