9 c-rain

好未来教育集团 已隐藏

你唯一所知,就是你一无所知

等级
TA的排名 35w+

【Redis源码】集群之主从复制replication(十)

前言:说到主从大家应该都不陌生,也应该都清楚主从解决服务的哪些问题。单台服务器的支撑能力是有限的,为了提高我们的QPS或者说数据的容灾。主从服务则起到了相应的作用。不过主从复制也会有一些缺点,比如说“高可用问题”,“单服务器资源有限问题”。针对高可用问题我们后续解析redis集群的哨兵,针对单服务器问题,我们会解析redis Cluster分布式应用。redis版本: 4.0.0...

2020-02-23 21:12:43

【Redis源码】位图SETBIT、BITCOUNT(九)

前言:位图并不是一个特殊的数据结构,位图其实就是一个字符串,位图这种结构占用空间特别小。如果是数亿以上的用户如果存储活跃,如果是用key/value去存储每个节点都需要数G去存储,存储是很大问题。如果换做位图去存储则可以大大节约空间,不过适应于用户ID连续性的。除此之外也可以用作比如说点赞的存储。redis版本:4.0.0(一)命令解析 命令原形 ...

2020-02-14 00:34:13

【Redis源码】ziplist压缩表(八)

前言:压缩表是一个连续内存空间的线性结构,元素之间紧挨着存储,没有任何空隙。redis为了节省空间,当使用zset和hash容器对象时再元素个数较少时采取了压缩表(ziplist)进行存储。redis版本:4.0.01.压缩表结构介绍压缩表构成如下:zlbytes :压缩表字节长度,类型uint32_t占用4个字节,需要存储此值才能调整整个...

2020-02-12 01:50:57

【Redis源码】字符串详解(七)

前言:学过C的人应该都知道C的字符串是以字节数组存在,然后以\0结尾。计算字符串的长度使用strlen函数,这个标准库函数的复杂程度是O(n)。它需要对字节数组进行扫描遍历计算长度。作为redis单线程的应用是这种形式是比较消耗性能的。Redis实现了字节的字符串叫sds(Simple Dynamic String),它是一个带着长度的信息的结构体,属于柔性字符串。版本:redis...

2020-02-08 14:44:32

【Redis源码】发布与订阅(六)

redis版本:4.0.0(一)发布与订阅功能介绍:官方文档: https://redis.io/topics/pubsubRedis是一个快速稳定的发布/订阅消息传递系统。发布与订阅命令: 命令 备注 命令原形 PSUBSCRIBE 订阅一个或多个给定匹配模式的频道 ...

2020-02-06 00:03:40

【Redis源码】详细的RDB和AOF持久化过程(五)

(一)分析RDB和AOF的优劣势:优劣势官方介绍:https://redis.io/topics/persistence持久化详细介绍:http://oldblog.antirez.com/post/redis-persistence-demystified.html1.RDB:RDB的优点:1)RDB是redis数据非常紧凑的单文件时间点表示。RDB文件非常适合备份...

2020-01-16 14:53:38

【Redis源码】轻松看懂rdb文件(四)

前言:该篇内容为我对redis的学习记录,欢迎指正批评。redis版本:4.0.0、一.数据存储格式:二.查看rdb文件查看文件16进制编码#od -A x -t x1c -v dump.rdbRDB文件格式如下:0000000 52 45 44 49 53 30 30 30 38 fa 09 72...

2020-01-15 02:11:31

【Redis源码】dict字典学习(三)

