自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(24)
  • 收藏
  • 关注

原创 云风skynet-如何用skynet手撕万人同时在线游戏丨actor模型详解

如何用skynet手撕万人同时在线游戏1.多核并发编程2.actor模型详解3.游戏实现视频讲解如下,点击观看:云风skynet-如何用skynet手撕万人同时在线游戏丨actor模型详解C/C++Linux服务器开发精彩内容包括:C/C++,Linux,Nginx,ZeroMQ,MySQL,Redis,MongoDB,ZK,流媒体,P2P,Linux内核,Docker,TCP/IP,协程,DPDK多个高级知识点分享。学习视频链接点击:C/C++Linux服务器开发/Li...

2021-02-27 15:24:28 367 2

原创 服务器开发必备-【数据库】Redis集群篇

哨兵模式背景当主服务器宕机后,需要手动把一台从服务器切换为主服务器,这就需要人工干预,费事费力,还会造成一段时间内服务不可用。这不是一种推荐的方式,更多时候,我们优先考虑哨兵模式。定义Sentinel(哨兵)是Redis 的高可用性解决方案:由一个或多个Sentinel 实例 组成的Sentinel 系统可以监视任意多个主服务器,以及这些主服务器属下的所有从服务器,并在被监视的主服务器进入下线状态时,自动将下线主服务器属下的某个从服务器升级为新的主服务器。实...

2021-02-27 15:19:19 189 1

原创 作为C++后端开发程序员,应该彻底理解Epoll实现原理

这篇文章读不懂的没关系,可以先收藏一下。当然,这些核心思想,也会在之后的文章中慢慢做详细讲解,欢迎关注。文章如果实在是没有看懂,可以回头来看看这个视频讲解:epoll原理剖析epoll是Linux平台下的一种特有的多路复用IO实现方式,与传统的select相比,epoll在性能上有很大的提升。本文主要讲解epoll的实现原理,而对于epoll的使用可以参考相关的书籍或文章。epoll 的创建要使用epoll首先需要调用epoll_create()函数创建一个ep...

2021-02-26 15:42:57 673

原创 从nginx“惊群”问题来看高并发锁的方案

从nginx“惊群”问题来看高并发锁的方案1.惊群的现象与原因2.互斥锁/自旋锁3.原子操作CAS的实现视频讲解如下,点击观看:从nginx“惊群”问题来看高并发锁的方案丨零声学院官方推广视频C/C++Linux服务器开发精彩内容包括:C/C++,Linux,Nginx,ZeroMQ,MySQL,Redis,MongoDB,ZK,流媒体,P2P,Linux内核,Docker,TCP/IP,协程,DPDK多个高级知识点分享。点击链接订阅后直接观看:C/C++Linux服务器开...

2021-02-26 14:12:51 171 1

原创 协程的原理和应用,C++现实协程

