Redis知识点汇总

news/2025/10/13 0:47:51/文章来源:https://www.cnblogs.com/chucz/p/19137568

Redis快速回忆

核心数据结构

1653819943577-be84da5a-cc06-4787-a49c-93cbe5b714f6.png

字符串

小于1M,成倍扩容,大于1M,就每次扩容1M,最大512M。

1653819956792-4e08345e-75f4-40d2-a546-3040d959bb44.png

1653834428287-1b1842a9-e5ef-45d9-8583-47f30955718a.png

1653834914489-e6461ab8-5b43-4d21-b268-9fdb7c4d6544.png

哈希

1653835342785-b4a0e539-fc73-4e02-b778-0b79f889da51.png

1653835529234-2197c052-0332-4c60-8f62-098ea4f87ade.png

1653835542377-bb0c6118-e82d-4d8a-9055-c6ec390ecea9.png

购物车

1653835979517-48136e0a-cc7e-45a1-a883-dc030f3ac29f.png

1653836084527-8521b7b0-4fb8-409a-9976-e22efaad57d8.png

列表

1653836223018-e9125b14-d202-4e4a-af02-63022ae7ea82.png

1653836376114-891e0c8c-5e5e-4112-a944-d5aa2f31f26a.png

1653836455552-52980928-d077-4c9b-974b-734c762f6598.png

集合

1653836552854-4d249a73-6313-465d-aaee-45df6b4c7b51.png

1653836664882-24e8c0c7-cec6-4a3a-b608-1fb85cf21edf.png

1653836755436-54b0994e-6e9b-4b5c-9109-f22dfbe3880e.png

1653836955935-7836b042-641f-4092-a2e5-fe3d5a398fc6.png

有序集合

1653837057243-5e468dbe-2c78-4eff-8f46-9202df400d5e.png

1653837085249-3223505d-b932-479d-8f62-348f09323af6.png

1653837247894-4b78032f-7894-4c4a-957e-cc113f783681.png

位图 Bitmap

虽然基于String类型,但是可以直接操作位

1653837330153-34ab6b3b-b844-47eb-9fcb-54cb20901c16.png

1653837422872-5de77adf-1f72-425c-a0ac-eb6773e43c38.png

一个字节8位表示一个用户是数据

1653837679535-1bfb8d09-9bae-4fa0-bca5-eb05268a1177.png

使用的时候把握住偏移量即可

1653837803286-891d6970-7d03-48d2-ac6b-ce93df1adb08.png

集成springboot

1653838883573-5c68975d-c40d-4910-89dc-c1d362d3e189.png

一般都会自定义,JDK的序列化方式存的数据不能直接查看

1653838866381-780b1a73-e8f6-4511-b65e-8857bb6a5b0a.png

1653838558249-8c984322-4ed7-4123-ae18-09a5c04528c8.png

1653838651602-bdd7d5fe-e058-400c-8f06-c194f50bcbd1.png

1653838606990-6c4d3b33-ca98-4e6d-a46f-6f8ecf42d0f4.png

1653838598152-df8886b2-3f0f-4337-806d-036f081f1297.png

1653838566572-916adb55-0a2e-4be6-90c3-364a29d91c12.png

核心原理

持久化机制

持久化命令

bgsave 是异步的

save 是同步的

1653839740073-db190f96-5ec1-48d1-8f25-aa024b5de8ea.png

RDB

1653839289599-7462314c-7216-4064-a30d-0187faa300e0.png

1653839429593-61b6a4cf-789f-4321-826e-e7affe3f8fc5.png

1653839835160-82e62077-b8ef-4684-948b-ec316563b876.png

AOF

1653839866836-2664222a-653a-4d49-b3f3-eb1c996bf91a.png

1653840157491-568c761f-1fe8-4bb6-aacb-ec478ecb9096.png

1653840199779-a5c1293f-cd45-4720-8307-52771dabad0a.png

1653840328495-1ac5b6ba-a098-4e3e-98d6-3e060ae4d6aa.png

1653840365723-00ff7089-0032-4b39-a961-11793cbed3e1.png

1653840675446-13578eca-6794-4aa6-89cc-8aa82ce72dc1.png

1653840699166-459a87c3-f32b-4e0a-9ac2-083b0dcbebe3.png