前言:该篇内容为我对redis的学习记录,欢迎指正批评。redis版本:4.0.0一.redis 数据库流程结构二.结构解析typedef struct client { uint64_t id; /* 客户端唯一增量ID. */ int fd; /* 客户端socket fd. */ redi...

2020-01-14 15:50:39

【Redis源码】Redis命令INCR、DECR、INCRBY、DECRBY学习(二)

前言:该篇内容为我对redis的学习记录,欢迎指正批评。文中只是放了部分调试内容,完整的可以根据流程图跟踪。redis版本:4.0.0调试工具:lldb一.redis incr命令调用流程DECR和INCR和类似只是一个是增加一个是减少。其余两个命令也大同小异;二.源码分析4个命令相应源码,t_string.c中:void incrCommand(...

2020-01-14 15:44:01

【外挂编程】外挂编程技术揭秘(三)DLL注入

引言:一个礼拜没有更新这个主题文章了,这周三看到一个微信推送。某某某博士由于写外挂被抓。当时心里那是一个崩溃,不过之前写了这个主题,还是会继续写完,不能半途而废。不过了解这本技术的千万不要拿去捞偏门。我刚写这篇文章的时候在想这个主题要不要改一改。叫《我们一起写外挂吧,会被抓那种》,^ - ^,玩笑了。开始我们今天的内容吧,我们还是继续讲内存挂,不过我们今天的主题是讲注入。文中介绍的注入...

2020-01-13 18:01:56

【Redis源码】Redis命令set学习(一)

前言:该篇内容为我对redis的学习记录,欢迎指正批评。文中只是放了部分调试内容,完整的可以根据流程图跟踪。redis版本:4.0.0调试工具:lldb一.redis set命令调用流程二.源码分析(1)源码解析服务端对命令的解析是绑定在server.c中的redisCommandTable全局参数中,redisCommandTable为一个结构体...

2020-01-12 10:25:40

【PHP源码】实现简单自动加载函数扩展

前言:没有写过PHP相关的文章,今天是第一篇。写的不好的地方请见谅,多多批评。PHP版本: php-7.1.23文章涉及源码:https://github.com/Diamonds-ZhaoYu/php_auto_functionphp源码:https://github.com/php/php-src开篇:本章内容实现的方法为4个,如图:...

2020-01-08 15:50:16

【安全】一次完整的入侵提权实践+安全防御思考

引言:前几天写的文章,有朋友说太难有人说实用性不强,不过之前定了那个主题,我还是会写完,开弓没有回头箭。写这篇文章是有自于4年前的一次服务器被入侵提权的思考,当时服务器被人提权当作矿机使用。后来经过好几个小时的折腾逆向了这个病毒脚本,并且摘除。中木马的原因是因为运维同学当时设置redis密码过于简单,而且一些安全防护没有设置,然后就被提权种马。文章中涉及到的脚本:https://...

2020-01-08 15:06:54

【外挂编程】外挂编程技术揭秘(二)

引言:经过上一篇文章大家可能对外挂有了一个初步的认识,之前的内容比较简单,应该大家很容易掌握。我写作过程中我发现三个篇幅可能写不完,后续还可能要多加几个篇幅,这篇我们就先以内存挂为主吧。话不多说了,让我们开始吧。文章中代码github地址:https://github.com/Diamonds-ZhaoYu/hz_example环境要求:系统:Windows语言...

2020-01-08 14:29:48

【外挂编程】外挂编程技术揭秘(一)

引言: 本人并不是这方面专业的人员,我是一名PHP工程师。写这个主题,源自于我的“初心”。在最初我没有接触技术的时候,那会我是个网虫,刚开始也学习一些黑客相关的知识,当用到一些工具时,就很好奇这些东西是怎么做的。我就特别想去写一些相关工具和外挂以及一些小病毒。在一次与一名老师的偶遇中,我进入了技术领域。但是最初学习的是Java的web方向,后来由于工作原因转的PHP...

2020-01-08 14:13:09

【Golang源码分析】golang的启动原理

前言:随着技术的发展,大多的PHPer都开始转型golang。这个也是golang因为go的一些特别深受大家喜爱。我们团队也在试水,在内部的一些小项目上做了试探。在此同时我作为试探的一员身先士卒。从中也琢磨到一些技巧希望能和大家一起学习共勉.一.前期准备:go版本: go1.13.4由于是做源码分析调试,我们必须找到适合自己的工具。咱们调试的话可以考虑几种工具1)gdb lin...

2020-01-07 21:50:10

kong网关开发自己的插件

Kong官方文档:https://docs.konghq.com/0.14.x/plugin-development/lua中文开发手册:https://www.runoob.com/manual/lua53doc/contents.html#contents一.代码结构部分介绍代码结构:.├── kong│ └── plugins│ └─...

2020-01-07 21:27:02
勋章 我的勋章
  • GitHub
    GitHub
    绑定GitHub第三方账户获取
  • 脉脉勋章
    脉脉勋章
    绑定脉脉第三方账户获得
  • 签到新秀
    签到新秀
    累计签到获取,不积跬步,无以至千里,继续坚持!
  • 新人勋章
    新人勋章
    用户发布第一条blink获赞超过3个即可获得
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv3
    勤写标兵Lv3
    授予每个自然周发布7篇到8篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。