Redis 核心知识点(持续更新中)

Redis 核心知识点(持续更新中)

  • Redis单线程IO多路复用原理
  • Redis缓存穿透、缓存雪崩、缓存击穿问题
  • Redis与数据库双写不一致问题
  • 基于Redis实现分布式锁的的应用场景
  • Redis持久化方式
  • Redis内存淘汰机制
  • Redis删除策略
  • Redis主从复制、哨兵、集群
  • Redis集群分片规则与一致性Hash
  • 基于Redis与Redisson的锁续命
    • Redis 锁续命
    • Redisson锁续命

Redis单线程IO多路复用原理

参考文章:Redis 网络IO模型简介

Redis缓存穿透、缓存雪崩、缓存击穿问题

1、参考视屏【P17-P20】:https://www.bilibili.com/video/BV1TV411K7rz?p=17
2、参考文章:Redis缓存穿透、缓存击穿和缓存雪崩(包含解决方案)

Redis与数据库双写不一致问题

1、参考视屏【P21-P24】:https://www.bilibili.com/video/BV1TV411K7rz?p=21
2、参考文章:Redis的缓存与数据库双写不一致问题

基于Redis实现分布式锁的的应用场景

参考视屏【P21-P33】:https://www.bilibili.com/video/BV1TV411K7rz?p=21

Redis持久化方式

参考文章:Redis 两种持久化方式 AOF 和 RDB

Redis内存淘汰机制

volatile监测的是设置过期时间的数据,allkeys监测的是所有数据(详细参考Redis的内存淘汰机制):
1、volatile-lru(least recently used):从已设置过期时间的数据集(server.db[i].expires)中挑选最近最少使用的数据淘汰
2、volatile-ttl:从已设置过期时间的数据集(server.db[i].expires)中挑选将要过期的数据淘汰
3、volatile-random:从已设置过期时间的数据集(server.db[i].expires)中任意选择数据淘汰
4、allkeys-lru(least recently used):当内存不足以容纳新写入数据时,在键空间中,移除最近最少使用的 key(这个是最常用的)
5、allkeys-random:从数据集(server.db[i].dict)中任意选择数据淘汰
6、no-eviction:禁止驱逐数据,也就是说当内存不足以容纳新写入数据时,新写入操作会报错。这个应该没人使用吧!
【4.0 版本后增加以下两种】
7、volatile-lfu(least frequently used):从已设置过期时间的数据集(server.db[i].expires)中挑选最不经常使用的数据淘汰
8、allkeys-lfu(least frequently used):当内存不足以容纳新写入数据时,在键空间中,移除最不经常使用的key

Redis删除策略

参考文章:Redis 删除策略的三种实现:定时删除、定期删除、惰性删除。

Redis主从复制、哨兵、集群

参考文章:Redis集群的三种方式详解(附优缺点及原理区别)

Redis集群分片规则与一致性Hash

1、Redis集群分片规则:利用一致性hash实现hash分槽。
2、Redis集群一致性Hash算法

基于Redis与Redisson的锁续命

Redis 锁续命

@Slf4j
class LockLeaseRenewal {private final RedisTemplate redisTemplate;private final String lockKey;private final Duration renewalInterval;private Timer timer;public LockLeaseRenewal(RedisTemplate redisTemplate, String lockKey, Duration renewalInterval) {this.redisTemplate = redisTemplate;this.lockKey = lockKey;this.renewalInterval = renewalInterval;this.timer = new Timer();}//线程开始执行续命public void startRenewal() {if (redisTemplate.hasKey(lockKey)) {TimerTask task = new TimerTask() {@Overridepublic void run() {redisTemplate.expire(lockKey, renewalInterval); // 续命log.info("锁续命: " + lockKey);}};timer.schedule(task, 0, renewalInterval.toMillis() / 2); // 定期续命}}//停止锁续命public void stopRenewal() {timer.cancel();timer.purge();}
}

Redisson锁续命

参考文章:https://blog.csdn.net/weixin_51146329/article/details/129612350

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/2352.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Qt | 鼠标事件第四节

Qt | 事件第一节Qt | 事件第二节

C语言----链表

大家好,今天我们来看看C语言中的一个重要知识,链表。当然大家可以先从名字中看出来。就是一些表格用链子连接。那么大家是否想到了我们以前学的数组,因为数组也是相连的呀。是吧。但是链表与数组还是有区别的,那么链表是什么有什么…

学习记录694@java 多个文件zip压缩后下载

实际应用中需要下载多个文件,这个时候最好将这些文件打包成zip,然后再下载。其实非常的简单,只要借助hutool包即可,另外需要对基本的输入输出流了解。 代码 以下代码的基本逻辑是,或者要压缩打包的文件的输入流&…

C语言实现队列

前言:在实现栈之后我们再介绍一下他的孪生兄弟,一个是后进先出,一个是先进先出。那么就让我们来详细的了解一下队列把。 目录 一.队列概念 二.队列的实现 1.定义队列 2.初始化队列 3.入队 4.判断队列是否为空 5.出队 6.返回队头…

【免费题库】华为OD机试 - 会议室占用时间(Java JS Python C C++)

