IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> 复盘Redis知识点 -> 正文阅读

[大数据]复盘Redis知识点

redis实现分布式锁要点速通_运气不好努力来凑-CSDN博客redis实现分布式锁的原理以及注意事项。看了这篇文章的都说简单https://blog.csdn.net/wai_58934/article/details/122609458?spm=1001.2014.3001.5501分布式下缓存Redis_运气不好努力来凑-CSDN博客redis作为缓存——基础知识扫盲https://blog.csdn.net/wai_58934/article/details/122607462?spm=1001.2014.3001.5501

?

目录

Redis和mysql数据不一致问题

Redis数据结构以及使用场景

Redis主从复制核心原理

Redis为什么这么快

Redis过期键的删除策略

什么是缓存预热

哨兵模式

Redis事务是如何实现的

?为什么在6.x引入多线程


Redis和mysql数据不一致问题

  1. 先更mysql,再更新redis。如果redis更新失败则之后可能读到老数据。
  2. 先删除redis,再更新mysql,再次查询时写入redis。高并发下性能较低。并且如果你删除redis之后,一个更新线程还没来得及更新就被一个查询线程查询了。写入redis的数据仍是老数据。
  3. 先删除redis,然后更新mysql,隔几百毫秒再删除redis缓存的数据。(延时双删,常用)

Redis数据结构以及使用场景

常用:string、list、set、hash、zset

  • string:分布式锁的实现、计数器。
  • list:可以用作栈和队列。可缓存消息流数据。
  • set:可以找到交集、并集、差集。可实现共同好友、朋友圈点赞等功能。
  • hash:适合存储对象。
  • zset:有序、可以实现排行榜功能。

不常用:

  • bitmap:布隆过滤器
  • geohash:坐标
  • hyperloglog:统计不重复数据,用于大数据基数统计
  • streams:内存版kafka

Redis主从复制核心原理

  1. 集群启动,主从先建立连接。
  2. 主库数据同步给从库。依赖于内存快照RDB。
  3. 但是同步过程中主库仍会接收写操作。但是刚才的快照已经发过去了。所以采取补救措施,主库内存中会有replication buffer去专门记录同步过程中未同步的写操作。
  4. 再发送完快照之后,紧接着发送replication buffer,完成主从同步。
  5. 后续就将写操作给主库,之后增量同步给从库。

Redis为什么这么快

  • IO多路复用,同时监听多个socket
  • 单线程(网络事件处理器是单线程的),无需上下文切换(并不是说redis中没有其他线程。如从节点同步还需要额外的线程)
  • 基于纯内存操作。

Redis过期键的删除策略

  • 惰性过期:使用到才去删除。对cpu友好,对内存不友好(可能导致大量过期键堆积)
  • 定期过期:间隔一段时间扫描过期字典里的部分key,去删除。

redis同时使用两种策略。

什么是缓存预热

提前将相关的缓存数据加载到缓存系统中,避免刚上线使用户有太多请求打到数据库上去

哨兵模式

  • 通过发送命令,让Redis服务器返回监控其运行状态,包括主服务器和从服务器。

  • 当哨兵监测到master宕机,会自动将slave切换成master,然后通过发布订阅模式通知其他的从服务器,修改配置文件,让它们切换主机。

单个哨兵也会出现问题,所以我们设置哨兵集群。哨兵不仅监控主从节点,哨兵之间还互相监控。

如果master节点挂了,单个哨兵会先认为主观下线,后面的哨兵也检测到主服务器不可用,并且数量达到一定值时切换选举的master,并且使用发布订阅模式切换主机,这叫做客观下线

Redis事务是如何实现的

  1. 开始事务
  2. 命令入队
  3. 执行事务

注意:redis只能帮你检测语法的错误而不能检测逻辑的错误,如果逻辑有错误,除了有错误的地方,其他地方照常执行。

实例:

?

?为什么在6.x引入多线程

?Redis 引入多线程操作也是出于性能上的考虑,对于一些大键值对的删除操作,通过多线程非阻塞地释放内存空间也能减少对 Redis 主线程阻塞的时间,提高执行的效率

?

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-02-03 01:16:27  更:2022-02-03 01:17:47 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 13:46:40-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码