1653840749335-2d69cd92-e0cd-4cdd-a2c8-1929f377af27.png

混合模式

1653840761040-a08bf111-0121-4ebe-8ee1-349ca91459bc.png

快照的时候,增量的数据使用AOF的方式

1653840926810-c78b9327-38fd-4664-9f9f-0bed55a1d8af.png

1653840996746-7f8767be-dfbd-4134-a65c-e02391a948b5.png

分布式锁

演进过程

本地锁和分布式锁

减库存的时候多线程

1653841121380-3e466c09-1f6d-447e-b00d-58381c9c6b40.png

1653841179765-da8da396-d5dd-4e4e-9446-50a807713528.png

无法释放锁的情况处理

出现异常的话,就无法释放锁

1653841217906-925bb0fa-73aa-4bd1-8190-f42bfa2c540f.png

服务器断了,下面的锁还是无法释放

1653841270243-6509888f-0fef-44fe-8fdc-044c664aa245.png

设置超时时间,但是不能不是原子性操作

1653841293582-26485053-1228-4349-888c-c2045a102b15.png

合并为原子性操作,但是自己的锁可能被别人释放,因为别人的锁可能过期没了

1653841329041-2310b7cb-f154-4703-b2b1-55f26e8363de.png

自己的锁被别人删除怎么办

解决办法一:值相同的时候才可以删除掉

1653841562984-6c4f744a-e355-433b-ae68-e470080f014e.png

解决办法二:给锁续命,防止线程还在执行的时候锁就失效

1653841856591-7ac611bf-7250-4fa1-9e46-c55157151625.png1653841880298-d4dbd3e4-a292-4658-8c25-aabd726fc617.png

redission

1653842026038-1bb36cd7-11c3-4e64-b038-1af950442fa4.png

看门狗机制

1653842054020-018f0b14-f368-4fe6-974d-7f40a1c482bb.png

看门狗作用:每隔十秒检测,如果锁还有说明没有手动释放,说明线程还没有执行完成,就给锁自动续命三十秒。

redission极端情况下的锁丢失

分布式锁的丢失:Redis 是一个AP模型,主从数据一定会有不一致的情况。主库崩了,从库的锁还没有同步的时候,这个时候锁就丢失了。

解决方案:ZK就是CP模型,创建一个锁的话一定是不会丢失的。

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

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

相关文章

乐理 -05 乐音 乐级

乐音 一直发生在某个频率不发生变化的称为乐音噪音 没有固定的频率像鼓之类的称为 噪音乐器 乐音体系音列 多个 有序乐级

Redis实现分布式锁以及Redis客户端比较

对比 1、redisTemplate是基于某个具体实现的再封装,比如说springBoot1.x时,具体实现是jedis;而到了springBoot2.x时,具体实现变成了lettuce。封装的好处就是隐藏了具体的实现,使调用更简单,但是有人测试过jedis效…

一致性哈希原理

数据服务器如何组织:设计时候保证高频中低频都有数量。否则就是忙的忙死闲的闲死 逻辑层服务器:增加和减少机器的时候代价很小 数据层服务器:增加和减少机器的时候代价是全量的 取模服务器个数的问题--缓存雪崩 取模…

缓存和数据库数据的一致性

缓存与数据库双存储双写,你只要是双写,就一定会有数据一致性的 问题 Redis 的 qps 可以达到 10 万每秒,对于一般体量的互联网公司,一台机器就够了。但不论是什么业务,都不得不面对一个棘手的问题:那就是 Redis 和…

Redis不同数据类型代码场景实践

