Redis〔篇〕

news2024/11/19 0:38:35

redis怎么做到双写一致性呢?

这个是要分情况的 业务要是对一致性要求不是很高的话可以使用延时双删,要强一致的话需要双写一致性。


Redis数据持久化?

redis是有两种数据持久化方式的,一种RDB一种AOF

  1. rdb是redis数据快照,它是把内存中所有记录保存在磁盘中的。当redis实例出现故障后从磁盘读取快照文件进行数据恢复;
  2. aof采用的是一种刷盘策略,可以设置everysec每秒进行一次刷盘,记录操作命令,当redis出现故障后,会根据记录的命令重新执行达到数据恢复的效果。


数据过期策略?

有两种 惰性删除和定期删除

  • 惰性删除:设置key的过期时间后,不用去管它,等到下次需要这key的时候然后检查是否过期,过期然后进行删除。(如果下次一直不使用key,那么就会一直存在内存中,不会被释放)
  • 定期删除:每隔一段时间会对一些key进行检查,删除里边过期的key。
  • 一般是惰性删除和定期删除配合使用。

数据淘汰策略

当redis中内存不够用时,再向redis中添加新的key,那么redis就会按照某一种规则将内存中的数据删除掉,就称为内存淘汰策略。

redis支持8种不同策略来选择要删除的key;

  1. noeviction: 不淘汰任何key,但是内存满时不允许写入新数据(默认就是这种策略);
  2. volatile-ttl:对设置了过期时间的key,比较key剩余的ttl值,值越小越先被淘汰;
  3. allkeys-random: 对全体key,随机进行淘汰;
  4. volatile-random:对设置了过期时间的key,随机进行淘汰;
  5. allkeys-lru:对全体key基于LRU算法进行淘汰(最少使用时间);
  6. volatile-lru:对设置了过期时间的key基于LRU算法进行淘汰;
  7. allkeys-lfu:对全体key基于LFU算法进行淘汰(最少使用频率);
  8. volatile-lfu:对设置了过期时间的key基于LFU算法进行淘汰;

Redission分布式锁

  • redis实现分布式锁是利用了redis的setnx命令。
  • 首先还是进行加锁操作,加锁成功后会另开一个线程去监听持有锁的线程(看门狗机制)对锁过期时间进行续期。
  • 加锁和设置过期时间都是基于lua脚本完成的
  • Redisson分布式锁是可重入的;


主从数据同步的流程是什么?

1 主从全量同步:从节点发送请求给主节点master,master节点判断是不是第一次请求,是的话返回master的数据信息,master执行bgsave生成RDB文件,从节点然后清空本地数据,加载RDB文件,在主节点生成RDB文件期间有别的命令会记录在repl_backlog日志文件中,再把日志文件中的命令发送给从节点,从节点进行执行。

2 主从增量同步: 从节点向主节点发送请求,主节点判断是不是第一次同步,不是第一次同步的话,主节点会在repl_log中获取offset之后的数据 发送给从节点,从节点进行增量同步。

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

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

相关文章

大型DOM结构是如何影响交互性的

没有办法绕过这一点:当你构建一个网页时,该页面一定会有一个文档对象模型(DOM)。DOM代表了你页面HTML的结构,并为JavaScript和CSS提供了访问页面结构和内容的途径。 然而,问题在于DOM的大小会影响浏览器快速…

新手科普!UX设计师是做什么的?

什么是UX设计师? UX设计师(User Experience Designer),又称用户体验设计师,顾名思义UX设计师是负责设计产品/服务的用户体验的专业人员。UX设计师涵盖了用户调研、交互设计、原型设计、动效设计、UI设计等工作内容。 本文主要介绍数字化软件…

Python机器学习实战-特征重要性分析方法(5):递归特征消除(附源码和实现效果)

实现功能 递归地删除特征并查看它如何影响模型性能。删除时会导致更大下降的特征更重要。 实现代码 from sklearn.ensemble import RandomForestClassifier from sklearn.feature_selection import RFE import pandas as pd from sklearn.datasets import load_breast_cance…

【C语言】【结构体的内存对齐】计算结构体内存大小,有图解

计算结构体内存大小&#xff0c;需要用到结构体内存对齐的知识 来段代码看看什么是结构体对齐&#xff1a; #include<stdio.h> struct S1 {char a;char b;int num; }; struct S2 {char a;int num;char b; }; int main() {printf("%zd\n", sizeof(struct S1))…

真·Redis缓存优化—97%的优化率你见过嘛? | 京东云技术团队

