redis相关知识记录

redis基本数据类型

Redis⽀持五种主要数据结构:字符串(Strings)、列表(Lists)、哈希表(Hashes)、集合(Sets)和有序集合(Sorted Sets)。这些数据结构为开发者提供了灵活的数据操作⽅式,满⾜了不同场景下的数据存储需求。
字符串(Strings):最基本的数据类型,可以包含任何数据,如数字、字符串、⼆进制数据等。在Redis中,字符串是⼆进制安全的,这意味着它们可以有任何⻓度,并且不会因为包含空字符⽽被截断。
列表(Lists):简单的字符串列表,按照插⼊顺序排序。你可以添加⼀个元素到头部(左边)或者尾部(右边)。
哈希表(Hashes):是键值对的集合,是字符串类型的字段和值的映射表。适合存储对象。
集合(Sets):是字符串类型的⽆序集合。它是通过哈希表实现的,可以做到添加、删除、查找的时间复杂度都是O(1)。
有序集合(Sorted Sets):和Sets相似,但每个字符串元素都会关联⼀个浮点数类型的分数。元素的分数⽤来排序,如果两个成员有相同的分数,那么他们的排名按照字典序计算

 Redis的持久化机制

RDB(Redis DataBase) :存的是数据的2进制文件,恢复快。备份间隔最少也要5分钟,也就是最少丢失5分钟数据。

AOF(Append Of File) :存的是指令文件,恢复慢(需要一条一条执行指令),最多丢失一秒的数据。文件体积较大、性能较差

AOF+RDB : RDB 和 AOF 两种方式也可以同时使用,在这种情况下,如果 redis 重启的话,则会优先采用 AOF 方式来进行数据恢复,这是因为 AOF 方式的数据恢复完整度更高。

下图是生成的对应的文件。

 

缓存雪崩

缓存中的大量key同时失效,导致大量的流量请求到达db中,导致db负载压力过大

解决方式:让key不在同一时间失效,分散开来

缓存穿透

大量的请求同时访问一个根本不存在的key,导致大量流量走到db。

解决方式:设置为null或者使用布隆过滤器判断是否存在该key

缓存击穿

大量的请求同时访问一个过期的key,导致大量流量走到db。

解决方法:加分布式锁

当redis作为db的热点数据时先写DB?还是先写redis?

情景一:先写redis或先写db,不适用场景为当我们项目中有大量的写流量的时候

情景二:先删redis或先删db,不适用的场景为当redis中的数据没有过期时间的时候

情景三:延迟双删,不使用的场景为像秒杀系统这种频繁去修改数据和要求数据强一致的场景

情景四:异步同步,根据mysql的binglog发送消息,在消费消息的时候更新redis,不适用的场景为redis没有过过期时间

分布式锁

为甚要用分布式锁?

普通的锁只能锁单台机器,无法解决在多台机器对于共享资源的并发问题。

如何建立一个分布式锁?

setnx,并设置过期时间,看门狗自动续约。

redis架构

集群模式

新增节点:一致性hash 

数据分布不均匀:虚拟节点

主从模式

全量复制:

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

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

相关文章

winform4

json using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; //导入json第三方库 使用nuget搜索 …

断电的固态硬盘数据能放多久?

近日收到一个网友的提问,在这里粗浅表达一下见解: “网传固态硬盘断电后数据只能放一年,一年之后就会损坏。但是我有一个固态硬盘已经放了五六年了(上次通电还是在2018年左右,我读初中的时候),…

《长相思》第二季回归:好剧质量,永恒的王牌

在万千剧迷的翘首以盼中,《长相思》第二季终于携着前作的辉煌与期待,缓缓拉开了序幕。这部自播出以来便以其精湛的剧情、出色的演员阵容以及独到的宣传策略,赢得了广泛好评与持续关注。如今,第二季的回归,无疑再次证明…

Linux 初识

目录 ​编辑 1.Linux发展史 1.1UNIX发展历史 1.2Linux发展历史 2.Linux的开源属性 2.1 开源软件的定义 2.2 Linux的开源许可证 2.3 开源社区与协作 3.Linux的企业应用现状 3.1 服务器 3.1.1 Web服务器 3.1.2 数据库服务器 3.1.3 文件服务器 3.1.4 电子邮件服务器 …

某客户管理系统Oracle RAC节点异常重启问题详细分析记录

一、故障概述 某日10:58分左右客户管理系统数据库节点1所有实例异常重启,重启后业务恢复正常。经过分析发现,此次实例异常重启的是数据库节点1。 二、故障原因分析 1、数据库日志分析 从节点1的数据库日志来看,10:58:49的时候数据库进程开始…

新火种AI|微软和苹果放弃OpenAI董事会观察员席位

作者:一号 编辑:美美 微软苹果双双不做OpenAI“观察员”,OpenAI能更自由吗? 7月10消息,微软当地时间周一宣布将放弃在OpenAI董事会的观察员席位,他们称,OpenAI在过去八个月中取得了“重大进展…

国内的几款强大的智能—AI语言模型

