文章 2023-12-20 来自:开发者社区

IO/线程 :零拷贝

零拷贝 你会如何实现文件传输?服务器提供文件传输功能,需要将磁盘上的文件读取出来,通过网络协议发送到客户端。如果需要你自己编码实现这个文件传输功能,你会怎么实现呢? 通常,你会选择最直接的方法:从网络请求中找出文件在磁盘中的路径后,如果这个文件比较大,假设有 320MB,可以在内存中分配 32KB 的缓冲区,再把文件分成一万份,每份只有 32KB,这样,从文件的起始位置读入 32KB 到缓冲...

IO/线程 :零拷贝
文章 2023-11-11 来自:开发者社区

redis中的io多线程(线程池)

redis多线程模型redis为什么引入I/O多线程Redis 的性能瓶颈在网络 IO 的处理上。Redis 是网络 IO 密集型,需要同时处理多条并发请求,读写 IO 的问题(请求大量数据,写日志业务等)。多线程处理网络 IO,单线程执行命令。Redis 线程池作用读写 IO 阶段,即 read, decode 和 encode, send 阶段。主线程处理业务逻辑,之所以用单线程执行命令,是....

redis中的io多线程(线程池)
文章 2023-10-27 来自:开发者社区

【文末送书】Python高并发编程:探索异步IO和多线程并发

随着计算机技术的不断发展,对于高并发处理的需求也越来越迫切。在现代网络应用中,高并发是一个普遍存在的挑战,而Python作为一门流行的编程语言,其在高并发处理方面也吸引着越来越多的关注。在本博客中,我们将探讨Python高并发编程的核心概念和实现方法,主要着重于异步IO和多线程并发。什么是高并发?在开始之前,我们先来明确一下什么是高并发。高并发指的是系统能够同时处理大量并发请求的能力。在网络应用....

【文末送书】Python高并发编程:探索异步IO和多线程并发
文章 2023-10-08 来自:开发者社区

Redis学习笔记-高性能IO模型&Redis6.0多线程

前面的文章简单介绍了 Redis 的底层数据结构,合理地使用底层数据结构可以提升 Redis 读写速度,而 Redis 很快的原因主要有 内存(大部分操作是在内存完成的)、数据结构、IO多路复用机制,这篇文章主要探讨一下 Redis 的 高性能IO模型,为什么单线程 Redis 能每秒处理数十万级的数据,以及 Redis6.0 的多线程解决是什么问题。1.笔记图2.Redis 单线程含义Redi....

Redis学习笔记-高性能IO模型&Redis6.0多线程
文章 2023-09-23 来自:开发者社区

Redis核心技术与实践 03 | 高性能IO模型:为什么单线程Redis能那么快?

原文地址:https://time.geekbang.org/column/article/268262个人博客地址:http://njpkhuan.cn/archives/redis-he-xin-ji-shu-yu-shi-jian-03-gao-xing-neng-io-mo-xing–wei-shen-me-dan-xian-cheng-redis-neng-na-me-kuai-你好,....

Redis核心技术与实践 03 | 高性能IO模型:为什么单线程Redis能那么快?
文章 2023-08-29 来自:开发者社区

阿里Java高级岗中间件二面:GC+IO+JVM+多线程+Redis+数据库+源码

虽然“钱多、事少、离家近”的工作可能离技术人比较远,但是找到一份合适的工作,其实并不像想象中那么难。但是,有些技术人确实是认真努力工作,但在面试时表现出的能力水平却不足以通过面试,或拿到高薪,其实不外乎以下 2 个原因:第一,“知其然不知其所以然”。做了多年技术,开发了很多业务应用,但似乎并未思考过种种技术选择背后的逻辑。所以,他无法向面试官展现出自己未来技术能力的成长潜力。面试官也不会放心把具....

阿里Java高级岗中间件二面:GC+IO+JVM+多线程+Redis+数据库+源码
文章 2023-06-16 来自:开发者社区

Redis6.0的多IO线程(二)

如何推迟客户端写操作?Redis 在执行了客户端命令,要给客户端返回结果时,会调用 addReply 函数将待返回结果写入客户端输出缓冲区。而在 addReply 函数的一开始,该函数会调用 prepareClientToWrite 函数,来判断是否推迟执行客户端写操作。下面代码展示了 addReply 函数对 prepareClientToWrite 函数的调用,你可以看下。/* Add th....

Redis6.0的多IO线程(二)
文章 2023-06-16 来自:开发者社区

Redis6.0的多IO线程(一)

通过上篇文章的学习,我们知道 Redis server 启动后的进程会以单线程的方式,执行客户端请求解析和处理工作。但是,Redis server 也会通过 bioInit 函数启动三个后台线程,来处理后台任务。也就是说,Redis 不再让主线程执行一些耗时操作,比如同步写、删除等,而是交给后台线程异步完成,从而避免了对主线程的阻塞。实际上,在 2020 年 5 月推出的 Redis 6.0 版....

Redis6.0的多IO线程(一)
文章 2023-06-16 来自:开发者社区

Redis高性能IO模型 redis为什么单线程还那么快

1.2 高性能IO模型我们通常说,Redis 是单线程,主要是指 Redis 的网络 IO 和键值对读写是由一个线程来完成的,这也是 Redis 对外提供键值存储服务的主要流程。但 Redis 的其他功能,比如持久化、异步删除、集群数据同步等,其实是由额外的线程执行的。所以,严格来说,Redis 并不是单线程,但是我们一般把 Redis 称为单线程高性能,这样显得“酷”些。接下来,我也会把 Re....

Redis高性能IO模型 redis为什么单线程还那么快
文章 2023-05-23 来自:开发者社区

阿里Java高级岗中间件二面:GC+IO+JVM+多线程+Redis+数据库+源码

一转眼,都2020年了,你是否在满意的公司?拿着理想的薪水?虽然“钱多、事少、离家近”的工作可能离技术人比较远,但是找到一份合适的工作,其实并不像想象中那么难。但是,有些技术人确实是认真努力工作,但在面试时表现出的能力水平却不足以通过面试,或拿到高薪,其实不外乎以下 2 个原因:第一,“知其然不知其所以然”。做了多年技术,开发了很多业务应用,但似乎并未思考过种种技术选择背后的逻辑。所以,他无法向....

阿里Java高级岗中间件二面:GC+IO+JVM+多线程+Redis+数据库+源码

本页面内关键词为智能算法引擎基于机器学习所生成,如有任何问题,可在页面下方点击"联系我们"与我们沟通。