Nginx 反向代理配置

upstream up_dir { server unix:/dev/shm/test.sock.0 max_fails=1 fail_timeout=60s; server unix:/dev/shm/test.sock.1 max_fails=1 fail_timeout=60...

2019-06-12 18:25:37

阅读数 18

评论数 0

TCP/IP TCP快速重传

Q:TCP为什么要设计快速重传机制 在没有快速重传/快速恢复算法之前,重传依靠发送方的重传超时,在timeout时间内如果没有接收到对方的ACK,默认是丢包了,发送方就重传。 包丢失的原因:(1)包checksum出错、(2)网络拥塞、(3)网络断,包括路由重收敛。 发送方无法判断是哪种情况,于是...

2019-06-11 21:01:04

阅读数 26

评论数 0

C++ 内存分区

在C++中,内存分成5个区,堆、栈、自由存储区、全局/静态存储区、常量存储区 栈:由编译器在需要的时候分配,不需要的时候自动清除。里面的变量通常是局部变量、函数参数等。 堆:new和delete来申请和释放。 自由存储区:由malloc和free来申请和释放。 全局/静态存储区:全局变量和静态变量...

2019-06-10 20:54:58

阅读数 10

评论数 0

C++ public、protected、private的权限控制

一、访问权限 类的内部成员变量和成员函数之间没有权限控制,都是可以互相访问的。例如:private函数可以访问public函数、protected函数可以访问private变量等等。类的实例变量可以访问public类型、但不能访问protected和private类型成员变量/函数。 类的友元函数...

2019-06-10 14:03:47

阅读数 12

评论数 0

MySQL索引

索引的目的是为了提高数据查询的效率。常见的索引模型:哈希表、有序数组和搜索树。 哈希表:键-值(key-value),把值放在数组里,用一个哈希函数把key换算成一个确定的位置,然后把value放在数组的这个位置。 解决哈希冲突的方式是链表。适用于只有等值查询的场景。 有序数组:按顺序存储...

2019-05-10 19:56:37

阅读数 88

评论数 0

MySQL事务

Q:事务的概念是什么? 事务就是要保证一组数据库操作,要么全部成功,要么全部失败。在MySQL中,事务支持是在引擎层实现的。 MyISAM引擎不支持事务,InnoDB引擎支持事务。 Q:事务的四大特性(ACID) A:atomicity 原子性:事务是由一个或一组相互关联的SQL语句组成,这些语...

2019-05-07 19:55:20

阅读数 26

评论数 0

MySQL日志系统

mysql> create table T(ID int primary key, c int); mysql> insert into T values(1,1); mysql> insert into T values(2,2); mysql&...

2019-05-06 21:07:29

阅读数 33

评论数 0

Muduo源码分析:TCP服务端和客户端

Muduo采用经典的Reactor架构,支持以线程池的方式实现多线程并发处理。 一、socket通信架构 二、muduo tcp网络架构 话不多说,直接上图 下面,对TCP server和client中用到的主要类进行说明 线程池管理用到的三个类:EventLoopThrea...

2019-04-29 16:14:45

阅读数 38

评论数 0

[多线程] pthread_cond_signal()和pthread_cond_wait()用法解析

pthread_mutex_t count_lock; //互斥量 pthread_cond_t count_nonzero; //条件变量 unsigned count; /* 线程1 */ decrement_count() { pthread_mutex_lock(&a...

2019-04-26 17:08:17

阅读数 24

评论数 0

内存管理函数

一、基本用法 #include <unistd.h> int brk(void *addr); void *sbrk(intptr_t increment); //返回空间地址 brk是系统调用,通过传递的addr来重新设置program break,成功返回0...

2019-04-17 10:29:12

阅读数 79

评论数 0

tcmalloc内存管理

一、前言 1、如何分配定长记录 例如,我们有一个page的内存,大小为4kb,现在要以n个字节为单位进行分配。为了简化问题,就以16字节为单位进行分配。 将4kb的内存划分为16字节的单元,每个单元的前8个字节作为节点指针,指向下一个单元。初始化的时候把所有指针指向下一个单元。 分配时,从链表头...

2019-04-17 10:11:31

阅读数 44

评论数 0

内存分配算法

内存管理中有一个很重要的概念叫内存碎片,内存碎片分为内部碎片和外部碎片,内部碎片是分配器分配的内存大于程序申请的内存。外部碎片是内存块太小,无法分配给程序使用。 1、Freelist Freelist,通过链表,把内存中空闲块连接起来。 分配的时候,找到大小合适的block,把它切分成两块,一...

2019-04-17 09:52:39

阅读数 75

评论数 0

MySQL事务

事务 一、事务的四大特性(ACID) A:atomicity 原子性 C:consistency 一致性 I:isolation 隔离性 D:durability 持久性 原子性:事务是由一个或一组相互关联的SQL语句组成,这些语句被认为是一个不可分割的单元,要么都成功要么都失败。 一致性:对于...

2019-03-29 20:16:12

阅读数 47

评论数 0

MySQL存储引擎:MyISAM存储引擎、InnoDB存储引擎

一、InnoDB存储引擎 1、InnoDB介绍 InnoDB的数据存储在表空间中,表空间是由InnoDB管理的一个黑盒子,由一系列的数据文件组成。 InnoDB可以将每个表的数据和索引存放在单独的文件中。InnoDB采用MVCC来支持高并发,并且实现了四个标准的隔离级别。 二、MyISAM存...

2019-03-28 21:27:10

阅读数 47

评论数 0

MySQL索引

一、索引 1、索引定义 索引是数据库中专门用于帮助用户快速查询数据的一种数据结构。索引需要单独保存在索引文件中。 类似于字典中的目录,查找字典内容时可以根据目录查找到数据的存放位置,然后直接获取即可。 优点:可以提高检索数据的速度 缺点:创建和维护索引需要耗费时间 2、索引分类 (1)普通...

2019-03-28 20:11:07

阅读数 34

评论数 0

C++11生成32位/64位随机数(mt19937)

#include <iostream> #include <chrono> #include <random> int main () { // obtain a seed from the system cl...

2019-03-26 16:46:05

阅读数 94

评论数 0

数据库索引为什么使用B树(B+树)

动态查找树主要包括:二叉搜索树、平衡二叉树、红黑树、B树,通过对树高度的降低可以提升查找效率。 B树定义: 一颗m阶的B树满足下列条件: (1)每个节点至多有m棵子树 (2)除根节点外,其他每个分支节点至少有[m/2]棵子树 (3)根节点至少有两棵子树(除非B树只包含一个节点) (4)所有叶节...

2019-03-25 21:20:43

阅读数 83

评论数 0

epoll分析

一、用户态epoll用法 #include <sys/epoll.h> int epoll_create(int size); // 创建一个epoll的句柄,size用来告诉内核这个监听的数目一共有多大。 // 当创建好epoll句柄后,它就会占...

2019-03-15 20:29:35

阅读数 55

评论数 0

select 和 poll的用法

## select ## 一、用户态select用法 #include <sys/select.h> #include <sys/time.h> int select(int maxfdp1, ...

2019-03-14 21:08:20

阅读数 65

评论数 0

ubuntu安装MYSQL

https://www.cnblogs.com/zhuyp1015/p/3561470.html

2018-11-02 17:05:11

阅读数 25

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