AI 绘图 链接:点我进入 1、国内百度研发的,文心一言: https://yiyan.baidu.com/welcome 大家如果像我的界面一样有【开始体验】就是可以使用的,否则就是说明在等待中! 优点:会画画,暂无次数限…

回归树模型

目录 一、回归树模型vs决策树模型:二、回归树模型的叶结点:三、如何决定每个非叶结点上的特征类型: 本文只介绍回归树模型与决策树模型的区别。如需了解完整的理论,请看链接:决策树模型笔记 一、回归树模型vs决策树模…

Linux设备驱动的并发控制

一、概述 Linux设备驱动中必须解决的一个问题就是多个进程对共享资源(如全局变量、静态变量、硬件资源等)的并发访问,会导致竟态,如可能会出现以下情况:导致执行单元C独处的数据不符合预期 导致竟态发生有如下几种情况: 对称多处…

int类型变量表示范围的计算原理

文章目录 1. 了解2. 为什么通常情况下int类型整数的取值范围是-2147483648 ~ 21474836473. int类型究竟占几个字节4. 推荐 1. 了解 通常情况下int类型变量占4个字节,1个字节有8位,每位都有0和1两种状态,所以int类型变量一共可以表示 2^32 种状…

【全面介绍Oracle】

🌈个人主页: 程序员不想敲代码啊 🏆CSDN优质创作者,CSDN实力新星,CSDN博客专家 👍点赞⭐评论⭐收藏 🤝希望本文对您有所裨益,如有不足之处,欢迎在评论区提出指正,让我们共同学习、交流进步! 目录 🎥前言🎥基本概念和安装🎥SQL语言🎥PL/SQL编程🎥数据库…

【计算机组成原理 | 第三篇】各个硬件的组成部分

前言: 在前面的文章中,我们介绍了计算机架构的基本组成。可以知道计算机的基本架构由“存储器”,“运算器”,“控制器”,“输入设备”,“输出设备”这五部分组成。 在这片文章中,我们来深入的了…

【斯坦福因果推断课程全集】2_无混淆和倾向分1

目录 Beyond a single randomized controlled trial Aggregating difference-in-means estimators Continuous X and the propensity score 随机试验的一个最简单的扩展是无约束下的干预效果估计。从定性上讲,当我们想估计一种并非随机的治疗效果,但一…

数列分块<2>

本期是数列分块入门<2>。该系列的所有题目来自hzwer在LOJ上提供的数列分块入门系列。 Blog:http://hzwer.com/8053.html sto hzwer orz %%% [转载] 好像上面的链接↑打不开&#xff0c;放一个转载:https://www.cnblogs.…

tensorflow卷积层操作

全连接NN&#xff1a; 每个神经元与前后相邻层的每一个神经元都有全连接关系。输入是特征&#xff0c;输出为预测结果。 参数个数(前层*后层后层&#xff09; 实际应用时&#xff0c;会先对原始图像进行特征提取&#xff0c;再把提取到的特征送给全连接网络 会先进行若干层提…

C嘎嘎类与对象上篇

类的定义 1. class为定义类的关键字&#xff0c;Stack为类的名字&#xff0c;{}中为类的主体&#xff0c;注意类定义结束时后⾯分号不能省略 。类体中内容称为类的成员&#xff1a;类中的变量称为类的属性或成员变量; 类中的函数称为类的⽅法或者成员函数。 2. C中struct也可以…

【C语言】C语言-学生籍贯信息记录系统(源码+论文)【独一无二】

&#x1f449;博__主&#x1f448;&#xff1a;米码收割机 &#x1f449;技__能&#x1f448;&#xff1a;C/Python语言 &#x1f449;公众号&#x1f448;&#xff1a;测试开发自动化【获取源码商业合作】 &#x1f449;荣__誉&#x1f448;&#xff1a;阿里云博客专家博主、5…

泛微e-cology getFileViewUrl接口存在SSRF漏洞复现 [附POC]

文章目录 泛微e-cology getFileViewUrl接口存在SSRF漏洞复现 [附POC]0x01 前言0x02 漏洞描述0x03 影响版本0x04 漏洞环境0x05 漏洞复现1.访问漏洞环境2.构造POC3.复现0x06 修复建议泛微e-cology getFileViewUrl接口存在SSRF漏洞复现 [附POC] 0x01 前言 免责声明:请勿利用文章…

【密码学】哈希函数与加密算法的关系

一、哈希函数的定义 哈希函数&#xff08;Hash Function&#xff09;&#xff0c;也被称为散列函数或杂凑函数&#xff0c; 是一种将任意长度的输入数据&#xff08;通常称为“预映射”或“消息”&#xff09;转换为固定长度输出&#xff08;通常称为“哈希值”、“散列值”、“…

PHP红包拓客微信小程序系统源码

&#x1f389;红包狂欢&#xff0c;客源滚滚来&#xff01;红包拓客微信小程序&#xff0c;营销新利器&#x1f680; &#x1f9e7;一、创意红包&#xff0c;吸引眼球 你还在为如何吸引顾客而烦恼吗&#xff1f;红包拓客微信小程序来帮你&#xff01;&#x1f381; 它以创意红…