栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Redis

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Redis

目录

1.为什么要用 Redis /为什么要用缓存

2.Redis为什么这么快

3.Redis有哪些数据类型

4.Redis 的持久化机制是什么?各自的优缺点?

5.缓存雪崩

6.缓存穿透

7.缓存击穿

8.Redis 的集群模式

主从复制

哨兵模式


1.为什么要用 Redis /为什么要用缓存

高性能:

假如用户第一次访问数据库中的某些数据。这个过程会比较慢,因为是从硬盘上读取的。将该用户访问的数据存在数缓存中,这样下一次可以直接从缓存中获取了。

高并发:

直接操作缓存能够承受的请求是远远大于直接访问数据库的

2.Redis为什么这么快

1、完全基于内存,绝大部分请求是纯粹的内存操作,非常快速。

2、数据结构简单,对数据操作也简单

3、采用单线程,不存在多进程或者多线程导致的切换而消耗 CPU,不用去考虑各种锁的问题,不可能出现死锁而导致的性能消耗;

4、使用多路 I/O 复用模型,非阻塞 IO;

5、Redis 直接自己构建了底层机制 

3.Redis有哪些数据类型

String:简单的键值对缓存

LIST:类似粉丝列表、文章的评论列表之类的数据

SET: 交集、并集、差集的操作,比如交集,可以把两个人的粉丝列表整一个交集

HASH:结构化的数据,比如一个对象

ZSET:(有序集合)去重但可以排序,如获取排名前几名的用户

geospatial:地理位置

Hyperloglog:基数统计,集合内不重复元素

Bitmaps:位存储

4.Redis 的持久化机制是什么?各自的优缺点?

Redis 提供两种持久化机制 RDB(默认) 和 AOF 机制:

RDB:按照一定的时间将内存的数据以快照的形式保存到硬盘中

AOF:则是将Redis执行的每次写命令记录到单独的日志文件中,当重启Redis会重新将持久化的日志中文件恢复数据。

优缺点是什么?

  • AOF文件比RDB更新频率高,优先使用AOF还原数据。
  • AOF比RDB更安全也更大
  • RDB性能比AOF好
  • 如果两个都配了优先加载AOF
  • RDB做不到实时持久化
  • AOF存储文件大,恢复速度慢,对性能影响大

5.缓存雪崩

缓存雪崩是指缓存同一时间大面积的失效,请求都会落到数据库上,造成数据库短时间内承受大量请求而崩掉

解决方案

  1. 缓存数据的过期时间设置随机,防止同一时间大量数据过期现象发生。
  2. 加锁排队。

6.缓存穿透

缓存穿透是指一个一定不存在的数据,导致所有的请求都落到数据库上,造成数据库短时间内承受大量请求而崩掉。

解决方案

i. 查询返回的数据为空,仍把这个空结果进行缓存,但过期时间会比较短

ii. 布隆过滤器:将所有可能存在的数据哈希到一个足够大的 bitmap 中,一个一定不存在的数据会被这个 bitmap 拦截掉,从而避免了对 DB 的查询。

7.缓存击穿

缓存击穿是指缓存中没有但数据库中有的数据,这时由于并发用户特别多,去数据库去取数据,引起数据库压力瞬间增大,造成过大压力。

解决方案

  1. 设置热点数据永远不过期。
  2. 加互斥锁

8.Redis 的集群模式

主从复制

当从数据库启动时,会向主数据库发送sync命令,主数据库接收到sync后开始在后台保存快照rdb,在保存快照期间收到的命令缓存起来,当快照完成时,主数据库会将快照和缓存的命令一块发送给从数据库。

哨兵模式

建立在主从模式的基础上,监控redis集群的运行状况

哨兵的作用:

1、监控redis主、从数据库是否正常运行

2、主出现故障自动将从数据库转换为主数据库。

哨兵的核心知识

1、哨兵至少需要 3 个实例,来保证自己的健壮性。

2、哨兵 + redis 主从的部署架构,只能保证 redis 集群的高可用性。

3、配置哨兵监控一个系统时,只需要配置其监控主数据库即可,哨兵会自动发现所有复制该主数据库的从数据库。
 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/310282.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号