string 博客不好的实现 jedis.set("key1", "value1"); jedis.get("key1"); jedis.del("lock_test"); jedis.incr("blog_id_counter"); Long key = jedis.incrBy(&q…

上下文与this指向

var name = window​​ const person1 = { ​ name: person1,​foo1: function() {​console.log(this.name) ​ }, ​ foo2: () => {console.log(this.name) ​ },​foo3: function() { ​ return function…

[数据库] Microsoft SQL Server 数据库

1 概述: Microsoft SQL Server SQL Server 数据库SQL是英文Structured Query Language的缩写,意思为结构化查询语言。SQL语言的【主要功能】就是同各种数据库建立联系,进行沟通。按照ANSI(美国国家标准协会)的规定,…

02 | 在环境中使用Airsim插件

02 | 在环境中使用Airsim插件参考 https://zhuanlan.zhihu.com/p/619214564 中 我们只需要随意下载一个小一点的场景工程就可以然后按照文章中的内容进行。注意需要用到我们上一个文章中介绍的 plugins 文件夹

01 | UE5.3+Airsim+VS2022+Windows10(无人机仿真环境)

01 | UE5.3+Airsim+VS2022+Windows10(无人机仿真环境)配置步骤 vs2022 的安装和配置可以多装;少装也没事后面打开 vs2022 配置项目会进行提示桌面开发套件NET 桌面开发游戏开发单个组件安装 UE5.3不要下载在 C 盘,…

对于使用ant design组件库的疑问

用ant design 的tag来制作组件封装然后实现应该筛选功能的话,我得考虑什么,具体筛选是点击tag之后会得到对应的筛选后的信息,我的后端接口应该是放在主页面没问题,然后传类别和该类别的tag,但是tag是能选择了,那…

阅读《构建之法》提出的5个问题

问题1:科技公司应如何应对“颠覆式”的创新 书中上下文:16.1.2迷思之⼆:⼤家都喜欢创新 第348页“如果这位年轻⼈提的想法是改进电报技术,⼀定会受到欢迎,这⼀类创新是改良式的(Incremental Innovation),但是,…

提示工程介绍

什么是提示工程? 提示工程(Prompt Engineering)是“设计、优化输入给大语言模型的提示词,使其生成准确、有用且符合预期的输出”的技术与方法集合。它不改变模型本身,只通过调整“问法”来引导 AI 的表现。 定义看…

DshanPI-A1 RK3576 gstreamer播放16路视频与硬件加速

演示视频 一、实验环境类别 具体配置板卡 DshanPI-A1主控芯片 RK3576操作系统 Armbian桌面系统 GNOME窗口系统 WaylandGPU 驱动 Panfrost核心硬件加速单元说明 RK3576 芯片集成三类关键硬件加速单元,分别负责不同环节…

全面适配iOS 26液态玻璃,基于开源IM即时通讯框架MobileIMSDK:RainbowChat-iOS端v10.2发布

全面适配iOS 26液态玻璃,基于开源IM即时通讯框架MobileIMSDK:RainbowChat-iOS端v10.2发布基于开源IM即时通讯框架MobileIMSDK:RainbowChat-iOS端v10.2发布,全面适配iOS 26 Liquid Glass(液态玻璃)。1、MobileIMS…

freertos的调度过程

一.Preface 理解Freertos的任务调度对理解整个实时操作系统是非常有帮助的,最近抽空又复习了一遍源码,所以在此记录一下。二.freertos的3各任务链表 2.1ready list(array) a.这是一个链表组,定义了最高优先级为10,…

「2025 高一上学期笔记 / 日记」

「2025 高一上学期笔记 / 日记」 9.1 上午 P10449 费解的开关25 盏灯排成一个 55 的方形。每一个灯都有一个开关,游戏者可以改变它的状态。每一步,游戏者可以改变某一个灯的状态。游戏者改变一个灯的状态会产生连锁反…

「2025 暑假日记 / 笔记」

「2025 暑假日记 / 笔记」 7.1 - 7.2目前鸽了一部分题没时间写/太难的,后期补出来并查集简单并查集 并查集是一种用于管理元素所属集合的数据结构,支持查询和合并的操作。查询int find(int x){return (f[x] == x) ?…

2025羊城杯初赛Misc-writeup

别笑,你试你也过不了第二关 构造变量 hilogo 使其值等于指定的 ASCII 艺术图案,代码长度必须小于 285 字符 第一关通过尝试,发现题目存在沙箱,禁了import,print,base64等,同时禁用使用字符串格式化 我们采用Code…

将 GPU 级性能带到企业级 Java:CUDA 集成实用指南

引言 在企业软件世界中,Java 依靠其可靠性、可移植性与丰富生态持续占据主导地位。 然而,一旦涉及高性能计算(HPC)或数据密集型作业,Java 的托管运行时与垃圾回收开销会在满足现代应用的低延迟与高吞吐需求上带来…

我的个人空间

Hero BannerMCPAPPMovie H5浏览器插件微信