解密Redis持久化

本文内容来源于Redis作者博文,Redis作者说,他看到的所有针对Redis的讨论中,对Redis持久化的误解是最大的,于是他写了一篇长文来对Redis的持久化进行了系统性的论述。文章非常长,也很值得一看,NoSQLFan将主要内容简述成本文。 什么是持久化,简单来讲就是将数据放到断电后数据不会丢失的设备中。也就是我们通常理解的硬盘上。 写操作的流程 首先我们来看一下数据库在进行写操作时到底做了哪些事,主要有下面五个过程。 客户端向服务端发送写操作(数据在客户端的内存中) 数据库服务端接收到写请求的数据(数据在服务端的内存中) 服务端调用write(2) 这个系统调用,将数据往磁盘上写(数据…
阅读全文…

对C语言中的static关键字的深入理解

在阅读一些项目源代码时,我发现很多时候,会把函数和变量声明为static,所以,很好奇为什么要这样做,于是有了下面这篇文章。 基本概念 使用static有三种情况: 函数内部static变量 函数外部static变量 static函数 函数内部的static变量,关键在于生命周期持久,他的值不会随着函数调用的结束而消失,下一次调用时,static变量的值,还保留着上次调用后的内容。 函数外部的static变量,以及static函数,关键在于私有性,它们只属于当前文件,其它文件看不到他们。例如: /* test_static1.c */ #include void foo() { } stati…
阅读全文…

性能调优攻略

关于性能优化这是一个比较大的话题,在《由12306.cn谈谈网站性能技术》中我从业务和设计上说过一些可用的技术以及那些技术的优缺点,今天,想从一些技术细节上谈谈性能优化,主要是一些代码级别的技术和方法。本文的东西是我的一些经验和知识,并不一定全对,希望大家指正和补充。 在开始这篇文章之前,大家可以移步去看一下酷壳以前发表的《代码优化概要》,这篇文章基本上告诉你——要进行优化,先得找到性能瓶颈! 但是在讲如何定位系统性能瓶劲之前,请让我讲一下系统性能的定义和测试,因为没有这两件事,后面的定位和优化无从谈起。 一、系统性能定义 让我们先来说说如何什么是系统性能。这个定义非常关键,如果我们不清楚什么…
阅读全文…