![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C/C++Linux服务器开发/后台架构师
文章平均质量分 91
攻城狮百里
学无止境
展开
-
c/c++内存机制
a的内容时可以改变的,比如a[0]=‘X’,因为其是在栈上分配的,也就是在运行时确定的内容。C/C++中的函数自动变量就是直接使用栈的例子,这也就是为什么当函数返回时,该函数的自动变量自动失效的原因,因而要避免返回栈内存和栈引用,以免内存泄露。栈是机器系统提供的数据结构,计算机在底层提供支持,分配有专门的堆栈段寄存器,入栈出栈有专门的机器指令,这些都决定了栈的高效率执行。堆得分配总是动态的,虽然程序结束时所有的数据空间都会被释放回系统,但是精确的申请内存/释放内存匹配是良好程序的基本要素。原创 2023-11-06 15:09:13 · 297 阅读 · 0 评论 -
【分布式锁】分布式一致性算法 Raft
在分布式系统中,一致性算法至关重要。在所有一致性算法中,Paxos 最负盛名,它由莱斯利 · 兰伯特(Leslie Lamport)于 1990 年提出,是一种基于消息传递的一致性算法,被认为是类似算法中最有效的。Paxos 算法虽然很有效,但复杂的原理使它实现起来非常困难,截止目前,实现 Paxos 算法的开源软件很少,比较出名的有 Chubby、libpaxos。转载 2023-07-14 14:45:56 · 167 阅读 · 0 评论 -
C++11 多线程并发
并发(concurrency)在生活中随处可见,边走路边说话,边听歌边写代码。计算机术语中的"并发",指的是在单个系统里同时执行多个独立的活动,而不是顺序的一个接一个的执行。对于单核 CPU 来说,在某个时刻只可能处理一个任务,但它却不是完全执行完一个任务再执行一个下一任务,而是一直在任务间切换,每个任务完成一点就去执行下一个任务,看起来就像任务在并行发生,虽然不是严格的同时执行多个任务,但是我们仍然称之为并发。转载 2023-05-17 15:52:40 · 23 阅读 · 0 评论 -
Zookeeper Leader 选举算法
本文首发于http://www.yidooo.net/2014/10/18/zookeeper-leader-election.html 转载请注明出处当Leader崩溃或者Leader失去大多数的Follower,这时候zk进入恢复模式,恢复模式需要重新选举出一个新的Leader,让所有的Server都恢复到一个正确的状态。并且在配置文件中是可配置的,对应的配置项为electionAlg。原创 2023-03-07 22:34:46 · 336 阅读 · 0 评论 -
QUIC协议 接收端状态机
QUIC流的接收端状态机设计还是非常简洁且完备的,虽然看起来要比发送端状态机复杂一些,尤其是有4个条件可以进入初始状态。QUIC接收端状态机与发送端的状态数量是类似的,都是一个初始状态、三个中间状态和两个结束状态,这倒是有助于我们记忆。Recv状态下可以收数据、反馈发送端收数据的ACK、控制发送端的发送速率。Size Known状态下等待数据传送完整。Data Recvd和Data Read分别表明协议层和应用层收到了完整的数据。和Reset Read分别表明协议层和应用层收到了reset事件。转载 2023-02-21 17:05:00 · 337 阅读 · 0 评论 -
TCP、UDP网络编程面试题
TCP/IP即传输控制/网络协议,是面向连接的协议,发送数据前要先建立连接(发送方和接收方的成对的两个之间必须建 立连接),TCP提供可靠的服务,也就是说,通过TCP连接传输的数据不会丢失,没有重复,并且按顺序到达UDP它是属于TCP/IP协议族中的一种。是无连接的协议,发送数据前不需要建立连接,是没有可靠性的协议。因为不需要建立连接所以可以在在网络上以任何可能的路径传输,因此能否到达目的地,到达目的地的时间以及内容的正确性都是不能被保证的。ARP协议完成了IP地址与物理地址的映射。原创 2023-02-11 20:17:28 · 2890 阅读 · 0 评论 -
【Nginx 原理】进程模型、HTTP 连接建立和请求处理过程、高性能、高并发、事件处理模型、模块化体系结构
我们还可以看到,Nginx 和 Windows 以及 Linux 内核的功能紧密的集成在了一起,以便提升性能。“无阻塞(Non-blocking)”指的是它不会由于 CPU 处于忙状态而停止磁盘的 I/O,在这种情况下,它会处理其他事件,直到 I/O 资源得到释放。Nginx 并不会为每一个的 web 请求创建新的进程,相反,管理员可以配置 Nginx 主进程的工作进程的数量(一个常见的做法是为每一个 CPU 配置一个工作进程)。Nginx 以其高性能,稳定性,丰富的功能,简单的配置和低资源消耗而闻名。原创 2022-11-29 22:04:40 · 931 阅读 · 0 评论 -
C++并发多线程 如何理解互斥锁、条件变量、读写锁以及自旋锁?
mutex是睡眠等待(sleep waiting)类型的锁,当线程抢互斥锁失败的时候,线程会陷入休眠。或者通过压测的判断,不过大多数时候我们好像并不需要这么一个pthread的自旋锁,知友们可以提供一些自旋锁的使用参考。读写锁的含义是准确的:是一种 读共享,写独占的锁。并且多线程调用的时候条件变量和互斥量一定要一一对应,不能一个条件变量在不同线程中wait的时候传入不同的互斥量。单看使用方法和使用互斥量的代码是差不多的。所谓加读锁和加写锁,准确的说法可能是『给读写锁加读模式的锁定和加写模式的锁定』。转载 2022-11-22 16:36:19 · 815 阅读 · 0 评论 -
CPP 简单的线程池(一)
std::packaged_task 的实例只是可移动的,而不可复制。std::packaged_task 封装在派生类 Task 中(#6),由指向非泛型的抽象基类 Task_Base 的指针引用派生类对象(#7)。因为每一个任务都是一个特定类型的 std::packaged_task 对象,为了实现任务队列的泛型化,需要设计一个通用的数据结构 Task_Wrapper,用于封装特定类型的 std::packaged_task 对象,(lockwise_shared_pool.h)转载 2022-09-16 20:32:33 · 606 阅读 · 0 评论 -
Linux C/C++开发的难度到底在哪?大厂岗位要求
CC++Linux服务器开发高级架构师 学习提升原创 2022-06-17 15:31:25 · 946 阅读 · 0 评论 -
gRPC C++开发环境搭建
gRPC C++开发环境搭建原创 2022-06-14 16:51:32 · 1077 阅读 · 0 评论 -
LinuxC 服务器开发 高并发服务器-多进程并发服务器
原文地址:https://www.cnblogs.com/xuejiale/p/10849095.html高并发服务器一、多进程并发服务器1. 实现示意图2. 使用多进程并发服务器时要考虑以下几点:父进程最大文件描述个数(父进程中需要close关闭accept返回的新文件描述符)系统内创建进程个数(与内存大小相关)进程创建过多是否降低整体服务性能(进程调度)3. 使用多进程的方式, 解决服务器处理多连接的问题:**(1)共享读时共享, 写时复制文件描述符内存映射区 – mm转载 2022-05-26 21:35:06 · 352 阅读 · 1 评论 -
C/C++Linux服务器开发岗位学习指南(经典面试题+技术提纲)细节拉满
经典面试题1.求下面函数的返回值(微软)int func(x){int countx = 0;while(x){countx ++;x = x&(x-l);}return countx;}假定x = 9999 答案:8思路:将x转化为2进制,看含有的1的个数。2.什么是’‘引用"?申明和使用’'引用“要注意哪些问题?答:引用就是某个目标变量的’'别名"(alias),对应用的操作与对变量直接操作效果完全相同。申明一个引用的时候,切记要对其进行 初始化。引用声明完毕后,原创 2022-05-14 16:21:31 · 497 阅读 · 1 评论 -
skynet设计原理
skynet是一个轻量级的游戏服务器框架;实现了actor的并发模型;可以基于skynet框架去实现业务。多核并发编程多线程在一个进程中开启多线程,为了充分利用多核,一般设置工作线程的个数为 cpu 的核心数;memcached 就是采用这种方式;多线程在一个进程当中,所以数据共享来自进程当中的内存;这里会涉及到很多临界资源的访问,所以需要考虑加锁;多进程在一台机器当中,开启多个进程充分利用多核,一般设置工作进程的个数为 cpu 的核心数;nginx 就是采用这种方式;CSP以 go 语转载 2022-03-02 20:01:19 · 367 阅读 · 0 评论 -
Linux 时钟中断详解
在Linux的0号中断是一个定时器中断。在固定的时间间隔都发生一次中断,也是说每秒发生该中断的频率都是固定的。该频率是常量HZ,该值一般是在100 ~ 1000之间。该中断的作用是为了定时更新系统日期和时间,使系统时间不断地得到跳转。另外该中断的中断处理函数除了更新系统时间外,还需要更新本地CPU统计数。指的是调用scheduler_tick递减进程的时间片,若进程的时间片递减到0,进程则被调度出去而放弃CPU使用权。时钟中断的产生Linux的OS时钟的物理产生原因是可编程定时/计数器产生的输出脉冲,这原创 2022-02-17 22:24:00 · 3612 阅读 · 0 评论 -
后端面试知识点总结 操作系统篇(一)
1. 进程和线程进程是一组线程的集合,进程是系统分配资源的基本单位,如PCB, 虚拟地址空间,创建页表,维护映射,把硬盘的代码数据加载到内存,文件描述符等。linux下线程用进程PCB模拟描述,也叫轻量级进程,是CPU调度的基本单位。进程和线程的区别进程是一组线程的集合,进程是系统分配资源的基本单位,如PCB,虚拟地址空间,创建页表,维护映射,把硬盘的代码数据加载到内存,文件描述符等。linux下线程用进程PCB模拟描述,也叫轻量级进程,是CPU调度的基本单位。创建销毁线程要比创建销毁进程成本低原创 2022-02-09 20:33:30 · 752 阅读 · 0 评论 -
决战2022年春招,C++后端开发岗 大厂常考技术点解析
最近看到了这样一个热搜:2022年C++开发人员异常难招,怎么破?总结了一下各位高赞的回答,整体是有如下几个观点:c++门槛高,开的薪选太低了。c++的部分岗位普遍薪资偏低,工作量大且技术单一。比如嵌入式,QT/MFC界面开发等,很难体现出c++的语言优势(高性能、并发、模板元编程、技术栈完备等)c++的功能性开发正在被其他语言侵占。比如Java、golang、python,而且更易上手,岗位更多。那么对于即将毕业的应届生来说,c++还是不是一个比较好的选择?我们从提问者的角度原创 2022-01-15 17:04:02 · 772 阅读 · 0 评论 -
从业五年后转行C++后端开发(13K到28K),给刚毕业或者想转行的朋友们一些建议
做出转行的决定对我来说其实还是很艰难的。到我辞去上一份嵌入式的工作,我毕业已经五年了,从初入社会的5K到上份工作的13K,用了五年的时间,可能很多人觉得不可思议,但确实是事实。不过还好这一次的试错还算是成功的。今天我就根据我自己的经验和大家分享一下关于我对转行C/C++后端开发的一些看法。其实刚毕业的时候并不清楚什么是传统行业和互联网行业,只是因为自己学的是通信专业,后面就随便在嵌入式这个行业一直做。后面的市场行情相信大家都知道,你可能做3年甚至更长的时间,你的薪资水平还不如互联网行业应届生的白菜价,这个原创 2022-01-13 21:47:50 · 1170 阅读 · 0 评论 -
人手一个的 http web 服务器,如何做的与众不同(C++后台开发)
C++后台开发,人手一个的http web服务器,如何做的与众不同为什么http web服务器受欢迎post,get请求以外,还需要支持mp4, pdf网路层epoll,reactor外,引入协程加上业务场景,引入mysql,rediscgi为web服务器实现动态接口性能测试,参数化描述自己的项目C++后台开发,人手一个的 http web 服务器,如何做的与众不同 C++后台开发,人手一个的 http w原创 2022-01-13 20:52:12 · 659 阅读 · 0 评论 -
即时通讯的技术选型与架构设计(LinuxC/C++服务器开发/架构师学习)
即时通讯的技术选型与架构设计1. 网络接入层方案差异2. 逻辑层协议解析,proto,xmpp,mqtt3. web网页 websocket4. 数据库mysql,缓存redis内容:即时通讯场景的方案对比 网络接入层(多线程epoll,多进程epoll,协程),逻辑协议层(文件传输,位置共享,资讯信息,群聊)课程地址:https://ke.qq.com/course/417774?flowToken=1031343原创 2022-01-10 19:56:39 · 1724 阅读 · 0 评论 -
如何用100行C++代码实现内存池
内存池 是 池化技术 的一种,通过池化,可以有效地减少资源对象创建的次数,提高程序运行的性能。庞杂的内存问题,如何理出自己的思路出来一、 内存池简介1.1 基本概念由上图,我们可以了解内存池的大概思想在于:如果不使用内存池,用户程序是直接向操作系统申请内存的如果使用内存池,用户程序会先询问内存池能不能够分配所申请的内存大小,如果不能则会先向操作系统申请内存到内存池,再由内存池间接返回内存给用户程序综上,内存池的实现主要是为了 避免 用户程序频繁的直接向操作系统申请内存而造成的 大量的系统转载 2021-12-29 21:00:54 · 264 阅读 · 0 评论 -
后端开发需要掌握的Linux技能树(LinuxC/C++)
一、前言作为一名后端开发必须掌握的Linux基础。分为Linux概述基本的Linux命令文件查看vim介绍账号管理用户组管理磁盘管理进程管理软件的安装二、Linux简介2.1 概述Linux 内核最初只是由芬兰人林纳斯·托瓦兹(Linus Torvalds)在赫尔辛基大学上学时出于个人爱好而编写的。Linux 是一套免费使用和自由传播的类 Unix 操作系统,是一个基于 POSIX(可移植操作系统接口) 和 UNIX 的多用户、多任务、支持多线程和多 CPU 的操作系统。L原创 2021-12-21 17:38:47 · 2935 阅读 · 0 评论 -
协程如何使用?与线程使用有何区别?
协程如何使用?与线程使用有何区别?在做网络IO编程的时候,有一个非常理想的情况,就是每次accept返回的时候,就为新来的客户端分配一个线程,这样一个客户端对应一个线程。就不会有多个线程共用一个sockfd。每请求每线程的方式,并且代码逻辑非常易读。但是这只是理想,线程创建代价,调度代价就呵呵了。先来看一下每请求每线程的代码如下:while(1) { socklen_t len = sizeof(struct sockaddr_in); int clientfd = accept(sockf原创 2021-12-16 14:39:00 · 1122 阅读 · 1 评论 -
Linux后台开发 高级IO(select、poll、epoll)详解
如果有多个IO需要处理当一个描述符读,然后又写到另一个描述符时,可以用循环的方式访问阻塞io:#include <stdio.h>#include <unistd.h>#define BUF_SIZE 128int main(){ char buf[BUF_SIZE]; int n; while ( n = read(STDIN_FILENO, buf, BUF_SIZE) > 0) { if (write(STDOUT_FILENO, bu原创 2021-12-11 21:01:19 · 786 阅读 · 0 评论 -
FFmpeg/WebRTC/RTMP/RTSP/HLS/播放器-音视频流媒体高级开发【零声学院】
FFmpeg/WebRTC/RTMP/RTSP/HLS/播放器-音视频流媒体高级开发 学习链接:https://pan.baidu.com/s/15w3u1JPZv7YhPZshWBuVCQ提取码:p8x4学习资料、视频教程获取01音视频基础【录播】0-音视频开发高级课程简介(22分钟) 免费试学【录播】1-1_音视频录制原理(9分钟)【录播】1-2__音视频播放原理(3分钟)【录播】1-3__图像表示RGB-YUVV(13分钟)【录播】1-4__视频主要概念(12分钟)【录播】1-5-原创 2021-12-09 21:43:15 · 3343 阅读 · 0 评论 -
【零声教育】C/C++Linux服务器开发/高级架构师 课程
随着去年年底的疫情,很多线下的学习都变成了网课的形式,各种付费学习也萌生出来,很多决定要报名付费网课例如零声学院C/C++linux后台服务器高级架构师的程序员,报名之前总会问我这样一个问题,除了视频学习这些技术层面的我还可以得到什么提升?我也是就这个经常被问到的问题总结了一下,除了高质量的课程和系统的大纲体系优秀的讲师团队,以零声学院为例,培训C/C++linux后台服务器高级架构师他们还会:1.不定时请百万年薪大佬做职业分享。蚂蚁金服,中兴通讯,创业大佬,斗鱼等职场大佬,分享自己对技术,对产品,对原创 2021-12-08 20:39:09 · 4529 阅读 · 1 评论 -
面试必问的C++11新特性代码实践
【免费技术直播分享】面试必问的C++11新特性代码实践1.通过线程池组件掌握C++11新特性3.如何实现多参数任务的支持4.如何等待任务执行返回结果5.C++20都出来了,别再说自己不懂C++11了上课讲师:darren老师上课地址:https://ke.qq.com/course/417774?flowToken=1031343面试必问的C++11新特性代码实践 讲解 面试必问的C++11新特性代码实践 |原创 2021-12-01 20:48:45 · 241 阅读 · 0 评论 -
MongoDB分片(Sharding)技术
C/C++Linux服务器开发/后台架构师知识体系整理分片(sharding)是 MongoDB 用来将大型集合分割到不同服务器(或者说一个集群)上所采用的方法。尽管分片起源于关系型数据库分区,但 MongoDB 分片完全又是另一回事。和 MySQL 分区方案相比,MongoDB 的最大区别在于它几乎能自动完成所有事情,只要告诉 MongoDB 要分配数据,它就能自动维护数据在不同服务器之间的均衡。1. MongoDB分片介绍1.1 分片的目的高数据量和吞吐量的数据库应用会对单机的性能造成较大压力原创 2021-11-29 16:59:19 · 5588 阅读 · 1 评论 -
MongoDB 分片集群技术
C/C++Linux服务器开发/后台架构师知识体系整理1. MongoDB复制集简介一组 Mongodb 复制集,就是一组 mongod 进程,这些进程维护同一个数据集合。复制集提供了数据冗余和高等级的可靠性,这是生产部署的基础。1.1 复制集的目的保证数据在生产部署时的冗余和可靠性,通过在不同的机器上保存副本来保证数据的不会因为单点损坏而丢失。能够随时应对数据丢失、机器损坏带来的风险。换一句话来说,还能提高读取能力,用户的读取服务器和写入服务器在不同的地方,而且,由不同的服务器为不同的用户提供服原创 2021-11-29 16:25:57 · 527 阅读 · 0 评论 -
Nginx slab 分配机制
C/C++Linux服务器开发/后台架构师知识体系1、引言众所周知,操作系统使用伙伴系统管理内存,不仅会造成大量的内存碎片,同时处理效率也较低下。SLAB是一种内存管理机制,其拥有较高的处理效率,同时也有效的避免内存碎片的产生,其核心思想是预分配。其按照SIZE对内存进行分类管理的,当申请一块大小为SIZE的内存时,分配器就从SIZE集合中分配一个内存块(BLOCK)出去,当释放一个大小为SIZE的内存时,则将该内存块放回到原有集合,而不是释放给操作系统。当又要申请相同大小的内存时,可以复用之前被回收的转载 2021-11-02 20:43:01 · 302 阅读 · 0 评论 -
Nginx进程间的通信
C/C++Linux服务器开发/后台架构师知识体系进程间消息传递共享内存共享内存还是Linux下提供的最主要的进程间通信方式,它通过mmap和shmget系统调用在内存中创建了一块连续的线性地址空间,而通过munmap或者shmdt系统调用可以释放这块内存。使用共享内存的优点是当多个进程使用同一块共享内存时,在不论什么一个进程改动了共享内存中的内容后,其它进程通过訪问这段共享内存都可以得到改动后的内容。Nginx定义了ngx_shm_t结构体。用于描写叙述一块共享内存,typedef struct原创 2021-10-28 16:56:52 · 711 阅读 · 0 评论 -
Nginx 反向代理详解
反向代理(Reverse Proxy)方式是指以代理服务器来接受Internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给Internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器。什么是反向代理反向代理(Reverse Proxy)方式是指以代理服务器来接受Internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给Internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器。有反向代理,当然也存在正转载 2021-10-26 21:22:45 · 64082 阅读 · 6 评论 -
Redis主从同步原理
主从架构主从架构设计的思路大概如下:只有一台主服务器,只负责写入数据,不负责读取数据。多台从服务器,不写入数据,只负责同步主服务器的数据,提供外部程序读取。主服务器写入数据后,将命令发送到从服务器,使主从数据同步。应用程序可以读取某一台从服务器的数据,负载均衡。当某些从服务器瘫痪时,系统影响不大。当主服务器瘫痪时,选举某一台从服务器成为主服务器Redis主从同步图中左边的流程是主服务器,而右边的流程为从服务器。无论如何要先保证主服务器的开启,开启主服务器后,从服务器通过命令或者重启原创 2021-10-14 16:58:20 · 330 阅读 · 0 评论 -
C/C++服务器开发/后端开发 学习、面试总结 经验分享
C/C++发展方向后台/服务器桌面客户端图形学/游戏/VR/AR测试开发网络安全/逆向嵌入式/物联网音视频/流媒体/SDK计算机视觉/机器学习什么是后端/后台/服务器开发?经常在各大公司招聘上看到后端、后台、服务器开发等等,有些同学经常被这些名词搞混。其实这些名词都是相近的,但是也有点区别,这里说说我的理解:首先一般公司分为前端和后端,前端就是和用户打交道的,负责用良好的视觉效果将数据呈现给用户,广义的前端包括客户端(安卓、IOS)、Web前端、小程序等。而与之对应的后端则是负原创 2021-10-12 20:21:21 · 5003 阅读 · 2 评论 -
MySQL分表时机
C/C++Linux服务器开发/后台架构师知识体系整理以交友平台用户中心的user表为例,单表数据规模达到千万级别时,你可能会发现使用用户筛选功能查询用户变得非常非常慢,明明查询命中了索引,但是,部分查询还是很慢,这时候,我们就需要考虑拆分这张user表了。如果此时,我们才去做分表,可能已经太晚了,为什么呢?我以最典型的应用场景:用户筛选功能,以查询年龄在18到24岁的100位女性用户为例:在单表的情况下,我们的SQL是这么写的:SELECT * FROM user WHERE age >=转载 2021-09-28 17:20:39 · 311 阅读 · 0 评论 -
Redis 数据类型及应用场景
C/C++Linux服务器开发/后台架构师Redis 数据类型及应用场景一、 redis 特点二、 设计 Redis Key分段设计法三、 String数据类型的应用场景1. 简介2. 数据模型3. 应用场景四、hash 数据类型的应用场景1. 简介2. 数据模型3. 应用场景五、list 数据类型的应用场景1. 简介2. 数据模型3. 应用场景4.优化建议六、set 数据类型的应用场景1. 简介2. 数据模型3. 应用场景1. “共同好友列表”七、sorted set 数据类型的应用场景1.简介2.应用原创 2021-09-22 20:25:23 · 249 阅读 · 0 评论 -
Redis主从复制的功能及实现原理
C/C++Linux服务器开发/后台架构师Redis主从复制Redis作为一个内存数据库主从复制过程:Redis的数据同步过程:关于部分复制有以下几点说明:Redis主从复制会存在以下问题:哨兵的功能哨兵的原理Redis是C语言开发的一个开源的(遵从BSD协议)高性能键值对(key-value)的内存数据库,可以用作数据库、缓存、消息中间件等。它是一种NoSQL(not-only sql,泛指非关系型数据库)的数据库。Redis作为一个内存数据库1、性能优秀,数据在内存中,读写速度非常快,支持并发1转载 2021-09-22 15:56:32 · 270 阅读 · 0 评论 -
redis原理分析
C/C++Linux服务器开发/后台架构师知识体系Redis是什么Key-Value形式的NoSQL存储系统内存数据库redis单点吞吐量单点TPS达到8万/秒,QPS达到10万/秒。redis的5种存储类型string、list、set、map(hash)、stored-setredis的string类型能表达3种类型:字符串、整数和浮点数。根据场景相互间自动转型,并且根据需要选取底层的承载方式value内部以int、sds作为结构存储。int存放整型数据,sds存原创 2021-08-31 16:55:54 · 250 阅读 · 0 评论 -
Redis相关命令详解
相关命令详解1 常用命令keys * :获取所有的keysselect 0 :选择第一个库move key dbindex :将当前的key移动到某个数据库,目标库有,则不能移动 。flushdb :清除数据库 randomkey :从当前数据库随机返回type key :查看key的类型del key :删除key exists key 判断是否存在key expire key 10 :10秒过期ttl key :查看还有多少秒过期 ,-1表示永不过期,-2表示已经过期pe转载 2021-08-28 16:25:53 · 205 阅读 · 0 评论 -
事件驱动库 libev 使用详解
C/C++Linux服务器开发/后台架构师知识体系libev 是一个通过 C 语言编写的,高性能的事件循环库,支持多种事件类型,与此类似的事件循环库还有 libevent、libubox 等,在此详细介绍下 libev 相关的内容。简介这是一个简单而且高性能的事件库,支持常规的 IO、定时器等事件,而且没有任何依赖,同时支持多线程模式。关于 libev 详见官网 http://software.schmorp.de (国内会被墙),其帮助文档可以参考 官方文档,安装完之后,可通过 man 3 ev原创 2021-08-26 15:56:45 · 6302 阅读 · 0 评论