✳flâneur — a map of the web's best reading
Redis 多线程的学习和理解 - lxkaka
lxkaka.wang · 526 words · saved by 1 readers
Redis v6.0 真正意义上引入了多线程,我们有必要深刻理解这个特性的实现和意义
Redis 多线程的学习和理解 lxkaka 收录于 原理 存储 基础 2022-10-30 约 3890 字 预计阅读 8 分钟 目录 在后端开发中面临分布式缓存选型时 Redis 已然成为了头号选手甚至可以说是事实上的标准。Redis 从本质上来讲是一个网络服务器,而对于一个网络服务器来说,网络模型是它的核心。而关于网络模型我们知道 Redis v6.0 版本引入了一个非常重要的特性-多线程 IO。在这篇文章里我们学习一下这个重要的特性,有助于我们更好的额理解 Redis 的底层实现。 Redis 单线程 这里说的单线程指的是 Redis 的网络模型用单线程实现。单线程实现有以下优点 避免过多的上下文切换开销 多线程调度过程中必然需要在 CPU 之间切换线程上下文 context,而上下文的切换又涉及程序计数器、堆栈指针和程序状态字等一系列的寄存器置换、程序堆栈重置甚至是高速缓存、TLB 快表的汰换,如果是进程内的多线程切换还好一些,因为单一进程内多线程共享进程地址空间,因此线程上下文比之进程上下文要小得多,如果是跨进程调度,则需要切换掉整个进程地址空间。 如果是单线程则可以规避进程内频繁的线程切换开销,因为程序始终运行在进程中单个线程内,没有多线程切换的场景。 可以实现无锁 如果 Redis 选择多线程模型,又因为 Redis 是一个数据库,那么势必涉及到底层数据同步的问题,
Explore this link on the map →saved by
related reading
- How's Linear so fast? A technical breakdownperformance.dev
- To Thread or Not to Thread: An In-Depth Look at Ruby’s Execution Models - Shopifyshopify.engineering
- Giới thiệu về thread từ phần cứng ra phần mềm.blog.daovanhung.com
- Processes and Threads — PlanetScaleplanetscale.com
- Channels | Tokio - An asynchronous Rust runtimetokio.rs
- How to do distributed locking - Martin Kleppmann's blogmartin.kleppmann.com
- You might not need Redisviblo.se
- Why choose async/await over threads? | Hacker Newsnews.ycombinator.com
- Reading 14: Concurrencyweb.mit.edu
- Multithreading and Multiprocessing in 10 Minutes | Towards Data Sciencetowardsdatascience.com
- Multithreading (computer architecture) - Wikipediaen.wikipedia.org
- CS111 Section 4: Multithreadingweb.stanford.edu