一点一滴成长

导航

2024年9月2日 #

零拷贝IO

摘要: 以下内容参考和转载自:小林coding,原来 8 张图,就可以搞懂「零拷贝」了。 1、DMA 在没有DMA(直接内存访问)技术之前,调用read()读取磁盘文件的话,会有5个步骤:CPU向磁盘发起IO请求—>磁盘控制器将数据放到磁盘缓冲区中后产生一个IO中断—>CPU收到IO中断信号后将磁盘缓冲区数 阅读全文

posted @ 2024-09-02 13:04 整鬼专家 阅读(19) 评论(0) 推荐(0) 编辑

2024年5月21日 #

libuv进程

摘要: 1、创建进程 调用uv_spawn()来启动一个进程: #include <stdio.h> #include <uv.h> uv_loop_t* loop; uv_process_t child_req; uv_process_options_t options; //全局变量会自动初始化int类 阅读全文

posted @ 2024-05-21 09:18 整鬼专家 阅读(111) 评论(0) 推荐(0) 编辑

2024年5月13日 #

libuv线程

摘要: 1、概述 libuv的线程API与Linux的pthread的API在使用方法和语义上很接近,因为要跨平台,所以libuv支持的线程API个数很有限。libuv中只有一个主线程,主线程上只有一个event loop。如下为创建线程的一个简单示例: #include <stdio.h> #includ 阅读全文

posted @ 2024-05-13 16:44 整鬼专家 阅读(165) 评论(0) 推荐(0) 编辑

2024年5月11日 #

libuv网络操作

摘要: 1、获取本机网络地址 使用uv_interface_addresses()可以获取本机网络地址接口信息,如下所示,其第一个参数是一个指针的指针,因为仅传递指针的话函数内只能改变指针指向的内容,不能改变该指针值,有了指针的地址就可以改变指针的值: #include <stdio.h> #include 阅读全文

posted @ 2024-05-11 10:03 整鬼专家 阅读(72) 评论(0) 推荐(0) 编辑

2024年5月9日 #

libuv概述

摘要: 1、综述 libuv是一个高性能的,事件驱动的I/O库,支持跨平台(由平台决定使用libev或IOCP),诞生自node.js(关于node.js的介绍参见文章JavaScript介绍中node.js部分)。libev是网络库libevent的改进版,但libev在Windows下的性能不太好(使用 阅读全文

posted @ 2024-05-09 09:50 整鬼专家 阅读(409) 评论(0) 推荐(0) 编辑

libuv文件系统

摘要: 1、读取和写入文件 如下为异步打开test.dat文件后,读取文件数据并将其写入到标准输出的示例,读取和写入的时候使用uv_buf_t类型来作为缓存: #include "uv.h" #include <assert.h> uv_fs_t open_req, read_req, write_req; 阅读全文

posted @ 2024-05-09 09:50 整鬼专家 阅读(94) 评论(0) 推荐(0) 编辑

2024年1月23日 #

MySQL Cluster与Replication

摘要: 1、综述 MySql架构可以分为两种形式,一个是MySQL Cluster,一个是MySQL Replication,Cluster即集群模式,Replication即主从复制(读写分离)模式。 MySQL Cluster基于NDB存储引擎,其优点是高可用(即节点出现故障时自动切换到备用节点)和高可 阅读全文

posted @ 2024-01-23 17:21 整鬼专家 阅读(224) 评论(0) 推荐(0) 编辑

2022年3月17日 #

Redis集群

摘要: 1、主从复制 ①、概述 Redis仅部署到一台机子上的话,如果该主机的硬盘出现硬件问题,那么就有可能丢失数据。可以将数据复制多个副本到多台主机上,单台主机出现故障的话也不影响Redis继续提供服务,这就是Redis主从复制。Redis主从复制中分为master主数据库和salve从数据库,不进行额外 阅读全文

posted @ 2022-03-17 15:57 整鬼专家 阅读(291) 评论(0) 推荐(0) 编辑

2021年12月30日 #

Redis持久化

摘要: Redis持久化有两种方式: RDB:根据指定规则将内存中的数据保存到硬盘上,这个过程称为“快照”,下次Redis启动的时候加载快照文件到内存。快照文件保存在Redis工作目录中的dump.rdb文件中,可以通过配置文件中的dir和dbfilename设置路径和文件名,如dbfilename new 阅读全文

posted @ 2021-12-30 17:28 整鬼专家 阅读(66) 评论(0) 推荐(0) 编辑

2021年12月29日 #

Redis脚本

摘要: Redis支持使用Lua编写脚本传到Redis服务中执行,在脚本中可以通过redis.call()函数来调用Redis命令。使用脚本的好处有: 有时候一系列的Redis操作可能比较麻烦,可以将这些操作写入到Lua脚本中来让Redis执行,也就是通过编写Lua脚本可使得操作Redis更加简单。 以下是 阅读全文

posted @ 2021-12-29 10:54 整鬼专家 阅读(317) 评论(0) 推荐(0) 编辑