本文通过一封618前的R2M(公司内部缓存组件&#xff0c;可以认为等同于Redis)告警&#xff0c;由浅入深的分析了该告警的直接原因与根本原因&#xff0c;并根据原因提出相应的解决方法&#xff0c;希望能够给大家在排查类似问题时提供相应的思路。 一、问题排查 1.1 邮件告警 …

如何看待Java上层技术与JVM

如何看待Java上层技术与JVM 你是否也遇到过这些问题 运行着的线上系统突然卡死&#xff0c;系统无法访问&#xff0c;甚至直接OOM&#xff01;想解决线上JVM GC问题&#xff0c;但却无从下手。新项目上线&#xff0c;对各种JVM参数设置一脸茫然&#xff0c;直接默认吧&#x…

景联文数据标注:ChatGPT成功的秘密——人类反馈强化学习(RLHF)

ChatGPT的成功很大程度上归功于其采用的新的训练范式——人类反馈强化学习&#xff08;RLHF&#xff09;。RLHF是一种强化学习方法&#xff0c;它将强化学习与人类反馈相结合&#xff0c;通过利用人类提供的反馈来指导智能系统的行为&#xff0c;使其能够更加高效、快速地学习任…

分布式锁工具Redisson(Lua脚本)

如何实现分布式锁&#xff1f; Redis 可以通过 setnx&#xff08;set if not exists&#xff09;命令实现分布式锁 通过执行结果是否为 1 可以判断是否成功获取到锁 setnx mylock true 加锁del mylock 释放锁 分布式锁存在的问题&#xff1a; 死锁问题&#xff0c;未设置过…

运行在浏览器中的Domino Designer开发客户机

大家好&#xff0c;才是真的好。 首先讨论一个非常有意思的事情&#xff0c;就是有人问&#xff0c;如果我用很老的Lotus软件&#xff0c;它是免费的吗&#xff1f; 这估计代表了很多盆友的心声。但不太友好的是&#xff0c;即使你用很老的Lotus软件&#xff08;例如Notes R4…

【2023集创赛】芯原杯一等奖作品:基于芯原DSP核的智能语音SoC设计

本文为2023年第七届全国大学生集成电路创新创业大赛&#xff08;“集创赛”&#xff09;芯原杯一等奖作品分享&#xff0c;参加极术社区的【有奖征集】分享你的2023集创赛作品&#xff0c;秀出作品风采&#xff0c;分享2023集创赛作品扩大影响力&#xff0c;更有丰富电子礼品等…

软件测试面试经验分享,真实面试题

前言 本人普通本科计算机专业&#xff0c;做测试也有3年的时间了&#xff0c;讲下我的经历&#xff0c;我刚毕业就进了一个小自研薪资还不错&#xff0c;有10.5k&#xff08;个人觉得我很优秀&#xff09;&#xff0c;在里面呆了两年&#xff0c;积累了一些的经验和技能&#…

红米手机 导出 通讯录 到电脑保存

不要搞什么 云服务 不要安装什么 手机助手 不要安装 什么app 用 usb 线 连接 手机 和 电脑 手机上会跳出 提示 选择 仅传输文件 会出现下面的 一个 盘 进入 MIUI目录 然后进入 此电脑\Redmi Note 5\内部存储设备\MIUI\backup\AllBackup\20230927_043337 如何没有上面的文件&a…

Linux查找运行的Python脚本路径

目录 查看Python脚本进程id 根据进程ID找脚本路径 查看Python脚本进程id ps -ef|grep python 该命令会输出在运行中的Python脚本&#xff0c;找到你需要的Python脚本进程ID即可&#xff0c;进程ID如图&#xff1a; 根据进程ID找脚本路径 # 将PID替换为上一步中你拷贝的i…

项目03-基于Docker_Nginx+LVS+Flask+MySQL的高可用Web集群

文章目录 一.项目介绍1.拓扑图2.详细介绍 二.前期准备1.项目环境2.IP划分 三. 项目步骤1.ansible部署软件环境1.1 安装ansible环境1.2 建立免密通道1.3 ansible批量部署软件 2.部署nginx和lvs主从服务器2.1 docker配置nginx静态双web服务器从nfs主服务器上那页面数据2.2 使用ke…

DiskGenius -/ 20 年老牌匠心国产数据恢复、分区管理、备份还原软件!

数据恢复 / 分区管理 / 备份还原 20 年匠心开发&#xff0c;多功能磁盘工具软件&#xff01; 数据恢复 DiskGenius 是一款专业级的 数据恢复软件 &#xff0c;算法精湛、功能强大&#xff0c;用户群体广泛&#xff1b;支持各种情况下的文件恢复、分区恢复&#xff0c;恢复效果…

JavaSE16——抽象类(Abstract Class)

抽象类&#xff08;Abstract Class&#xff09; 1 抽象类概述 抽象类是面向对象编程中的一个重要概念&#xff0c;它是一种特殊的类。抽象类不能被实例化&#xff0c;只能用作其他类的基类&#xff08;父类&#xff09;&#xff0c;通过继承抽象类来实现其子类的定义。 在继…

某瑞集团安全技术研发岗位面试

本文由掌控安全学院 - sbhglqy 投稿 一、自我介绍 阿吧阿吧&#xff0c;不多说 二、就ctf比赛经历方面提些问题 面试官&#xff1a;ctf打了多久了 我&#xff1a;两三年了。 面试官&#xff1a;得过什么奖项没有 我&#xff1a;本科的时候得过一个校一等奖。 面试官&#x…

跳槽去搞国产大模型,收入能涨多少?

原创&#xff1a;谭婧 夏尽秋来&#xff0c;2023年国产大模型看似喧闹已止&#xff0c;进入稳定竞争期。 作为一种新的IT解决方案&#xff0c;国产大模型一出生便伴随着激烈竞争。 外有GPT4&#xff0c;内有多家公司角逐“中国版ChatGPT”。 据我所知&#xff0c;就国内某家头部…

Mysql 子查询,最值查询

1.leetcode-184&#xff1a;查找部门内最高的薪水 首先是一个子查询&#xff0c;找出一个部门里最高的那个工资 随后查找最终需要的值&#xff0c;并且部门编号以及薪水应该包含在这个子查询中 最终答案&#xff1a; # Write your MySQL query statement below SELECT Depar…

全渠道客服体验:Rocket.Chat 的无缝互动 | 开源日报 No.41

RocketChat/Rocket.Chat Stars: 36.9k License: NOASSERTION Rocket.Chat 是一个完全可定制的开源通信平台&#xff0c;适用于具有高标准数据保护要求的组织。我们是团队沟通场景下的最终免费开源解决方案&#xff0c;可以实现同事之间、公司之间或客户之间的实时对话。提高生…