mfcheer

已搬家至:www.mfcheer.com

内存分配函数(C语言)

C 标准函数库提供了许多函数来实现对堆上内存管理 malloc函数:malloc函数可以从堆上获得指定字节的内存空间(必须初始化) free函数:释放内存,防止内存泄露 calloc函数:与 malloc类似,但不需要初始化 realloc函数:重新分配内存头文件stdlib.hmallo...

2016-09-18 02:10:47

阅读数:2497

评论数:0

RDB和AOF持久化

RDB持久化直接保存数据库的键值对。是二进制文件存储。指定的时间间隔内生成数据集的时间点快照两个命令:1 SAVE 会阻塞进程 2 BGSAVE 创建子进程处理文件,不会阻塞。父进程继续处理client请求,子进程负责将内存内容写入到临时文件。由于os的写时复制机制(copy on write)...

2016-09-17 23:52:14

阅读数:330

评论数:0

SWAR算法:计算Hamming Weight

统计数组里面非0二进制位的数目: 比如a[] = {1,0,1,0,0,1,1,0}统计非0数目为4。Hamming Weight,即汉明重量,指的是一个位数组中非0二进制位的数量。比较常规的方法,按位统计,算法复杂度O(n)。redis里实现用到了两种算法:1.查表法 比如 0000 0001...

2016-09-09 22:40:50

阅读数:396

评论数:0

跳跃表 SkipList【数据结构】原理及实现

为什么选择跳表目前经常使用的平衡数据结构有:B树,红黑树,AVL树,Splay Tree, Treep等。想象一下,给你一张草稿纸,一只笔,一个编辑器,你能立即实现一颗红黑树,或者AVL树出来吗? 很难吧,这需要时间,要考虑很多细节,要参考一堆算法与数据结构之类的树,还要参考网上的代码,相当麻烦。...

2016-09-06 22:35:07

阅读数:4088

评论数:0

Redis主从同步

全量同步Redis全量复制一般发生在Slave初始化阶段,这时Slave需要将Master上的所有数据都复制一份。具体步骤如下:   1)从服务器连接主服务器,发送SYNC命令;   2)主服务器接收到SYNC命名后,开始执行BGSAVE命令生成RDB文件并使用缓冲区记录此后执行的所有写命...

2016-01-21 12:23:48

阅读数:374

评论数:0

Redis内存回收:LRU算法

LRU算法(最近最久未使用算法)LRU算法作为内存管理的一种有效算法,其含义是在内存有限的情况下,当内存容量不足时,为了保证程序的运行,这时就不得不淘汰内存中的一些对象,释放这些对象占用的空间,那么选择淘汰哪些对象呢?LRU算法就提供了一种策略,告诉我们选择最近一段时间内,最久未使用的对象将其淘汰...

2015-11-23 19:01:25

阅读数:364

评论数:0

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