上一页 1 2 3 4 5 6 7 8 9 10 ··· 17 下一页
摘要: 一、MySQL逻辑架构 1.1 结构分析 整体来说,MySql的逻辑架构分成三个部分。 1)客户端:主要是建立连接的过程,交互的过程 2)核心服务 3)存储引擎 这个可能比较抽象,我们结合MySql的查询过程,结合着进行学习。 1.2 结构图 二、MySql查询过程 2.1 流程图 这个图其实就是在 阅读全文
posted @ 2021-08-11 22:19 Mr-xxx 阅读(3882) 评论(0) 推荐(1) 编辑
摘要: 一、简介 服务器端编程经常需要构造高性能的IO模型,常见的IO模型有四种: (1)同步阻塞IO(BlockingIO):即传统的IO模型。 (2)同步非阻塞IO(Non-blockingIO):默认创建的socket都是阻塞的,非阻塞IO要求socket被设置为NONBLOCK。注意这里所说的NIO 阅读全文
posted @ 2021-08-11 10:11 Mr-xxx 阅读(835) 评论(0) 推荐(0) 编辑
摘要: 一、简介 1.1 POSIX AIO POSIX AIO是一个用户级实现,它在多个线程中执行正常的阻塞I/O,因此给出了I/O异步的错觉.这样做的主要原因是: 它适用于任何文件系统 它(基本上)在任何操作系统上工作(请记住,gnu的libc是可移植的) 它适用于启用了缓冲的文件(即没有设置O_DIR 阅读全文
posted @ 2021-08-10 21:34 Mr-xxx 阅读(575) 评论(0) 推荐(0) 编辑
摘要: 一、前言 分布式锁相信大家一定不会陌生, 想要用好或者自己写一个却没那么简单 想要达到上述的条件, 一定要 掌握分布式锁的应用场景, 以及分布式锁的不同实现, 不同实现之间有什么区别 二、分布式锁场景 如果想真正了解分布式锁, 需要结合一定场景; 举个例子, 某夕夕上抢购 AirPods Pro 的 阅读全文
posted @ 2021-08-06 22:21 Mr-xxx 阅读(6942) 评论(0) 推荐(0) 编辑
摘要: 一、过期设置 1.1 过期设置的指令 Redis是key-value数据库,我们可以设置Redis中缓存的key的过期时间 expire可以设置过期时间 1 SET key value // 存入键值对 2 3 EXPIRE key 5 // 设置过期时间(秒) 4 PEXPIRE key 5000 阅读全文
posted @ 2021-08-02 22:25 Mr-xxx 阅读(219) 评论(0) 推荐(0) 编辑
摘要: 一、智能指针 1.1为何使用智能指针 首先我们先谈为何需要智能指针,C++11之前操作堆内存空间都是使用new,delete来维护,但是很容易造成new出来的内存忘记delete,开发人员需要大量时间维护修复。而new出来返回的指针也叫裸指针。 1)裸指针:直接用new返回的指针。这种指针强大,灵活 阅读全文
posted @ 2021-07-31 11:02 Mr-xxx 阅读(404) 评论(0) 推荐(0) 编辑
摘要: 一、介绍 lock_guard和unique_lock都是RAII机制下的锁,即依靠对象的创建和销毁也就是其生命周期来自动实现一些逻辑,而这两个对象就是在创建时自动加锁,在销毁时自动解锁。所以如果仅仅是依靠对象生命周期实现加解锁的话,两者是相同的,都可以用,因跟生命周期有关,所以有时会用花括号指定其 阅读全文
posted @ 2021-07-30 20:06 Mr-xxx 阅读(2596) 评论(0) 推荐(0) 编辑
摘要: 1、阻塞队列/线程安全队列 实现: 注意问题: 1、防止虚假唤醒的lambda表达式需要传入this,也就是调用变量 2、lambda表达式的函数体不可以使用自己写的判断队列满或者空函数 template <typename T> class block_queue { public: block_ 阅读全文
posted @ 2021-07-30 11:33 Mr-xxx 阅读(337) 评论(0) 推荐(0) 编辑
摘要: 一、介绍 .plt的作用是一个跳板,保存了某个符号在重定位表中的偏移量(用来第一次查找某个符号)和对应的.got.plt的对应的地址 .rel.dyn重定向表,在程序启动时就需要重定位完成。 .rel.plt保存了重定位表的信息,可以使用lazy的连接方式 .got据说是保存了elf文件本身的各个符 阅读全文
posted @ 2021-07-29 17:02 Mr-xxx 阅读(761) 评论(0) 推荐(0) 编辑
摘要: 一、引言 Memcached采用LRU(Least Recent Used)淘汰算法,在内存容量满时踢出过期失效和LRU数据,为新数据腾出内存空间。不过该淘汰算法在内存空间不足以分配新的Slab情况下,这时只会在同一类Slab内部踢出数据。即当某个Slab容量满,且不能在内存足够分配新的Slab,只 阅读全文
posted @ 2021-07-29 15:41 Mr-xxx 阅读(145) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 8 9 10 ··· 17 下一页