须知 哈喽,本题库完全免费,收费是为了防止被爬,大家订阅专栏后可以私信联系退款。感谢支持 文章目录 须知题目描述输入描述输出描述解题思路:题目描述 现有若干个会议,所有会议共享一个会议室,用数组表示各个会议的开始时间和结束时间,格式为: [[会议1开始时间, 会议…

使用kali进行DDos攻击

使用kali进行DDos攻击 1、打开命令提示符,下载DDos-Attack python脚本 git clone https://github.com/Elsa-zlt/DDos-Attack 2、下载好之后,cd到DDos-Attack文件夹下 cd DDos-Attack 3、修改(设置)对ddos-attack.py文件执行的权…

Git 核心概念与实操

这里写目录标题 1 版本回退2 工作区、暂存区、本地仓库、远程仓库 1 版本回退 原文链接:https://www.liaoxuefeng.com/wiki/896043488029600/897013573512192 首先 git log 查看提交记录 在Git中,用 HEAD 表示当前版本 上一个版本就是 HEAD^ &#xff…

让多个域名都可以访问一个wordpress网站

WordPress在安装后会默认绑定当前的域名,如果把多个域名都绑定到wordpress网站后,在通过这些域名访问时,还是会跳转到安装时候的域名。 有没有什么办法可以,让各自域名,访问这个wordpress网站,都显示的是当…

IDM 平替 Gopeed Flutter 开源免费下载工具

IDM 平替 Gopeed Flutter 开源免费下载工具 视频 https://youtu.be/m206G5lVXPM https://www.bilibili.com/video/BV1Lz421k7Zp/ 前言 原文 https://ducafecat.com/blog/flutter-gopeed-downloader-idm-replace https://flutter.ducafecat.com/github/repo/GopeedLab/gopeed…

总结Java中的synchronized

T04BF 👋专栏: 算法|JAVA|MySQL|C语言 🫵 小比特 大梦想 目录 总结*synchronized**初识synchronized*使用synchronizedsynchronized的特性(1)可重入性(2)自适应过程(3)锁消除(4)非公平锁(5)互斥锁 总结synchronized 初识synchronized 通过一个线程不安…

TCP/IP常用协议栈图解

1.引言 最近看了一些计算机网络的课程,总结借鉴了一些TCP/IP常用协议,罗列在以下图中,以便有一个整体观。 2.图解 先上图 3.总结 TCP/IP协议是实际用的计算机网络通信的标准协议栈,自上而下分为应用层,传输层&#xf…

4.23日总结(项目总结)

1.项目: 今日项目通过一个在登录界面的一个静态变量,完成了区分老师和学生,能够分开老师和学生,并且不同身份的人进去会有不同的显示,以及登录链接主界面,还有学生和老师的不同的表,其次就是创…

陆金所控股一季报到底是利好还是利空?

3月底,陆金所控股(LU.N;06623.HK)因其特别分红方案受到市场高度关注。但在4月23日发布的2024年一季度财报中,陆金所控股营收同比下降30.9%,净亏损8.3亿元。 两者对比,外界不由得对公司的经营状况产生疑惑。…

机器人模型匹配控制(MPC)MATLAB实现

模型匹配控制(Model matching control)是指设计一个控制器使闭环系统的传递函数tf(s)与td(s)相一致! mpcDesigner 可以分为: 2时域精确模型匹配控制3频域精确模型匹配控制 机械臂控制中应用模型匹配控制(Model Matc…

Android ANR 日志导出及分析

导出 ANR 日志 cmd 下 adb shell 进入 adb 交互,cd data/anr 进入 anr 日志文件夹,输入 ls 查看 anr 日志文件列表:exit 退出交互 C:\Users\YourNamePath>adb shell YourDeviceName:/ $ cd data/anr YourDeviceName:/data/anr $ ls anr_…

Rabbitmq安装延迟插件rabbitmq_delayed_message_exchange失败

Docker里的Rabbitmq容器安装延迟插件rabbitmq_delayed_message_exchange失败 一启动插件Rabbitmq容器直接停止运行了 rabbitmq-plugins enable rabbitmq_delayed_message_exchange排除了版本问题和端口问题等,发现是虚拟机运行内存不够,增加虚拟机运行内…

WEB前端-笔记(三)

目录 一、事件 1.1类型 1.2对象 1.3页面加载事件 1.4滚动事件 1.5尺寸事件 1.6捕获&冒泡事件 1.7阻止表单提交 1.8全选案例 1.9事件委托 ​编辑 1.10client&offset 1.11换取元素的位置 1.12创建节点 1.13克隆节点 1.14删除节点 1.15setTimeout 1.16s…

DH 算法;加密算法--基于数学困难问题

目录 DH 算法 加密算法--基于数学困难问题--离散对数问题--可逆困难运算

【Hadoop】-Hive部署[12]

目录 思考 VMware虚拟机部署 规划 步骤1:安装MySQL数据库 步骤2:配置Hadoop 步骤3:下载解压Hive 步骤4:提供MySQL Driver包 步骤5:配置Hive 步骤6:初始化元数据库 步骤7:启动Hive&…

Docker搭建代码托管Gitlab

文章目录 一、简介二、Docker部署三、管理员使用四、用户使用五、用户客户端 一、简介 GitLab是一个基于Git的代码托管和协作平台,类似于GitHub。 它提供了一个完整的工具集,包括代码仓库管理、问题跟踪、CI/CD集成、代码审查等功能。 GitLab的开源版本…