自定义博客皮肤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)
  • 资源 (1)
  • 收藏
  • 关注

原创 redis源码学习02:跳跃表插入结点

本文是本人在学习redis源码时的笔记,本文主要是对跳跃表插入结点代码的中文注释,如有错误欢迎指正。有关跳跃表的原理可以上网搜材料,有很多。首先看下redis源码里有关跳跃表的相关结构体:typedef struct zskiplistNode { // 跳跃表节点 sds ele; // zset元素 double score; // zset分值 struct zskiplistNode *backward; // 单前level的后一个node

2020-06-22 23:37:21 762 2

原创 redis源码学习01:字符串sds

前言本文是redis源码关于字符串处理的学习笔记,欢迎指正。 redis版本是5.0.5,redis的功能、用途及性能我就不做赘述了。正文进入正题,redis提供了自己的字符串存储及相关操作,源码文件在sds.h和sds.c里。 在学习代码的过程中发现redis使用了一个比较巧妙的设计,redis里存储字符串不是简单的使用C语言里的char *来存储,而是利用C语言指针可以加减运算的特...

2020-04-20 18:06:53 226

原创 为什么kafka通过代理连不上

问题今天安装了kafka可视化工具kafkatool,但是由于公司开发机的端口有限制,所以通过nginx做了一个tcp的代理。但是奇怪kafka都正常,端口也都正常,就是连不上服务端。原因Kafka 客户端在连接 Broker 的时候,Broker 将客户端发来的请求带的信息与 Broker 启动时上报给 Zookeeper 的信息 进行了比对,比对相同则认证通过,反之建立连接失败!...

2020-03-20 20:13:44 3892

原创 C++正则表达式regex初探及踩的坑

前言前段时间开发的过程需要对字符串匹配过滤操作,这就涉及到了正则表达的功能。这篇文章是个人对c++正则表达式程序库regex使用的笔记,如有不正确的地方欢迎指正。Regex库简介Regex是从c++ 11开始有的。c++正则表达式提供了以下几个主要功能:Math:将整个输入与正则表达式进行比对。 Search:查找是否与正则表达式匹配的子串。 Tokenize:根据正则表达式...

2020-02-21 21:50:55 5124

原创 C/C++函数库调用和系统调用的区别

函数库调用是语言或应用程序的一部分,而系统调用是操作系统的一部分。 系统调用是在操作系统内核发现的一个“trap”或中断后进行的。函数库调用vs.系统调用 函数库调用 系统调用 在所有的ANSIC编译器版本中,C函数库是相同的 各个操作系统的系统调用是不同的 它调用函数库中的一个程序 它调用系统内核的服务 与用户程序相联系 是操作系统的...

2019-10-16 11:41:14 695

原创 CentOs7.4卡顿

现象今天公司的开发机突然出现了非常卡的情况,远程登录很慢,卡半天,vi编辑文件也是卡着不动,ls等命令用tab补全也是卡半天。分析怀疑磁盘没空间导致的,df查看了下还用了95%,清理了日志文件,可用空间50%,问题没解决;free查看:内存够用top查看:没有cpu占用很高的进程,但是loadaverage却很高。上网查了,有人有类似情况:http://b...

2019-09-24 18:26:17 3227

原创 重载、类型转换与运算符

C++转换构造函数和类型转换运算符共同定义了类类型志换(class-typeconversions),这样的转换有时也被称作用户定义的类型转换(user-definedconversions)。类型转换运算符 类型转换运算符(conversionoperator)是类的一种特殊成员函数,它负责将一个类类型的值转换成其它类型,类型转换函数的一般形式如下所示:oper...

2019-08-16 11:04:28 609

原创 服务治理总体结构

2019-08-09 19:09:05 193

原创 分布式消息跟踪的价值总结

调用链价值汇总

2019-08-09 18:55:57 263

原创 C++类的未命名对象用法

当我们编写一个lambda后,编译器将表达式翻译成一个未命名类的未命名对象。在lambda表达式产生的类中含有一个重载的函数调用运算符,例如对于我们传递给stable_sort作为最后一个实参的lambda表达式来说:vector<string> words;// 其它代码// 根据单的长度对其进行排序,对于长度相同的单词按照字母顺序排序stable_sort(words...

2019-07-25 14:38:52 743

原创 c++容器使用之排序、去重

使用场景消除重复单词,假设有以下单词over jumps red slow the fox quick turtle the red 思路将单词放入vector 对vector进行排序,使得重复的单词相邻出现 使用标准库的unique算法重排vector,使得不重复的元素出现在vector开始部分 由于算法不能执行容器操作...

2019-07-25 14:24:20 865

原创 C++右值引用

说明 为了支持移动操作,新标准引入了一种新的引用类型——右值引用(rvaluereference)。所谓右值引用就是必须绑定到右值的引用。我们通过&&而不是&来获得右值引用。右值引用有一个重要的性质——只能绑定到一个将要销毁的对象。因此,我们可以自由地将一个右值引用的资源“移动”到另一个对象中。左值vs右值 一般而言,一个左值表达式表示的是一个对象...

2019-07-22 12:12:06 555

原创 systemd启动的程序不会生成coredump解决

今天写了个生成coredump的c++程序,发现单独执行程序时能正常生成coredump文件(ulimit -c设置为unlimited)。但是在用systemd配置服务启动时发现不会生成coredump文件,systemd的service配置文件里已经添加了LimitCORE=infinity参数。原因及解决办法:查看coredump配置:# cat /proc/sys/k...

2019-06-06 17:16:18 3236

原创 boost log库链接问题

1. 使用动态库时,要定义BOOST_LOG_DYN_LINK或者BOOST_ALL_DYN_LINK否则会出现如下错误:CMakeFiles/IrcChatData.dir/src/main.cpp.o: In function `boost::log::v2s_mt_posix::sources::basic_logger<char, boost::log::v2s_m...

2019-05-27 11:39:36 2899 1

原创 Tars服务网络模型总结

1、前言说明 因为业务系统使用了Tars实现服务的注册、发现等分布式应用。需要了解其原理以及相关实现方法,方便故障的排除、性能优化等。 本文档基于Tars官方资源仓库https://github.com/TarsCloud/TarsCpp.git学习,重点描述rpc模块客户端以及服务端的网络模型。方便其它开发人员学习。 如果有错误欢迎指正。2、服务端网络结构...

2019-04-23 11:48:42 561

原创 MySql8.0.15修改root密码

1、编辑 /etc/my.cnf在[mysqld]下添加:skip-grant-table2、重启Mysql# systemctl restart mysqld3、进入mysql操作# mysql -u rootWelcome to the MySQL monitor. Commands end with ; or \g.Your MySQL connec...

2019-04-18 21:27:54 747

原创 windows10安装Xshell错误1603解决办法

今天在安装XShell 6最新版时老是安装到最后一步出来回滚操作,最后弹出如下错误提示框:解决办法:在运行里输入regedit打开注册表编辑器找到 HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control将 RegistrySizeLimit(REG_DWORD类型的) 的值改为 FFFFFFFF (10进制就是 4294967295,...

2018-12-18 21:05:52 19040 16

原创 ffmpeg安装ERROR: cuvid requested, but not all dependencies are satisfied: ffnvcodec

ERROR: cuvid requested, but not all dependencies are satisfied: ffnvcodecIf you think configure made a mistake, make sure you are using the latestversion from Git.  If the latest version fails, rep...

2018-11-02 16:53:25 6159 1

原创 ffmpeg库使用,undefined reference错误

ffmpeg用g++编译时的注意事项编译时出现以下错误:错误一:undefined reference to `av_register_all()'undefined reference to `avformat_open_input(AVFormatContext**, char const*, AVInputFormat*, AVDictionary**)'undefined ...

2018-10-18 16:41:53 9876 4

原创 使用boost::asio库实现多个子进程监听同一个端口

class session_http {public: session_http(boost::asio::io_context &amp;io) : socket_(io) {}; void run(boost::asio::yield_context yield) { boost::system::error_code ec; boost::beast::flat_buffer b...

2018-08-28 14:42:49 2002

原创 安装llvm、clang指定使用非默认gcc、g++

安装LLVM时不使用系统默认的gcc、g++版本:官方手册安装文档:We use here the command-line, non-interactive CMake interface.Download and install CMake. Version 3.4.3 is the minimum required.Open a shell. Your development tools m...

2018-06-25 15:11:10 2821

原创 boost使用log库编译报错

使用boost的log,用以下链接选项:-lboost_system -lboost_thread -lboost_log -lboost_log_setup -lboost_filesystem -lpthread当使用add_console_log函数编译链接时报错:/usr/local/gcc/bin/g++ ../obj/timerServer.o ../obj/CWatchThread....

2018-04-19 11:42:04 1073 1

原创 boost::asio::read_until数据获取重复问题

利用boost::asio::read_until读http的chunk包,读取部分代码如下:第一部分读取包头,第二部分循环读chunk包如果不调用consume清空的话,while循环里一直获取到的是包头部分的内容,consume的官方文档解析如下:测试代码运行结果如下:虽然调用了consume,但是boost::asio::buffer_cast&lt;const char*&gt;(sb.d...

2018-04-18 16:01:46 3217 1

原创 boost http响应读取

响应报样例:HTTP/1.1 201 CreatedContent-Type: application/jsonX-Etcd-Cluster-Id: cdf818194e3a8c32X-Etcd-Index: 115X-Raft-Index: 1146X-Raft-Term: 3Date: Tue, 17 Apr 2018 07:36:20 GMTContent-Length: 171 {"act...

2018-04-17 16:43:55 3943 2

vi速查命令

汇总vi所有快速命令,excel格式,方便快速查询,可打印

2018-12-28

空空如也

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

TA关注的人

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