redis相关知识记录

news2024/9/23 5:31:27

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.coloradmin.cn/o/1915696.html

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

相关文章

springboot 旅游导航系统-计算机毕业设计源码69476

目 录 第 1 章 引 言 1.1 选题背景 1.2 研究现状 1.3 论文结构安排 第 2 章 系统的需求分析 2.1 系统可行性分析 2.1.1 技术方面可行性分析 2.1.2 经济方面可行性分析 2.1.3 法律方面可行性分析 2.1.4 操作方面可行性分析 2.2 系统功能需求分析 2.3 系统性需求分析…

Flutter——最详细(Table)网格、表格组件使用教程

背景 用于展示表格组件,可指定线宽、列宽、文字方向等属性 属性作用columnWidths列的宽度defaultVerticalAlignment网格内部组件摆放方向border网格样式修改children表格里面的组件textDirection文本排序方向 import package:flutter/material.dart;class CustomTa…

c#调用c++ dll库报错System.BadImageFormatException

System.BadImageFormatException:“试图加载格式不正确的程序。 (异常来自 HRESULT:0x8007000B)” 1. dll需要选择release模式进行编译 2.选择相同位数,比如x64平台,c#也需要x64 3.不要设置c#不支持的函数供调用 比如: c可以输出到控制台…

Lumos学习王佩丰Excel第四讲:排序与选择

一、排序 1、简单排序:不要选中一列排序,不然只是局部排序,其他数据都会发生错乱。 2、多条件排序 3、2003版本中超过3个排序条件时如何处理:从最后一个条件到第一个条件倒着按照要求依次排序。 4、按颜色排序 5、自定义排序次序…

洛谷P10716【MX-X1-T4】「KDOI-05」简单的字符串问题(扩展kmp+set+二分+扫描线树状数组)

题目 思路来源 小羊肖恩 题解 羊神这个做法tql,当时只是机械地写,过了之后再想想,才觉得确实是nb 先扩展kmp(Z函数)预处理出来数组,记z[i]为i往后可以和前缀匹配的最大长度 对于每个询问(p,cnt)&#x…

Dify工作流中的变量聚合节点

一.定义 变量聚合节点(原变量赋值节点)负责整合不同分支的输出结果,确保无论哪个分支被执行,其结果都能通过一个统一的变量来引用和访问。这在多分支的情况下非常有用,可将不同分支下相同作用的变量映射为一个输出变量…

esp32硬件电路设计

ESP-IDF 入门指南 | 乐鑫科技 (espressif.com) ESP32-DevKitC V4 入门指南 - ESP32 - — ESP-IDF 编程指南 v5.1 文档 (espressif.com)

matlab仿真 模拟调制(上)

(内容源自详解MATLAB/SIMULINK 通信系统建模与仿真 刘学勇编著第五章内容,有兴趣的读者请阅读原书) 1.幅度调制 clear all ts0.0025; %信号抽样时间间隔 t0:ts:10-ts;%时间矢量 fs1/ts;%抽样频率 dffs/length(t); %fft的频率分…

Linux进程间通信:匿名管道 命名管道

Linux进程间通信:匿名管道 &命名管道 一、进程间通信目的二、什么是管道三、匿名管道创建3.1 系统调用原型3.2 匿名管道创建 四、内核创建匿名管道过程五、匿名管道性质5.1 匿名管道的4种特殊情况5.2 匿名管道的5种特性5.3 测试源代码 六、命名管道6.1 创建命名…

高中数学:立体几何-基本立体图形分类

一、常见空间几何体 二、多面体 1、棱柱 2、棱锥 3、棱台 4、相关关系 三、旋转体 1、圆柱 2、圆锥 3、圆台 4、球

LLM 模型压缩之一 | APT

0. 资源链接 论文: APT: Adaptive Pruning and Tuning Pretrained Language Models for Efficient Training and Inference. 项目: https://github.com/ROIM1998/APT 1.背景动机 现有的大模型压缩加速存在以下问题: PEFT: 可以低成本为下游任务微调,…

游戏AI的创造思路-技术基础-蒙特卡洛树搜索(1)

本篇介绍蒙特卡洛树搜索算法,AlphaGo用于围棋计算的应用就是基于蒙特卡洛树搜索研发的~~~ 目录 1. 定义 2. 发展历史 3. 公式和函数 3.1.算法的公式和函数 3.2. Python实现公式和函数 4. 运行原理 4.1. 运行原理 4.2. 各步骤用Python代码 5. 优缺点和缺陷的…

免费听书TV版v1.0.1

使用非常稳定流畅,UI界面设计美观简洁,纯净无广。资源虽然不是特别多,但是日常听书还是可以满足需求。 完全免费,操作简单方便,安装即用,没有任何限制。 可以适配遥控器操作,OK键开启或关闭语…

适配各种IT场景的零信任沙箱

在当今数字化时代,网络安全威胁层出不穷,传统的安全防御策略已难以应对日益复杂的网络攻击。零信任与沙箱技术的结合,作为一种新兴的安全防护策略,正逐渐受到企业和组织的青睐。本文将深入探讨零信任结合沙箱技术所能解决的问题及…

【智能算法改进】一种混合多策略改进的麻雀搜索算法

目录 1.算法原理2.改进点3.结果展示4.参考文献5.代码获取 1.算法原理 【智能算法】麻雀搜索算法(SSA)原理及实现 2.改进点 精英反向学习策略 将精英反向学习策略应用到初始化阶段, 通过反向解的生成与精英个体的选择, 不仅使算法搜索范围得到扩大, 提…

C++第四弹 -- 类与对象(中上) (构造函数 析构函数 拷贝构造函数)

目录 前言构造函数1. 概念2. 特征 析构函数1. 概念2. 特征 拷贝构造函数1. 概念2. 特征 总结 前言 让我们一起揭开 C 对象生命周期管理的神秘面纱,掌握构造函数、析构函数和拷贝构造函数的精髓! 博客主页: 酷酷学!!! 期待更多好文, 点击关注~ 构造函…

英伟达今年在华销售额预计将达120亿美元、MiniMax创始人:三年后才会出现“杀手级”AI应用

ChatGPT狂飙160天,世界已经不是之前的样子。 更多资源欢迎关注 1、英伟达今年在华销售额预计将达120亿美元 芯片咨询公司SemiAnalysis报告预估,今年英伟达有望在中国销售价值约120亿美元的人工智能芯片。黄仁勋曾表示,希望借助新的芯片使得…

SprintBoot创建遇到的问题

最近使用IDEA版本为2022.3.1&#xff0c;java版本为21.0.3&#xff0c;现在做一个创建SprintBoot3的一个大体流程 1.先下载Maven&#xff0c;解压到一个位置 maven下载 2.配置setting.xml文件 这路径自己配置&#xff0c;这里不多演示 代码如下&#xff1a; <mirror>&…

【测试开发】--安全渗透测试

1. 安全渗透 1.1 分类 web数据库安全web应用服务器安全&#xff08;文件上传漏洞、文件包含漏洞&#xff09;web客户端安全&#xff08;XSS跨站攻击&#xff09; 2. sql注入 2.1 sql注入介绍 sql注入在安全问题中排行榜首sql注入攻击是输入参数未经过滤&#xff0c;然后直…

高考完的假期想学c语言要注意那些问题?

c语言算是现代编程语言里面比较简单的一个&#xff0c;对于高考刚考完的学生来说确实很适合刚好我有一些资料&#xff0c;是我根据网友给的问题精心整理了一份「c语言的资料从专业入门到高级教程」&#xff0c; 点个关注在评论区回复“888”之后私信回复“888”&#xff0c;全…