自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

杨博东的博客

yangbodong dot cn

  • 博客(9)
  • 资源 (7)
  • 收藏
  • 关注

原创 Redis 专栏(使用介绍、源码分析、常见问题...)

一、介绍相关说Redis : 介绍Redis特性,使用场景,使用Jedis操作Redis等。二、源码分析1. 数据结构Redis源码分析(sds):Redis自己封装的C语言字符串类型。Redis源码分析(dict):字典的实现,Hash表。 Redis源码分析(adlist):Redis中的双向链表。 Redis源码分析(skiplist) :Redis 中的跳跃表,

2017-11-14 13:08:51 1722 1

原创 Redis源码分析(intset)

源码版本:4.0.1 源码位置:intset.h:数据结构的定义intset.c:创建、增删等操作实现 1. 整数集合简介intset是Redis内存数据结构之一,和之前的 sds、 skiplist、dict、adlist 等通用数据相比,它是Redis特有的,用来实现Redis的Set结构(当元素较小且为数字类型时),它的特点有:元素类型只能为数字。元素有三种类型:int16_t、i

2017-11-30 00:52:45 3902

原创 Linux 守护进程原理及实例(Redis、Nginx)

1. 什么是守护进程守护进程daemon,是指没有控制终端,运行在后台的进程,通常伴随着系统启动产生,系统关机结束。可以使用命令ps -axj查看系统的守护进程,输出如下所示: 父ID PID 组ID 会话ID 终端 状态 用户ID 命令 PPID PID PGID SID TTY TPGID STAT UID TIME CO

2017-11-28 01:12:09 6127 2

原创 Linux内核 fork 源码分析

内核版本:linux-4.4.18 源码位置:这里fork相关的代码最终执行的函数为_do_fork(),下面按照顺序分析下_do_fork():首先判断是否需要trace(跟踪)这个进程,这一步主要与调试相关,GDB在x86-64 Linux 系统上的原理就是利用ptrace(2)系统调用 [1]。 有关likely和Unlikely,实际上是利用gcc内置函数对分支条件的优化 [2]。

2017-11-27 19:57:46 3724

原创 Redis监控调研

1 调研目的主要的目的是想调研各大云平台有关Redis监控功能的实现,但是最后我发现各大云平台提供的监控功能都比较基础,比如我想看诸如访问频率较高的HotKey、占用内存较大的Bigkey等指标,它们都没有提供,一部分Redis监控的开源工具实现了这样的功能,但是实现方法实用性不大,见后文汇总。2 调研情况2.1 常见公有云平台监控我所调研的阿里云、腾讯云、青云这三个平台给用户提供的监控信息均是采用

2017-11-15 22:12:22 1932

原创 Redis源码分析(skiplist)

源码版本: redis-4.0.1 源码位置:server.h :zskiplistNode和zskiplist的数据结构定义。 t_zset.c: 以zsl开头的函数是SkipList相关的操作函数。一、跳跃表简介跳跃表(SkipList),其实也是解决查找问题的一种数据结构,但是它既不属于平衡树结构,也不属于Hash结构,它的特点是元素是有序的。有关于跳跃表的更多解释,大家可以参考 张

2017-11-13 19:47:20 4359

原创 Redis源码分析(adlist)

源码版本redis-4.0.1一、adlist简介Redis中的链表叫adlist(A generic doubly linked list implementation 一个通用的双端链表实现),和普通单链表相比,它的方向可以向前或者向后,这是由于数据结构中定义了next和prev两个指针决定的,下面看下它的数据结构实现。二、数据结构定义typedef struct listNode {

2017-11-08 13:52:36 4793

原创 Redis源码分析(dict)

一、dict 简介dict (dictionary 字典),通常的存储结构是Key-Value形式的,通过Hash函数对key求Hash值来确定Value的位置,因此也叫Hash表,是一种用来解决算法中查找问题的数据结构,默认的算法复杂度接近O(1),Redis本身也叫REmote DIctionary Server (远程字典服务器),其实也就是一个大字典,它的key通常来说是String类型的,

2017-11-07 14:35:08 10418 9

原创 Redis源码分析(sds)

一、SDS简介sds (Simple Dynamic String),Simple的意思是简单,Dynamic即动态,意味着其具有动态增加空间的能力,扩容不需要使用者关心。String是字符串的意思。说白了就是用C语言自己封装了一个字符串类型,这个项目由Redis作者antirez创建,作为Redis中基本的数据结构之一,现在也被独立出来成为了一个单独的项目,项目地址位于这里。sds 有两个版本,在

2017-11-01 23:09:21 7430 3

ncurses_programs代码示例

ncurses是最早的SystemVRelease4.0(SVr4)中CURSES的一个克隆。这是一个可自由配置的库,完全兼容旧版本的curses。简而言之,它是一个管理应用程序在字符终端显示的函数库。当后面提到curses的时候,同时也可以和NCURSES互换。

2017-12-28

axel多线程下载神器

axel多线程下载神器

2017-01-07

mysql-connector-c++-1.1.7-linux-glibc2.5-x86-64bit.rpm

mysql-connector-c++-1.1.7-linux-glibc2.5-x86-64bit.rpm 安装只需: rpm -ivh mysql-connector-c++-1.1.7-linux-glibc2.5-x86-64bit.rpm 即可

2017-01-07

ntfs-3g源码

ntfs-3g源码

2017-01-07

cJSON规范代码加注释

cJSON源码经过格式化之后的资源,易于阅读。

2017-01-02

dosbox-0.74 无bug修复版(内含.EXE文件)

这是修复bug的dosbox-0.74,RedHat系列用户需要安装的可以直接安装,并且内含DEBUG.EXE,LINK.EXE,MASM.EXE。

2016-10-25

Json jar包

详细的java Json jar包。可以在自己的java项目中尽情的使用了。

2016-06-29

空空如也

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

TA关注的人

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