系统架构师备考倒计时22天(每日知识点)Redis篇
Redis篇
1.Redis与Memcache能力对比
| 工作 | MemCache | Redis |
|---|---|---|
| 数据类型 | 简单 key/value 结构 | 丰富的数据结构 |
| 持久性 | 不支持 | 支持 |
| 分布式存储 | 客户端哈希分片/一致性哈希 | 多种方式,主从、Sentinel、Cluster 等 |
| 多线程支持 | 支持 | 支持(Redis5.0及以前版本不支持) |
| 内存管理 | 私有内存池/内存池 | 无 |
| 事务支持 | 不支持 | 有限支持 |
| 数据容灾 | 不支持,不能做数据恢复 | 支持,可以在灾难发生时,恢复数据 |
2.Redis集群切片的常见方式
| 集群切片方式 | 核心特点 |
|---|---|
| 客户端分片 | 在客户端通过key的hash 值对应到不同的服务器。 |
| 中间件实现分片 | 在应用软件和 Redis 中间,例如:Twemproxy、Codis 等,由中间件实现服务到后台Redis节点的路由分派。 |
| 客户端服务端协作分片 | 客户端与服务端协作完成分片处理。 |
3.Redis分布式存储方案
| 分布式存储方案 | 核心特点 |
|---|---|
| 主从(Master/Slave)模式 | 一主多从,故障时手动切换。 |
| 哨兵(Sentinel)模式 | 有哨兵的一主多从,主节点故障自动选择新的主节点。 |
| 集群(Cluster)模式 | 分节点对等集群,分slots,不同slots的信息存储到不同节点。 |
4.Redis数据分片方案
| 分片方案 | 分片方式 | 说明 |
|---|---|---|
| 范围分片 | 按数据范围值来做分 | 例:按用户编号分片,0-999999 映射到实例A;1000000-1999999映射到实例 B。 |
| 哈希分片 | 通过对key进行hash运算分片 | 可以把数据分配到不同实例,这类似于取余操作,余数相同的,放在一个实例上。 |
| 一致性哈希分片 | 哈希分片的改进 | 可以有效解决重新分配节点带来的无法命中问题。 |
相关文章:
系统架构师备考倒计时22天(每日知识点)Redis篇
Redis篇 1.Redis与Memcache能力对比 工作MemCacheRedis数据类型简单 key/value 结构丰富的数据结构持久性不支持支持分布式存储客户端哈希分片/一致性哈希多种方式,主从、Sentinel、Cluster 等多线程支持支持支持(Redis5.0及以前版本不支持)内存管理私有内存池/内…...
现有库存(on-hand inventory),库存水平(inventory level),库存位置(inventory position)
库存管理中,这几个名词特别容易混,干脆写一篇博客总结下。 现有库存(on-hand inventory),是指持有的真实库存量 库存水平(inventory level),现有库存减去延迟交付的订单 inventory level on-hand inventory − backorder quant…...
智慧空开让用电更安全、管理更智能——电脑APP远程控制开合闸
安科瑞 崔丽洁 01 什么是低压断路器?低压断路器的定义是:能够接通、承载及分断正常电路条件下的电流,也能在规定的非正常电路条件(过载、短路、特别是短路)下接通、承载一定时间和分断电流的开关电器。 断路器的分类&…...
PyTorch 中张量运算广播
TLDR 右对齐,空补一,从左往右依维运算 [m] [x, y] [m x, m y] 正文 以如下 a b 两个 tensor 计算为例 a torch.tensor([[1],[2],[3], ]) b torch.tensor([[[1, 2, 3],],[[4, 5, 6],],[[7, 8, 9],], ]) # a.shape (3, 1) # b.shape (3, 1, 3)首先…...
Blender:使用立方体制作动漫头像
好久没水文章 排名都掉到1w外了 ~_~ 学习一下blender,看能不能学习一点曲面变形的思路 一些快捷键 ctrl 空格:区域最大化,就是全屏 ctrl alt 空格:也是区域最大化 shift b:框选区域然后最大化显示该范围 shift 空…...
【ppt技巧】ppt里的图片如何提取出来?
之前分享过如何将PPT文件导出成图片,今天继续分享PPT技巧,如何提取出PPT文件里面的图片。 首先,我们将PPT文件的后缀名,修改为rar,将文件改为压缩包文件 然后我们将压缩包文件进行解压 最好是以文件夹的形式解压出来…...
Python学习基础笔记七十三——调试程序
为什么要调试? 我们发现程序运行的结果和我们预期的不符。 程序运行的错误,我们通常叫做bug。 有两种类型的bug:语句错误和逻辑错误。 所谓语句错误,就是执行代码的时候,解释器就可以直接发现的代码错误,…...
BOSHIDA DC电源模块关于电容器的电解液位置
BOSHIDA DC电源模块关于电容器的电解液位置 DC电源模块中的电容器扮演着一个非常重要的角色,它们能够对电路提供稳定的电源电压,同时也可以作为电路中的滤波器,去除电路中的噪声和纹波。在DC电源模块中使用的电容器通常是电解型电容器&#…...
如何实现 Es 全文检索、高亮文本略缩处理(封装工具接口极致解耦)
如何实现 Es 全文检索、高亮文本略缩处理 前言技术选型JAVA 常用语法说明全文检索开发高亮开发Es Map 转对象使用核心代码 Trans 接口(支持父类属性的复杂映射)Trans 接口可优化的点高亮全局配置类如下真实项目落地效果为什么不用 numOfFragments、fragm…...
C++多线程编程(第四章 案例1,C++11和C++17 多核并行计算样例)
目录 4.1手动实现多核base16编码4.1.1 实现base16编码4.1.2无多线程代码4.1.3 C 11多线程代码4.1.4 C 17多线程并发4.1.5 所有测试代码汇总 4.1手动实现多核base16编码 4.1.1 实现base16编码 二进制转换为字符串 一个字节8位,拆分为两个4位字节(最大值…...
获取远程仓库的信息和远程分支的信息
前记: git svn sourcetree gitee github gitlab gitblit gitbucket gitolite gogs 版本控制 | 仓库管理 ---- 系列工程笔记. Platform:Windows 10 Git version:git version 2.32.0.windows.1 Function:获取远程仓库的信息和远…...
QT学习day1
一、思维导图 二、作业:实现登录界面 #include "widget.h" #include<QDebug> #include<QIcon>Widget::Widget(QWidget *parent): QWidget(parent) {/**********************窗口******************///设置窗口图标this->setWindowTitle…...
unity面试八股文 - 框架设计与资源管理
Unity项目框架是如何设计的?有哪些原则 在设计Unity项目框架时,通常会遵循一些基本的原则和步骤。以下是主要的一些原则: 模块化:每个功能都应该被作为一个独立的模块来处理,这样可以方便修改和维护。 低耦合&#x…...
智能网关IOT 2050采集应用
SIMATIC IOT2050 是西门子公司新推出的应用于企业数字化转型的智能边缘计算和云连接网关。 它将云、公司内 IT 和生产连接在一起,专为直接在生产环境中获取、处理和传输数据的工业 IT 解 决方案而设计。例如,它可用于将生产 过程与基于云的机器和生产数据…...
iOS代码混淆-从入门到放弃
目录 1. 什么是iOS代码混淆? 2. iOS自动代码混淆的方法是什么? 3. iOS代码混淆的作用是什么? 4. 怎么样才能做到更好的iOS代码混淆? 总结 参考资料 1. 什么是iOS代码混淆? 代码混淆是指将程序中的方法名、属…...
基于Eigen的位姿转换
位姿中姿态的表示形式有很多种,比如:旋转矩阵、四元数、欧拉角、旋转向量等等。这里基于Eigen实现四种数学形式的相互转换功能。本文利用Eigen实现上述四种形式的相互转换。我这里给出一个SE3(4*4)(先平移、再旋转)的构建方法&…...
Jmeter之Bean shell使用详解
一、什么是Bean Shell BeanShell是一种完全符合Java语法规范的脚本语言,并且又拥有自己的一些语法和方法;BeanShell是一种松散类型的脚本语言(这点和JS类似); BeanShell是用Java写成的,一个小型的、免费的、可以下载的、嵌入式的Java源代码解释器,具有对象脚本语言特性,非常精…...
TCP/IP(八)TCP的连接管理(五)四次握手
一 tcp连接断开 每一个TCP报文的超时重传都由一个特定的内核参数来控制 ① 四次握手的过程 遗留: 谁先发送FIN包,一定是client吗? --> upload和download补充: 主动和被动断开连接的场景 "四次握手过程描述" F --> FIN --> F…...
MyBatis-Plus主键生成策略[MyBatis-Plus系列] - 第491篇
历史文章(文章累计490) 《国内最全的Spring Boot系列之一》 《国内最全的Spring Boot系列之二》 《国内最全的Spring Boot系列之三》 《国内最全的Spring Boot系列之四》 《国内最全的Spring Boot系列之五》 《国内最全的Spring Boot系列之六》 …...
Spring——和IoC相关的特性
目录 IoC中Bean的生命周期 实例化(Instantiation) 属性注入(Populate Properties) 初始化(Initialization) 使用(Bean in Use) 销毁(Destruction) Laz…...
一个普通程序员转型AI的崩溃日记:我做了一个“没用”的系统救了他
一位Java程序员在转型AI时遭遇严重崩溃,面对AI代码生成的失控感和同行成功的压力,同时因学习心理学而无法再通过"压榨自己"换取成功。在最痛苦之际,他创建了名为"LifeGame"的自我安抚系统,将困扰转化为游戏任…...
嵌入式硬件设计核心要点与实战技巧
嵌入式硬件设计关键要点解析1. 嵌入式系统硬件架构概述嵌入式系统的硬件架构以CPU为核心,所有外围设备都围绕CPU进行配置。这种架构最显著的特点是硬件可裁剪性,设计者可以根据具体应用需求灵活调整系统组成。在典型的嵌入式硬件设计中,需要重…...
收藏级|AI岗位全景与转行指南:从技能到Offer(小白/程序员必看)
无论是刚入门的编程小白,还是想转行AI赛道的在职程序员,这份指南都能帮你理清方向——不玩虚的,全是可落地的岗位解析、技能清单、简历技巧和学习路线,收藏起来,跟着走就能少走弯路,高效切入AI领域…...
GD32F4实战:在FreeRTOS上跑LWIP,网线热插拔怎么搞才稳?
GD32F4实战:FreeRTOS与LWIP深度整合中的网线热插拔稳定性设计 在工业物联网和边缘计算场景中,嵌入式设备的网络稳定性直接关系到系统可靠性。GD32F4系列作为国产MCU的优秀代表,配合FreeRTOS和LWIP的黄金组合,为开发者提供了高性价…...
TXS0104EPWR双向电平转换器实战指南:从4通道设计到50mA高效应用
1. TXS0104EPWR双向电平转换器入门指南 第一次接触TXS0104EPWR时,我也被这个复杂的型号名称吓到了。但实际用起来才发现,这个4通道双向电平转换器简直是嵌入式开发的"翻译官"——专门解决不同电压器件之间的"语言不通"问题。想象一下…...
如何用OpenPLC Editor实现工业级控制?3大场景实战指南
如何用OpenPLC Editor实现工业级控制?3大场景实战指南 【免费下载链接】OpenPLC_Editor 项目地址: https://gitcode.com/gh_mirrors/ope/OpenPLC_Editor 你是否曾遇到过工业控制编程的困境?传统PLC开发成本高昂、学习曲线陡峭、兼容性差…...
Qt 6.5 + DeepSeek API 流式聊天实战:手把手教你打造一个带记忆的桌面AI助手
Qt 6.5 DeepSeek API 流式聊天实战:打造带记忆的桌面AI助手 在当今软件开发领域,AI助手的集成已成为提升用户体验的重要趋势。想象一下,在你的代码编辑器或笔记软件中,有一个能理解上下文、实时响应且具备记忆能力的智能助手&…...
突破Google Drive PDF限制:3步法高效获取受保护文档全攻略
突破Google Drive PDF限制:3步法高效获取受保护文档全攻略 【免费下载链接】Google-Drive-PDF-Downloader 项目地址: https://gitcode.com/gh_mirrors/go/Google-Drive-PDF-Downloader 在学术研究与技术资料收集过程中,用户常面临Google Drive中…...
Verdi隐藏技巧:不为人知的VC Apps批处理参数大全(以listRegisters为例)
Verdi隐藏技巧:VC Apps批处理参数深度解析与实战指南 在芯片验证领域,Verdi作为业界领先的调试工具,其VC Apps组件提供了强大的批处理能力。本文将深入探讨官方文档未明确说明的高级参数技巧,特别是以listRegisters为例的实战应用…...
OpenFly实战:如何用无人机视觉语言导航工具链快速生成10万条训练数据
OpenFly实战:无人机视觉语言导航数据生成的10倍效率革命 当无人机开始理解人类语言指令时,一场人机交互的革命正在悄然发生。去年在深圳某科技园区,一组工程师仅用72小时就完成了过去需要三个月的数据采集工作——他们使用的秘密武器正是Open…...
