自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

后端技术交流

写的不好没关系,自己进步才是关键

  • 博客(22)
  • 资源 (8)
  • 收藏
  • 关注

原创 Go语言之路:一、万丈高楼平地起

Go语言之路:一、万丈高楼平地起一、下载&安装1、下载:2、删除老版本&安装新版本:3、添加环境变量:4、验证Go安装:二、创建HelloWorld项目1、创建个文件,来进行代码管理:2、执行go mod init生成一个mod文件:3、创建一个hello.go的源文件,输入以下内容,然后保存退出:4、运行刚才生成的hello.go源文件:5/添加点调味:三、总结:导读:“要欲善其事,必先利其器”要想学习Go语言,那么首先就是需要准备一个语言的学习环境,本篇作为整套Go语言之路的开

2022-04-17 12:40:17 1363

原创 思考:Redis为什么这么快?

注:本篇小短文,随心而发,属于笔者自己的一个技术思考吧。请看到这句话的朋友慎重,是否真的考虑阅读下去,因为不一定能给您带来帮助。但是您不惜浪费时间读完,我希望真的能引起你一点点思考,并且给您带来一定的帮助。(要是有一点帮助,不妨给个赞,因为这种类似的思考,总不间断的出现,要可以,后续可能继续分享)相信不少同学在面试、或者是平常也会思考过这个问题:为什么Redis这么快?这个问题,网上有不少人分享总结过了。类似八股文的形式,面试的话直接套用就好了。可以说是拼记忆力的"知识"了。最近也断断续续看了一个月

2022-04-15 14:53:53 3897

原创 Centos系统安装Docker

文章目录先决条件:操作系统先决条件:卸载旧版本的Docker安装方式:yum方式安装:升级引擎:rpm方式安装:升级引擎:使用脚本进行升级:卸载非Root用户管理Docker先决条件:操作系统先决条件:Docker引擎目前只支持CentOS 7和CentOS 8操作系统。其他更早的版本已经不再支持。系统centos-extras库必须启用。推荐使用overlay2存储驱动。卸载旧版本的Docker如果系统安装了旧版Docker,需要卸载,一般来说旧版名称为docker或者docker-en

2022-04-09 23:51:46 274

原创 Redis7.0代码分析总结之:用野指针来判断函数执行成功与否

在分析dict.c和dict.h的代码时候,发现利用指针是否为空来判断函数是否执行成功。而且该指针可能还是一个 野指针!废话不多说,下面结合代码来描述说明!Let’s go!出现野指针的函数是dictGenericDelete,位于src/dict.c源文件。而该函数分别被两个函数调用:dictUnlinkdictDelete其中dictUnlink是摘除该key对应的entry,不会释放内存空间。函数执行成功后返回的是该entry的内存地址,空间有效。不会产生野指针。而dic

2022-03-23 17:04:08 602

原创 Redis7.0代码分析总结之:底层数据结构listpack实现原理

文章目录一、前言二、实现原理2.1 、内存结构2.2、 数据存储编码方案2.3、 backlen长度编码方案三、主要API介绍3.1、插入、更新、删除3.2、查找、遍历四、Redis内部应用五、总结一、前言      listpack压缩列表。作为ziplist的替代品,从2017年引入Redis后,到redis7.0已经完全取代ziplist作为redis底层存储数据结构之一。     &

2022-03-21 16:21:45 1868 2

原创 跟着Redis学编程系列:把一个字符串转换为有符号长整型

