03 2025 档案
摘要:并发编程 进程和线程 进程 我们常听说的是应用程序,也就是app,由指令和数据组成。但是当我们不运行一个具体的app时,这些应用程序就是放在磁盘(也包括U盘、远程网络存储等等)上的一些二进制的代码。一旦我们运行这些应用程序,指令要运行,数据要读写,就必须将指令加载至 CPU,数据加载至内存。在指令运
阅读全文
摘要:Redis缓存设计与性能优化 缓存设计 缓存穿透 缓存穿透是指查询一个根本不存在的数据, 缓存层和存储层都不会命中, 通常出于容错的考虑, 如果从存储层查不到数据则不写入缓存层。缓存穿透将导致不存在的数据每次请求都要到存储层去查询, 失去了缓存保护后端存储的意义。 造成缓存穿透的基本原因有两个: 第
阅读全文
摘要:Redis压测脚本及持久化机制 Redis性能压测脚本 Redis的所有数据是保存在内存当中的,得益于内存高效的读写性能,Redis的性能是非常强悍的。但是,内存的缺点是断电即丢失,所以,在实际项目中,Redis一旦需要保存一些重要的数据,就不可能完全使用内存保存数据。因此,在真实项目中要使用Red
阅读全文
摘要:Redis的线程模型 Redis的原子性是如何保证的? Redis 是一个非常快的内存数据库,它的操作默认是 原子性的,意思是每个操作要么完全成功,要么完全不做,中间不会被打断或停止。也就是说,每次操作要么完全按计划执行完,要么什么都不做,这样可以保证数据的一致性和完整性。 Redis 的原子性主要
阅读全文