博客
分类
标签
归档
友链
关于
更多
博客
分类
标签
归档
友链
关于
更多
luckyZZ的成长博客
主页
标签
分类
源码
如何保证Redis数据的一致性
背景在前面两篇博客中写到 Redis 实现原子性的两种方式:事务、LUA脚本。在学习 LUA 脚本时,对 LUA 脚本能否完全保证redis的原子性做了分析,得出结论: LUA脚本保证原子性取决于Redis的部署架构,在单体和主从架构中是可以保证原子性的,但是在集群的分片部署中却不一定,也给出了解决方案。 提出问题那么在主从架构和集群部署中,如何保证redis的消息不丢失?如何保证主从架构的...
2025-04-27
中间件
中间件
Read More
redis 如何实现原子性
上一篇博客说到了 redis 的事务机制,知道了 redis 的事务机制可以保证一组命令可以原子执行,但是不保证这组命令全部执行成功。redis 中也使用了 LUA 脚本保证原子性。 先来看一下 redis 官方对LUA脚本做的解释:LUA是一种脚本语言,通过EVAL命令执行LUA脚本,且LUA脚本具备原子性 执行脚本 EVAL EVAL 的语法 1EVAL script numkeys...
2025-04-26
中间件
中间件
Read More
redis 的事务是什么?和 MySql的事务有什么区别
字节一面:了解Redis的事务吗?它的命令有哪些?它和MySQL的事务有什么区别?MySQL 事务mysql的事务主要要4个特点,也就是ACID,这是面试常问到的点 Atomicity(原子性):事务中的操作要么全部执行,要么全部不执行 Consistency(一致性):事务执行前后,数据库中数据在逻辑上都是正确的。常举的例子是,A给B转100块,执行前A的账户有a元,B的账户有b元,执行后...
2025-04-26
中间件
中间件
Read More
字节二面:Redis 如果没有设置过期时间,且内存打满时会怎么处理
背景最近在面试字节后端,面试官对 八股进行了深入的拷打,问了 Redis 的过期删除时间有什么机制,并延伸了当 redis 没有设置过期时间,且已知写redis知道redis写满,会发生什么?当时回答的是会启动换入换出操作,面试官好像不太满意。面试复盘实验一下,看看这种情况到底会发生什么。 Redis 安装(Linux环境)step1:下载指定redis的版本包 1wget https://...
2025-04-23
中间件
中间件
Read More
字节一面:乐观锁和悲观锁的区别,乐观锁是怎么实现的
背景在 visual studio中配置mysql环境参考文章如下 https://blog.csdn.net/weixin_58210154/article/details/141790084 乐观锁和悲观锁是常见的并发控制机制,解决多进程或者多线程环境中数据数据访问冲突的问题 数据库表创建创建一个银行账户表 account,包含账户ID、姓名、余额、版本号 1234567CREATE T...
2025-04-22
操作系统
操作系统
Read More
Linux C++: Valgrind 检查内存泄漏
背景内存泄漏一般指的是堆内存泄漏。在写代码的时候,通过C++运算符或者库函数(malloc等)分配内存,使用完后总是忘记释放内存,导致操作系统失去对这块内存的控制,也就是内存泄漏。 如果不进行内存泄漏的处理,当系统中运行的程序越来越多,内存泄漏也就会越来越多,即使实际上物理内存足够大,但是一旦内存泄漏越来越多,可用内存就越来越少,严重可能会导致系统崩溃。 如何定位可能发生内存泄漏的进程模拟一...
2025-04-22
操作系统
操作系统
Read More
死锁怎么排查
背景一个进程中的多个线程是共享进程空间的数据的,当线程并发执行时,会出现线程安全问题,也就是多个线程对共享数据进行修改时导致数据不一致的问题。为了解决线程并发问题需要对共享资源进行互斥访问,通过互斥锁实现。如果获取锁的顺序不当,很可能会造成死锁。那发生死锁的时候怎么去排查呢? 通过创造产生死锁的4个必要条件模拟死锁的发生系统产生死锁的四个必要条件 · 互斥 · 请求保持 · 不可剥夺 · 环...
2025-04-21
操作系统
操作系统
Read More
服务降级、服务熔断、服务限流
服务降级为什么要降级:当服务器出现负载过高的情况时,由于系统资源有限,服务器请求不过来,可能会导致系统崩盘。为了保障系统的稳定性并保证核心业务的运行,需要进行服务降级。 服务降级的核心思想:保留核心服务功能,降低非核心功能或者直接关闭非核心功能,主打一个“断臂求生”。 功能 保障核心业务:在系统资源有限的情况下,优先保障核心业务 增加系统的可用性:避免服务器因为负载过高而崩盘,将有限的资源...
2025-04-16
系统架构
系统架构
Read More
怎么防止单点故障
背景在交易所工作的这段日子,学习交易系统的时候,总是强调主备服务器,什么是主备服务器?为什么要做主备服务器? 单点故障单点故障是指系统中每个组件或者某一个节点出现问题无法正常提供服务了,可能会导致整个系统瘫痪。系统设计需要时刻考虑单点故障问题,实现系统的可靠性和可用性。系统设计过程中避免单点故障的核心思想就是【冗余】。 构建冗余的系统架构构建冗余的系统架构,需要从硬件和软件两个方面考虑 硬件...
2025-04-16
系统架构
系统架构
Read More
什么是正向代理服务器,什么是反向代理服务器
背景当我在学习负载均衡相关的内容时,了解到负载均衡可以由软件负载均衡服务器实现,典型的是Nginx,Nginx是什么呢? Nginx是高性能的HTTP和反向代理服务器。提问:为什么叫反向代理服务器?那正向代理服务器是什么?他们的区别是什么? 正向代理服务器一句话说明:正向代理是指客户端的代理,帮助客户端访问受限资源和隐藏客户端的身份。 正向代理服务器处于客户端和服务器之间,客户端将请求发给正...
2025-04-15
计算机网络
计算机网络
Read More
Previous
2 / 3
Next