前言作为C语言基础,在面试的时候,很多时候在都会被要求实现数值到字符串、或者字符串到数值的转换函数。虽然难度不大,但是很容易在一些细节上出现纰漏。刚好最近在深度分析Redis7.0源代码。闲暇之余,顺带把这部分代码摘录出来,进行分析、注解。作为一个学习记录的同时也方便后来者快速了解Redis内部是如何实现的。日后面试也许能用的上。Redis实现方式代码片段注释int string2ll(const char *s, size_t slen, long long *value) { con

2022-03-17 00:21:22 1523

原创 Redis7.0代码分析总结之:事件模型概述

前言Redis自己封装了一个事件驱动模型,实现代码在src/ae.h和src/ae.c。Redis内部存在两类事件:文件事件和时间事件。其中文件事件包括网络事件、文件事件等;而时间事件主要是一些后台定义任务事件。本文主要围绕这两个代码文件,对Redis的事件模型进行分析学习。【不对Reactor模型,具体的事件处理流程等进行分析说明。这部分说明后续通过单独文章进行描述分析】首先我们先看两个图片:图片二图片1是基于ac.h代码抽象出来的Redis事件实现模型逻辑架构图。图片二是struct

2022-03-14 22:39:37 992

原创 Redis7.0学习总结之:字符串命令详解

这里写自定义目录标题前言增删改字符指令:加减指令:查普通字符串指令7.0增加的LCS指令:总结命令列表导入前言总所周知Redis发展到目前为止,支持高达9种数据不同数据结构的NoSQL软件系统。伴随而来的是各种操作命令的不断增加。过百个命令,如何才能完全掌握,并且能比较系统化的记住,做到信手拈来,如果只是通过死记硬背估计难度比较,而且也不容易记住。故本系列文章,尝试通过分类汇总的方式,梳理各种命令。本篇作为本系列的第一篇文章:主要是针对字符串String指令。Redis作为一个NOSQL服务f器,从

2022-03-14 13:39:22 925

原创 Unix/Linux套接字整理(一)--地址结构

前言读过《UNIX网络编程》的同学都知道,这本书详细介绍了套接字的方方面面,并且给出了每一个结构体、系统API的实现代码文件。不过技术不断发展,操作系统的内核也不断更新,书中描述相关地址结构体,和具体实现源文件有时候对不上。鉴于此,本文基于书上描述,结合linux操作系统进行相关笔记记录,用于阅读的时候,方便查找。依赖:书籍《UNIX网络编程》(卷一) 版本3操作系统平台:Centos8 【Linux Centos 3.10.0-1160.49.1.el7.x86_64】如果特别说明,本文

2022-02-18 20:32:05 254

原创 【TIPS】【非原创】yum Error:rpmdb open failed

@本文章非原创,参考stackexchange,作为笔记记录于此,版权不归本人所有,归原文章出处所有。笔记记录如下:最近在执行yum update时候不小心kill掉了进程,导致出现了yum db错误:rpmdb: PANIC: fatal region error detected; run recoveryerror: db3 error(-30974) from dbenv->open: DB_RUNRECOVERY: Fatal error, run database recovery

2022-02-15 20:20:52 696

原创 NGINX编译脚本选项分类说明

2019-12-04 16:41:35 100

原创 Building nginx from Sources【译文-无校对】

原文:Building nginx from SourcesThe build is configured using theconfigurecommand. It defines various aspects of the system, including the methods nginx is allowed to use for connection processing...

2019-12-04 11:22:31 166

原创 python通过 MySQLdb插入中文乱码

MySQLdb 中文 乱码 python mysql

2017-11-15 00:28:22 486

原创 【NOTE】python3.6下scons运行提示找不到SCons.Script解决方式

一、问题&错误信息:在python3.6.1环境下通过scons-3.3.0编译最新的mongodb-src-r3.6.0-rc报错:     ImportError:No module named SCons.Script。:二、问题简单分析出现这个问题的原因是scon脚本找不到对应的库路径。三、解决方式:打开scon脚本,在import对应模块之前补充库

2017-10-27 16:49:36 4009

原创 centos安装 twisted

升级python3.6.1以后发现pip 无法直接通过pip install Twisted安装。请教度娘后发现大部分是通过对应平台的whl文件进行安装。可惜我的是64位的centos平台,并没找到对应的whl文件。因此只能采取其他方式的安装。本短文,仅仅作为安装的一次记录,以便日后查看方便。1,操作系统版本:Linux localhost.localdomain 3.10.0

2017-06-17 22:28:17 3694 1

原创 C语言实现int转换字符串的一种实现

在技术人员面试的时候,经常会被要求实现标准库的一些函数比如strlen,strcpy,itoa,atoi等等。本文就简单的聊聊一次面试的笔试题,作为一次失败面试的记录。由于预先不知道整数的位数,一般在转字符串的时候,都是通过从个位开始往高位逐个转换。这样就会在转换完成以后,需要对生成的字符串进行逆序,才能达到最终结果。本方案采取了一个小技巧,通过指针运算,字符拷贝(当然也可以直接通

2017-05-28 08:38:46 18276

原创 gnulibc库代码阅读:assert.h

前言:    公元2017年5月28号晚上8点多左右的时间,被一次网络面试刺激了,同时也意识到,个人的编程功力退步。因此,本着“生气不如争气”的原则,痛定思痛。决定从此开始逐步补充“功力”,于是开始定下一个小目标。重新阅读两本经典著作《C语言程序设计》和《数据结构与算法分析-C语言描述》。并且阅读分析GNU C标准库的实现。本系列文章为阅读gnulibc库的笔记。【文章思路as

2017-05-28 02:36:57 1131

转载 强烈推荐:一位员工递交了辞职信,老板给出的回复

本文来自:http://www.yixieshi.com/zhichang/20220.html  这是一封企业老板写给一位离职的职业经理人的信,这封信写出了很多老板的心声,写出的老板的苦衷与无奈,就像歌里唱的那样“你永远不懂我的心,像白天不懂夜的黑”。这是一家有着19年历史的企业,但当企业发展和新观念发生冲突时,职业经理人和老板的眼里如何看待同一家企业,很令人深思。

2015-02-07 11:27:11 1666

转载 一篇很全面的freemarker教程

copy自http://demojava.iteye.com/blog/800204 以下内容全部是网上收集: FreeMarker的模板文件并不比HTML页面复杂多少,FreeMarker模板文件主要由如下4个部分组成: 1,文本:直接输出的部分 2,注释:格式部分,不会输出 3,插值:即${...}或#{...}格式的部分,将使用数据模型中的部分替代输出 4,F

2015-02-04 16:57:24 346

原创 ZeroC ICE3.6b编译安装

ICE是一套很强大的RPC框架,具体feature这里不表,本短文只是作为安装最新版ICE3.6b的笔记,记录安装过程的信息。安装平台:Linux centos6-4-dev 2.6.32-504.3.3.el6.x86_64 #1 SMP Wed Dec 17 01:55:02 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux从官网下载最新版ICE3

2015-01-27 11:13:34 3305

原创 thrift分析目标

最近时间比较多,计划对apache thrift

2014-07-28 19:07:59 505

原创 C语言笔记

struct{ long a; long b; char buf[];}structA;struct{ long a; long b; char *buf;}structB;structA与structB是两个不同的结构体,它们的长度大小分别为structA为8,而structB为12,因为char[]是数组,C99规定不指定大小,则不占用内存空间,而*buf是指针,它占用了指针的大小。使用structA的好处就是可

2011-03-11 16:47:00 268

C++程序设计语言 第1-3部分PART3

C++程序设计语言 第1-3部分

2017-05-24

C++程序设计语言 第1-3部分part2

C++程序设计语言 第1-3部分

2017-05-24

C++程序设计语言 第1-3部分 PART1

C++程序设计语言 第1-3部分

2017-05-24

python语言标准库

PDF格式的中文python语言的标准库,对于学习python编程,这是一本必须要读的书.

2009-03-27

MAKEFILE中文版(网上找的)

网上找到的makefile编写手册.不错的哦.

2009-03-12

Wiresahrk 用户手册

网上找了很久的Wiresahrk 简体中文版用户手册.

2009-03-02

空空如也

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

TA关注的人

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