协程的原理协程(coroutine)跟具有操作系统概念的线程不一样,实际上协程就是类函数一样的程序组件,你可以在一个线程里面轻松创建数十万个协程,就像数十万次函数调用一样。只不过函数只有一个调用入口起始点,返回之后就结束了,而协程入口既可以是起始点,又可以从上一个返回点继续执行,也就是说协程之间可以通过 yield 方式转移执行权,对称(symmetric)、平级地调用对方,而不是像函数那样上下级调用关系。当然 协程也可以模拟函数那样实现上下级调用关系,这就叫非对称协程(asymmetric corou

2021-02-25 16:08:30 460

原创 Linux内核设计与实现

一. linux内核简介1. linux简介1.1 unix的特点unix很简洁,仅提供几百个系统调用,并有非常明确的设计目的 unix所有东西都当作文件对待,这种抽象使对数据和设备都通过一套相同的系统调用接口进行 内核用C语言编写,移植能力很强 进程创建迅速,独特的fork调用 提供了简洁但是稳定的进程间通讯原语1.2 unix和linuxlinux克隆unix,但不是unix linux借鉴了unix很多的设计,并且实现了 unix的api linux没有直接使用unix的

2021-02-24 16:09:05 1898 1

原创 C++后台开发,以我之见

今天趁着过完春节快要回公司工作之际,也马上进入金三银四的时期,谈谈我个人对后台开发的一些个人见解,希望能够对在校的学生或者刚刚接触C++后台开发的同学有点帮助。 还记得自己在学校的时候,一直都比较注重的是:编程语言+数据结构与算法。没错,对于一个在校的计算机专业的学生,这是很重要的方面。但是,这往往不够,或许是因为毕业前一直没有进入企业实习,以至于自己在毕业之前,对自己未来的职业规划做得很不够,不知道自己以后会做什么方向,那时候比较宽泛且迷茫的定位是,只要是软件开发的工作,我都OK。毕...

2021-02-23 16:19:12 497 2

原创 一个很重要但很多人不理解的技术,P2P丨网络穿透与NAT原理分析

一个很重要但很多人不理解的技术,p2p1.NAT原理2.Nat类型2.网络穿透原理视频讲解如下,点击观看:一个很重要但很多人不理解的技术,P2P丨网络穿透与NAT原理分析丨零声学院官方推广视频C/C++Linux服务器开发精彩内容包括:C/C++,Linux,Nginx,ZeroMQ,MySQL,Redis,MongoDB,ZK,流媒体,P2P,Linux内核,Docker,TCP/IP,协程,DPDK多个高级知识点分享。点击链接订阅后直接观看:C/C++Linux服务器...

2021-02-23 15:04:01 194 1

原创 Linux内核OOM机制的详细分析

Linux内核根据应用程序的要求分配内存,通常来说应用程序分配了内存但是并没有实际全部使用,为了提高性能,这部分没用的内存可以留作它用,这部分内存是属于每个进程的,内核直接回收利用的话比较麻烦,所以内核采用一种过度分配内存(over-commit memory)的办法来间接利用这部分“空闲”的内存,提高整体内存的使用效率。一般来说这样做没有问题,但当大多数应用程序都消耗完自己的内存的时候麻烦就来了,因为这些应用程序的内存需求加起来超出了物理内存(包括swap)的容量,内核(OOM killer)必须杀掉一些

2021-02-22 16:34:47 560

原创 让服务器底层性能飞起,异步,不一样的感觉

让服务器底层性能飞起,异步,不一样的感觉1.异步的原理2.服务器响应的异步优化3.客户端请求的异步优化视频讲解如下,点击观看:让服务器底层性能飞起,异步,不一样的感觉丨零声学院官方推广视频C/C++Linux服务器开发精彩内容包括:C/C++,Linux,Nginx,ZeroMQ,MySQL,Redis,MongoDB,ZK,流媒体,P2P,Linux内核,Docker,TCP/IP,协程,DPDK多个高级知识点分享。点击链接订阅后直接观看:C/C++Linux服务器开发...

2021-02-20 15:46:19 86 1

原创 深入浅出 TCP/IP 协议栈丨手写代码实现网络协议栈

TCP/IP 协议栈是一系列网络协议的总和,是构成网络通信的核心骨架,它定义了电子设备如何连入因特网,以及数据如何在它们之间进行传输。TCP/IP 协议采用4层结构,分别是应用层、传输层、网络层和链路层,每一层都呼叫它的下一层所提供的协议来完成自己的需求。由于我们大部分时间都工作在应用层,下层的事情不用我们操心;其次网络协议体系本身就很复杂庞大,入门门槛高,因此很难搞清楚TCP/IP的工作原理,通俗一点讲就是,一个主机的数据要经过哪些过程才能发送到对方的主机上。 接下来,我们就来探索一下这个过程。这里分

2021-02-20 15:41:14 3240

原创 16w行的nginx源码,如何才能读懂呢?全面分析nginx的机制

16w行的nginx源码,如何才能读懂呢?全面分析nginx的机制1. nginx的轮子组成2. nginx的epoll实现机制3. nginx的内存机制视频讲解如下,点击观看:16w行的nginx源码,如何才能读懂呢?全面分析nginx的机制丨零声学院官方推广视频C/C++Linux服务器开发精彩内容包括:C/C++,Linux,Nginx,ZeroMQ,MySQL,Redis,MongoDB,ZK,流媒体,P2P,Linux内核,Docker,TCP/IP,协程,DPDK多个高级知

2021-02-19 16:09:24 711

原创 epoll原理剖析以及reactor模型应用

epoll原理剖析以及reactor模型应用1. epoll原理剖析2. 单reactor原理以及应用3. 多reactor原理以及应用视频讲解如下,点击观看:epoll原理剖析以及reactor模型应用丨零声学院官方推广视频分享C/C++Linux服务器开发精彩内容包括:C/C++,Linux,Nginx,ZeroMQ,MySQL,Redis,MongoDB,ZK,流媒体,P2P,Linux内核,Docker,TCP/IP,协程,DPDK多个高级知识点分享。点击链接订阅后直接..

2021-02-19 16:07:34 256

原创 FFmpeg 学习:FFmpeg 学习整理总结

一、FFmpeg 播放视频的基本流程整理播放流程: video.avi(Container) -> 打开得到 Video_Stream -> 读取Packet -> 解析到 Frame -> 显示Frame。 Container:在音视频中的容器,一般指的是一种特定的文件格式(如 AVI/QT ),里面指明了所包含的音视频,字幕等相关信息。 Stream:媒体流,指时间轴上的一段连续数据,如一段声音、视频或字幕数据。 Packet:Stream中的Raw

2021-02-19 15:26:24 1229

原创 支撑互联网的基石 tcp/ip,5个方面全面解析

支撑互联网的基石 tcp/ip,5个方面全面解析1. tcp posix api编程分析2. tcp状态迁移图3. 滑动窗口,慢启动,拥塞控制视频讲解如下,点击观看:春节祝福,特别奉献,支撑互联网的基石 tcpip丨零声学院官方推广视频C/C++Linux服务器开发精彩内容包括:C/C++,Linux,Nginx,ZeroMQ,MySQL,Redis,MongoDB,ZK,流媒体,P2P,Linux内核,Docker,TCP/IP,协程,DPDK多个高级知识点分享。点击链接订阅后直

2021-02-19 14:32:05 144 1

原创 mark-手把手带你看redis,skynet网络模块实现

mark-手把手带你看redis,skynet网络模块实现视频讲解如下,点击观看:mark-手把手带你看redis,skynet网络模块实现丨零声学院官方推广视频C/C++Linux服务器开发精彩内容包括:C/C++,Linux,Nginx,ZeroMQ,MySQL,Redis,MongoDB,ZK,流媒体,P2P,Linux内核,Docker,TCP/IP,协程,DPDK多个高级知识点分享。点击链接订阅后直接观看:C/C++Linux服务器开发/Linux后台架构师-学习视频Linu

2021-02-19 14:25:13 217 1

原创 redis源码分析——内存布局

1. 介绍众所周知,redis是一个开源、短小、高效的key-value存储系统,相对于memcached,redis能够支持更加丰富的数据结构,包括:字符串(string) 哈希表(map) 列表(list) 集合(set) 有序集(zset)主流的key-value存储系统,都是在系统内部维护一个hash表,因为对hash表的操作时间复杂度为O(1)。如果数据增加以后,导致冲突严重,时间复杂度增加,则可以对hash表进行rehash,以此来保证操作的常量时间复杂度。那么,对于这样一

2021-02-18 19:50:54 254

原创 聊聊Mysql索引和redis跳表

聊聊Mysql索引和redis跳表 ---redis的有序集合zset数据结构底层采用了跳表原理 时间复杂度O(logn)(阿里)redis使用跳表不用B+数的原因是:redis是内存数据库,而B+树纯粹是为了mysql这种IO数据库准备的。B+树的每个节点的数量都是一个mysql分区页的大小(阿里面试)敲黑板:每级遍历 3 个结点即可,而跳表的高度为 h ,所以每次查找一个结点时,需要遍历的结点数为 3*跳表高度 ,所以忽略低阶项和系数后的时间复杂度就是 ○(㏒n),空间复杂度是O(n)

2021-02-04 15:59:45 3084 5

原创 多维度详解redis以及原理实现,结构与应用分析

6个方面了解redis应用及其实现原理1.redis数据存储概述2.string结构以及应用3.list结构以及应用4.hash结构以及应用5.set结构以及应用6.zset结构以及应用视频讲解如下,点击观看:技术精讲丨多维度详解redis以及原理实现,结构与应用分析丨零声学院官方推广视频分享ZeroMQ,MySQL,Redis,MongoDB,ZK,流媒体,P2P,Linux内核,Docker,TCP/IP,协程,DPDK多个高级知识点分享。点击链接订阅后直接观看:C/..

2021-02-04 15:03:48 220 1

原创 客户端开发和服务器端开发哪个有前途?自学跟培训的区别?

客户端(Client)或称为用户端,是指与服务器相对应,为客户提供本地服务的程序。除了一些只在本地运行的应用程序之外,一般安装在普通的客户机上,需要与服务端互相配合运行 。因特网发展以后,较常用的用户端包括了如万维网使用的网页浏览器,收寄电子邮件时的电子邮件客户端,以及即时通讯的客户端软件等。对于这一类应用程序,需要网络中有相应的服务器和服务程序来提供相应的服务,如数据库服务,电子邮件服务等等,这样在客户机和服务器端,需要建立特定的通信连接,来保证应用程序的正常运行服务器端应用非常广泛,可以用来搭建 W

2021-02-03 16:23:10 4114 8

原创 【红黑树】的详细实现(C++)附代码

红黑树的介绍红黑树(Red-Black Tree,简称R-B Tree),它一种特殊的二叉查找树。红黑树是特殊的二叉查找树,意味着它满足二叉查找树的特征:任意一个节点所包含的键值,大于等于左孩子的键值,小于等于右孩子的键值。除了具备该特性之外,红黑树还包括许多额外的信息。红黑树的每个节点上都有存储位表示节点的颜色,颜色是红(Red)或黑(Black)。红黑树一棵在每个结点上增加了一个存储位来表示结点颜色(红色RED或黑色BLACK)的二叉搜索树。二叉搜索树简单的说就是:对树中任何结点x,其左

2021-02-02 16:43:41 2323 4

原创 技术精讲丨多线程环境下时间轮-海量定时任务的定时器设计

多线程环境下海量定时任务处理-定时器设计1.定时器设计2.红黑树、最小堆以及跳表的实现对比3.时间轮的实现视频讲解如下,点击观看:技术精讲丨多线程环境下时间轮-海量定时任务的定时器设计丨零声学院官方推广视频分享C/C++Linux服务器开发精彩内容包括:C/C++,Linux,Nginx,ZeroMQ,MySQL,Redis,MongoDB,ZK,流媒体,P2P,Linux内核,Docker,TCP/IP,协程,DPDK多个高级知识点分享。点击链接订阅后直接观看:C...

2021-02-02 15:00:45 469 2

原创 现场解析服务化 即时通讯方案丨网络协议,应用层协议的选择

90分钟解析服务化即时通讯方案,(不要错过)1.网络协议选择udp/tcp2.应用层协议选择protobuf/xmpp/mqtt3.数据库表的设计视频讲解如下,点击观看:【Linux服务器开发系列】现场解析服务化 即时通讯方案丨网络协议,应用层协议的选择丨零声学院视频分享C/C++Linux服务器开发精彩内容包括:C/C++,Linux,Nginx,ZeroMQ,MySQL,Redis,MongoDB,ZK,流媒体,P2P,Linux内核,Docker,TCP/IP,协...

2021-02-01 19:46:54 174

原创 异步编程:使用线程池管理线程

开始《异步编程:使用线程池管理线程》示例程序:异步编程:使用线程池管理线程.rar如今的应用程序越来越复杂,我们常常需要使用《异步编程:线程概述及使用》中提到的多线程技术来提高应用程序的响应速度。这时我们频繁的创建和销毁线程来让应用程序快速响应操作,这频繁的创建和销毁无疑会降低应用程序性能,我们可以引入缓存机制解决这个问题,此缓存机制需要解决如:缓存的大小问题、排队执行任务、调度空闲线程、按需创建新线程及销毁多余空闲线程……如今微软已经为我们提供了现成的缓存机制:线程池线程池源自于对象池,在详细

2021-02-01 16:45:18 1138 3

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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