- 博客(15)
- 收藏
- 关注
原创 链家新房性能挑战赛小结
近来参加了部门举办的接口性能挑战大赛,导致redis源码的博客一直没有更新。不过收获颇丰,特作此小结。比赛介绍规则规则比较简单,根据提供的基础数据,实现一个http查询接口,返回内容为json且格式固定。在100并发、5000总请求下保证数据正确性,QPS高者胜。 禁⽌使⽤Load balance,在自己的开发机搭建单机服务。 开发机的配置为:单核cpu、4G内存、40G磁
2018-01-19 18:51:51
453
原创 redis源码解读(八):redis对象
近来在研读redis3.2.9的源码,虽然网上已有许多redis的源码解读文章,但大都不成系统,且纸上学来终觉浅,遂有该系列博文。部分知识点参照了黄建宏的《Redis设计与实现》。定义在自定义的基础数据结构的基础上,redis 通过 redisObject 封装整合成了对外暴露的5中数据结构。 首先看看 redisObject 的定义: #define LRU_BITS 24
2018-01-06 20:15:05
731
原创 redis源码解读(七):基础数据结构之skiplist
近来在研读redis3.2.9的源码,虽然网上已有许多redis的源码解读文章,但大都不成系统,且纸上学来终觉浅,遂有该系列博文。部分知识点参照了黄建宏的《Redis设计与实现》。前言本文探究的数据结构并不是 redis 对外暴露的5种数据结构,而是redis内部使用的基础数据结构,这些基础的数据结构 redis 不仅和 redisObj 一起构成了对外暴露的5种数据结构,还被运用于
2018-01-06 20:12:16
474
原创 redis源码解读(六):基础数据结构之quicklist
近来在研读redis3.2.9的源码,虽然网上已有许多redis的源码解读文章,但大都不成系统,且纸上学来终觉浅,遂有该系列博文。部分知识点参照了黄建宏的《Redis设计与实现》。前言本文探究的数据结构并不是 redis 对外暴露的5种数据结构,而是redis内部使用的基础数据结构,这些基础的数据结构 redis 不仅和 redisObj 一起构成了对外暴露的5种数据结构,还被运用于 re
2018-01-06 20:10:41
596
原创 redis源码解读(五):基础数据结构之ziplist
近来在研读redis3.2.9的源码,虽然网上已有许多redis的源码解读文章,但大都不成系统,且纸上学来终觉浅,遂有该系列博文。部分知识点参照了黄建宏的《Redis设计与实现》。前言本文探究的数据结构并不是 redis 对外暴露的5种数据结构,而是redis内部使用的基础数据结构,这些基础的数据结构 redis 不仅和 redisObj 一起构成了对外暴露的5种数据结构,还被运用于
2018-01-06 20:04:21
777
原创 redis源码解读(四):基础数据结构之intset
近来在研读redis3.2.9的源码,虽然网上已有许多redis的源码解读文章,但大都不成系统,且纸上学来终觉浅,遂有该系列博文。部分知识点参照了黄建宏的《Redis设计与实现》。前言本文探究的数据结构并不是 redis 对外暴露的5种数据结构,而是redis内部使用的基础数据结构,这些基础的数据结构 redis 不仅和 redisObj 一起构成了对外暴露的5种数据结构,还被运用于
2018-01-06 19:55:00
755
原创 redis源码解读(三):基础数据结构之dict
近来在研读redis3.2.9的源码,虽然网上已有许多redis的源码解读文章,但大都不成系统,且纸上学来终觉浅,遂有该系列博文。部分知识点参照了黄建宏的《Redis设计与实现》。前言本文探究的数据结构并不是 redis 对外暴露的5种数据结构,而是redis内部使用的基础数据结构,这些基础的数据结构 redis 不仅和 redisObj 一起构成了对外暴露的5种数据结构,还被运用于
2018-01-06 19:52:05
675
原创 redis源码解读(二):基础数据结构之ADLIST
近来在研读redis3.2.9的源码,虽然网上已有许多redis的源码解读文章,但大都不成系统,且纸上学来终觉浅,遂有该系列博文。部分知识点参照了黄建宏的《Redis设计与实现》。前言本文探究的数据结构并不是 redis 对外暴露的5种数据结构,而是redis内部使用的基础数据结构,这些基础的数据结构 redis 不仅和 redisObj 一起构成了对外暴露的5种数据结构,还被运用于
2018-01-06 19:49:38
389
原创 redis源码解读(一):基础数据结构之SDS
近来在研读redis3.2.9的源码,虽然网上已有许多redis的源码解读文章,但大都不成系统,且纸上学来终觉浅,遂有该系列博文。部分知识点参照了黄建宏的《Redis设计与实现》。前言本文探究的数据结构并不是 redis 对外暴露的5种数据结构,而是redis内部使用的基础数据结构,这些基础的数据结构 redis 不仅和 redisObj 一起构成了对外暴露的5种数据结构,还被运用于
2018-01-06 17:30:43
2974
2
原创 用python实现简单的遗传算法
今天整理之前写的代码,发现在做数模期间写的用python实现的遗传算法,感觉还是挺有意思的,就拿出来分享一下。首先遗传算法是一种优化算法,通过模拟基因的优胜劣汰,进行计算(具体的算法思路什么的就不赘述了)。大致过程分为初始化编码、个体评价、选择,交叉,变异。以目标式子 y = 10 * sin(5x) + 7 * cos(4x)为例,计算其最大值首先是初始化,包括具
2016-08-25 14:48:11
44819
41
原创 PHP5新特性 trait
trait是PHP5.4.0中引入的新概念,既像接口又像类。trait是类的部分实现(即常量、属性和方法),可以混入一个或多个现有的PHP类中。trait有两个作用:表明类可以做什么(像接口);提供模块化实现(像是类)。 为什么要使用trait,书中举了一个例子比较形象。首先PHP使用的是一种典型的继承模型,在这种模型中通常是先编写一个通用的根类,实现基本的功能,然后扩展这个根类,创建更
2016-08-03 22:50:55
1802
原创 namespace学习笔记
PHP从5.3.0版本开始支持命名空间,命名空间是一个很重要的工具,起作用是按照一种虚拟的层次结构组织PHP代码,这种层次结构类似操作系统中文件系统的目录结构。现代的PHP组件和框架大都都放在格子的全局唯一的厂商命名空间中,以免与其他厂商使用的常见命名冲突。如果不适用命名空间,那么当你的代码和其他开发者使用相同的类名、接口名、函数名或常量名时,名称会起冲突,导致PHP执行出错。 首先是声
2016-08-03 22:48:25
1610
原创 自定义php模板引擎
模板引擎的思想是来源于MVC(Model View Controller)模型,即模型层、视图层、控制器层。 在Web端,模型层为数据库的操作;视图层就是模板,也就是Web前端;Controller就是PHP对数据和请求的各种操作。模板引擎就是为了将视图层和其他层分离开来,使php代码和html代码不会混杂在一起。因为当php代码和html代码混杂在一起时,将使代码的可读性变差,并且
2016-08-03 22:40:06
3484
原创 array_merge和数组直接相加的区别
今天发现php的数组居然可以直接相加,之前都是用array_merge进行数组的连接操作。但是试验了一番发现差别还是很大的。首先是以数字为索引的数组, array_merge会将两个数组按照先后顺序组成一个新的数组$array1 = array("a", "b", "c");$array2 = array("d", "e", "f");// 输出Array ( [0] =
2016-08-03 22:32:25
4147
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人