- 博客(543)
- 资源 (14)
- 收藏
- 关注
原创 IM TeamTalk流程分析
登陆流程:1.用户名密码校验30分钟内密码错误次数,hash_map<string, list<uint32_t> > g_hmLimits;用list保存每次错误的时间,每次触发登陆的时候将超过30分钟的给剔除。 判断30分钟内密码错误次数是否大于10,返回。抽象接口class CLoginStrategy{public: virtual bool doLogin(const std::string& strName, const std::st...
2022-05-31 17:56:30
398
原创 LeetCode 208 Trie
class Trie {public: /** Initialize your data structure here. */ struct NODE { char l; bool wordFinish; struct NODE* next[26]; }; struct NODE* root; Trie() { root = new struct NODE(); } /** Inserts a word into the trie. */ void insert(s.
2022-05-04 15:41:46
313
转载 非抢占式优先级调度算法
Priority schedulingis a type of scheduling algorithm used by the operating system to schedule the processes for execution. Thepriority schedulinghas both the preemptive mode of scheduling and the non-preemptive mode of scheduling. Here,we will discuss ...
2022-01-12 09:51:13
14613
2
原创 MySQL练习Monthly
use mysql;drop table if EXISTS Student;create table Student(Sid varchar(10),Sname nvarchar(10),Sage datetime,Ssex nvarchar(10));insert into Student values('01' , '赵雷' , '1990-01-01' , '男');insert into Student values('02' , '钱电' , '1990-12-21' , '男');.
2021-08-22 11:07:19
183
转载 zookeeper kafka
zookeeper环境搭建https://www.cnblogs.com/ysocean/p/9860529.html
2021-08-09 15:44:11
177
转载 优先级反转问题及解决方法
(1)什么是优先级反转简单从字面上来说,就是低优先级的任务先于高优先级的任务执行了,优先级搞反了。那在什么情况下会生这种情况呢?假设三个任务准备执行,A,B,C,优先级依次是A>B>C;首先:C处于运行状态,获得CPU正在执行,同时占有了某种资源;其次:A进入就绪状态,因为优先级比C高,所以获得CPU,A转为运行状态;C进入就绪状态;第三:执行过程中需要使用资源,而这个资源又被等待中的C占有的,于是A进入阻塞状态,C回到运行状态;第四:此时B进入就绪状态,因为优先级比C高,
2021-07-20 21:45:35
2778
1
转载 线程的查看以及利用gdb调试多线程
https://blog.csdn.net/zhangye3017/article/details/80382496
2021-07-07 16:01:47
229
转载 LVS+KeepAlived+Nginx高可用实现方案
https://lupengfei.blog.csdn.net/article/details/86514445?utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-2.control&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogComme
2021-07-06 15:47:56
181
转载 haproxy+keepalived高可用负载均衡构建。
haproxy是一个开源的,高性能的,负载均衡软件,借助haproxy可以快速,可靠的构建一个负载均衡群集。优点如下:可靠性和稳定性非常好,可以和硬件级的负载均衡设备F5相媲美。最高可同时维护40000-50000个并发连接,单位时间内处理的最大请求数为20000个。支持8种负载均衡算法,支持回话保持。支持虚拟主机功能。支持连接拒绝,全透明代理并且有一个功能强大的服务器状态监控界面。拥有功能强大的ACL支持。haproxy真的很强大。这里不对他的功能一样一样展示,读者可自行去
2021-07-06 11:05:52
230
转载 缓存穿透、缓存击穿、缓存雪崩区别和解决方案
一、缓存处理流程 前台请求,后台先从缓存中取数据,取到直接返回结果,取不到时从数据库中取,数据库取到更新缓存,并返回结果,数据库也没取到,那直接返回空结果。 二、缓存穿透 描述: 缓存穿透是指缓存和数据库中都没有的数据,而用户不断发起请求,如发起为id为“-1”的数据或id为特别大不存在的数据。这时的用户很可能是攻击者,攻击会导致数据库压力过大。 解决方案1 :接口层增加校验,如用户鉴权校验,id做基础校验,id<=...
2021-07-01 10:45:46
216
原创 c++ 异步消息队列
#include <stdio.h>#include <pthread.h>struct msg { int data; struct msg* next_msg;};struct msg * workq;pthread_mutex_t qlock = PTHREAD_MUTEX_INITIALIZER;pthread_cond_t qready = PTHREAD_COND_INITIALIZER;void init_queue(void){ pt.
2021-06-30 10:29:54
1073
原创 nginx如何解决惊群效应
https://www.jianshu.com/p/21c3e5b99f4ahttps://github.com/eesly/thundering_herd_problem/blob/master/server_epoll_thp.cpphttps://github.com/eesly/thundering_herd_problem/blob/master/server_epoll_thp.cpp
2021-06-25 11:29:33
191
原创 linux 自旋锁 vs 互斥锁
自旋锁占用的资源比较少,互斥锁占用的资源比较多如果阻塞的时间较短,则使用自旋锁比较好,否则,使用互斥锁,线程想要加锁的锁被占用,自旋锁则不停地等待询问锁是否被释放,互斥锁则加入等待队列,等待锁被释放。#include <stdio.h>#include <stdlib.h>#include <string.h>#include <pthread.h>#include <unistd.h>#include <tim...
2021-06-25 11:16:19
407
原创 nginx 基础结构
1.sudovi /etc/default/grub找到GRUB_CMDLINE_LINUX=""改为GRUB_CMDLINE_LINUX="net.ifnames=0 biosdevname=0"然后sudo grub-mkconfig -o /boot/grub/grub.cfg重启后,网卡名称果然变成了eth0和wlan0作者:流沙链接:https://www.zhihu.com/question/45796677/answer/116994126...
2021-06-20 22:39:50
158
原创 nginx 网络连接
#0 ngx_event_accept (ev=0xe49230) at src/event/ngx_event_accept.c:62#1 0x0000000000425b4e in ngx_epoll_process_events (cycle=0xe2a4e0, timer=<optimized out>, flags=<optimized out>) at src/event/modules/ngx_epoll_module.c:827#2 0x0000000...
2021-06-17 17:57:04
531
原创 MySQL 聚集索引 辅助索引 覆盖索引
create table test_order( id int auto_increment primary key, user_id int, order_id int, order_status tinyint, create_date datetime);drop index idx_userid_order_id_createdate on test_order ;create index idx_userid_order_id_createdate.
2021-06-14 22:12:00
225
原创 MYSQL 触发器
触发器(trigger)是MySQL提供给程序员和数据分析员来保证数据完整性的一种方法,它是与表 事件相关的特殊的存储过程,它的执行不是由程序调用,也不是手工启动,而是由事件来触发,比 如当对一个表进行DML操作( insert , delete , update )时就会激活它执行。...
2021-06-06 20:21:05
155
原创 fmod 变频变声
#include <stdlib.h>#include <unistd.h>#include <iostream>#include "fmod.h"#include "fmod.hpp"using namespace std;using namespace FMOD;static const int EFFECTS_NORMAL = 0; // 原声static const int EFFECTS_LUOLI = 1; // 萝莉static co.
2021-05-18 19:32:36
864
转载 X86-64寄存器和栈帧
概要说到x86-64,总不免要说说AMD的牛逼,x86-64是x86系列中集大成者,继承了向后兼容的优良传统,最早由AMD公司提出,代号AMD64;正是由于能向后兼容,AMD公司打了一场漂亮翻身战。导致Intel不得不转而生产兼容AMD64的CPU。这是IT行业以弱胜强的经典战役。不过,大家为了名称延续性,更习惯称这种系统结构为x86-64X86-64在向后兼容的同时,更主要的是注入了全新的特性,特别的:x86-64有两种工作模式,32位OS既可以跑在传统模式中,把CPU当成i386来用;又可...
2021-05-07 15:22:48
1350
原创 网络编程从0到放弃再到入坑
1.Cannot assign requested address解决办法“Cannot assign requested address.”是由于linux分配的客户端连接端口用尽,无法建立socket连接所致,虽然socket正常关闭,但是端口不是立即释放,而是处于TIME_WAIT状态,默认等待60s后才释放。可能解决方法1--调低time_wait状态端口等待时间:1. 调低端口释放后的等待时间,默认为60s,修改为15~30ssysctl -w net.ipv4.tcp_fin_
2021-03-13 17:06:19
165
转载 epoll内核源码详解
作者:赛罗奥特曼~链接:https://www.nowcoder.com/discuss/26226?type=0&order=0&pos=27&page=1来源:牛客网/* * fs/eventpoll.c (Efficient event retrieval implementation) * Copyright (C) 2001,...,2009 Davide Libenzi * * This program is free software; you
2021-03-04 15:51:15
314
1
转载 网络编程几个IP地址【本机IP地址】、【 127.0.0.1】 和【 0.0.0.0 】的区别
概述 总体来讲,127.0.0.1是本机的环回地址,0.0.0.0代表本机上任何IP地址。下面分别详细讲解。 环回地址 127.0.0.1 严格来说127.0.0.1只是环回地址之一。所有127.x.x.x都是环回地址。从127.0.0.0 到 127.255.255.255 均予以保留。此地址块中的任何地址都将环回到本地主机中。此地址块中的任何地址都绝不会出现在任何网络中。 环回地址:所有发往该类地址的数据包都应该被 loop back。正常的网络包从IP层进入数据链路层,然后发送到网络上, 而发
2021-02-22 14:03:39
734
原创 分布式锁知识点整理
缓存数据库(相对于mysql),数据结构数据库,kv数据库(hash实现),热点数据(经常要访问的数据),如果都放在mysql中,会给mysql数据库带来很大的压力。no-sql就是为了提高查询速度。按照请求命令来执行命令为了防止分布式系统中的多个进程之间相互干扰,我们需要一种分布式协调技术来对这些进程进行调度。而这个分布式协调技术的核心就是来实现这个分布式锁。分布式锁的特点:高可用的获取锁和释放锁高性能的获取锁和释放锁具备可重入特性(可理解为重新进...
2021-02-21 23:26:17
210
原创 ext2文件系统,未完待续
ext2_inode结构的定义如下:/* * Structure of an inode on the disk */struct ext2_inode { __le16 i_mode; /* File mode */ __le16 i_uid; /* Low 16 bits of Owner Uid */ __le32 i_size; /* Size in bytes */ __le32 i_atime; /* Access time */ __le32 i_ctime; /.
2021-02-17 22:33:30
188
原创 网络基础知识
wireshark过滤MAC地址/物理地址eth.addr== 80:f6:2e:ce:3f:00 //过滤目标或源地址是80:f6:2e:ce:3f:00的数据包eth.src== 80:f6:2e:ce:3f:00 //过滤源地址是80:f6:2e:ce:3f:00的数据包eth.dst== 80:f6:2e:ce:3f:00 //过滤目标地址是80:f6:2e:ce:3f:00的数据包ARP协议:ARP Request到达本网段中的所有设备上,因为目的为FF:FF:..
2021-01-28 20:58:46
304
原创 nginx handler模块
1.location一致2.ngx_module_tmodule名字要一致config文件:ngx_addon_name=nginx_test_mp_moduleHTTP_MODULES="$HTTP_MODULES nginx_test_mp_module"NGX_ADDON_SRCS="$NGX_ADDON_SRCS $ngx_addon_dir/nginx_test_memory_module.c"sourcecode:#include <ngx_http..
2021-01-28 14:31:17
331
原创 C++ Singleton单例模式
Version6:#include <iostream>using namespace std;template<class T>class Singleton{private:public: static T& GetInstance() { static T instance; return instance; }protected: Singleton(){ cout << "Singeton" << end
2021-01-25 11:15:14
283
1
原创 备份知识点
C++11 thread 向线程传递参数需要注意的是,默认的会将传递的参数以拷贝的方式复制到线程空间,即使参数的类型是引用。void func1(_tagNode &node){ printf("%p\n", &node); node.a = 10; node.b = 20;}void f(){ _tagNode node; node.a = 100; node.b = 200; printf("%p\n", &node); thread t(f
2021-01-24 23:35:52
172
1
原创 算法-红黑树, B树(未完待续)
红黑树的性质:1.每个节点是红的或者是黑的(废话)2.根节点是黑的3.每个叶子节点是黑的4.红色节点的两个儿子节点是黑色的5.每个结点到他的子孙节点上所有的路径包含相同数目的黑结点。...
2021-01-11 11:03:27
129
原创 research libcurl 01
/*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * .
2021-01-09 21:24:13
161
原创 c++11 thread
线程启动两种方式:#include <thread>#include <iostream>using namespace std;class Base{public: void run() { cout << "run()\n"; }};void cb(){ cout << "cb()\n";}int main(){ Base b; thread t0 = thread(&Base::run, &.
2021-01-06 17:18:13
198
1
原创 libevent demo
tcp_server.c#include<event2/listener.h>#include<event2/bufferevent.h>#include<event2/buffer.h>#include<ctype.h>#include<arpa/inet.h>#include<string.h>#include<strings.h>#include<stdlib.h>#include&l
2020-12-25 14:05:46
285
libjingle学习笔记
2017-01-03
UNIX环境高级编程(第二版中文)
2015-04-16
Java编程思想第四版完整中文高清版
2015-06-03
RPM for Oracle11g
2016-10-05
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