准备部分:

什么是redis?

Redis是REmote DIctionary Server的缩写。一个非关系型数据库

为什么要用redis?

1, 因为redis快,Redis is pretty fast!, 110000 SETs/second, 81000 GETs/second

2, 省去了复杂的SQL。

3, 可以省去memcache了。

 

开始:

下载redis:

可以在redis的官网下载 :

http://redis.io/

也可以去谷歌的code下载:

http://code.google.com/p/redis/downloads/list

谷歌code是一个版本列表,在列表里找出你想要安装的redis版本。这里我选择安装的是最新的2.0.4稳定版: redis-2.0.4.tar.gz

(在2.0以上版本中,增加了VM(Virtual Memory)特性,使我们不必再为那些不会被使用,而加载到内存的冷数据买单。但是,最新的消息是,有可能把VM也拿掉,采用diskstore模型

当然也可以用wget命令:


[python] view plaincopy

  1. wget http://redis.googlecode.com/files/redis-2.0.4.tar.gz  


 

安装redis:

下面按照官方维基的方法进行编译(详见http://code.google.com/p/redis/wiki/QuickStart)


[python] view plaincopy

  1. tar xvzf redis-2.0.4.tar.gz  

  2. cd redis-2.0.4  

  3. make  


为什么没用标准的Linux安装三板斧呢?官方维基是这样说的:Redis can run just fine without a configuration file (when executed without a config file a standard configuration is used). With thedefault configuration Redis will log to the standard output so you can check what happens. Later, you canchange the default settings.

也可以make install,这样就是把可运行文件复制到/usr/local/bin里而已。

make之后,会出现一句提示:

Hint: To run 'make test' is a good idea ;) 

其实不测试,一般都可以用。但是既然人家建议了,咱们就走一下make test吧。

运行#make test

报错,提示没有You need 'tclsh8.5' in order to run the Redis test

然后到Tcl的官方网站http://www.tcl.tk/下载8.5版本

然后安装tcl8.5:

(configure和make的位置比较特殊,在安装目录的unix下,所以下面是tcl官方安装法)

#tar xvzf tcl8.5.12-src.tar.gz

#cd tcl8.5.13/unix/

#./configure 

#make 

#make test 

#make install

注:当然,也可以简单一点,用 yum install tcl 来安装。

 

好了,安装好tcl之后,可以去redis目录下运行make test了,这次正常跑通。提示:

\o/ All tests passed without errors!
Cleanup: may take some time... OK

说明redis安装正常。可以运行。


 

简单配置一下redis:

在运行redis前,我们要配置一下。redis的配置文件在你的安装目录里。名为:redis.conf。

简单说几点redis.conf:

redis默认不是用守护进程的,如果需要更改,把daemonize no改成daemonize yes。(测试的时候可以不改,看看打印信息。)

如果对redis默认6379端口不爽的,可以更改port 6379

如果想把数据文件放到一个指定文件夹,更改dir /opt/data/

默认是dir ./ 也就是默认放到安装目录下。

连接超时时间,timeout 300,没什么改头……

dir 是数据文件路径。默认在安装目录下。

*下面的配置二选一,详见本文注释部分2。

###### SNAPSHOTTING ######内存快照方式:

默认的内存快照策略是,

在900秒(15分钟)内,至少有1次数据变更;

或者300秒内,有至少10次数据变更;

或者60秒内,有至少1000次数据变更;时间+数据变更次数,共同影响内存快照的出现。

###### APPEND ONLY MODE ###### AOF方式

appendfsync everysec 每秒同步。这里可以注释掉,打开下面的选项appendfsync no

其余的配置,conf里面的注释写的挺清楚,我就不多废话了。大家看着自己配就行了。

 

运行redis:

2.2.7版本,redis-server被放到了src文件夹下,要这么运行:

在安装目录下# cd src

#./redis-server ./../redis.conf

附注:

2.0.4以前的老版本,运行很简单,在安装目录下:

#./redis-server

就可以了。如果没有更改daemonize no配置,会看见运行的信息。好,现在redis运行起来了!

 

注释:

▲redis的默认端口号是6379,(据redis的作者antirez的博文说,6379在是手机按键上MERZ对应的号码,而MERZ取自意大利歌女Alessia Merz的名字。而MERZ长期以来被antirez及其朋友当作愚蠢的代名词。)

 

▲Redis有两种存储方式,默认是snapshot方式,实现方法是定时将内存的快照(snapshot)持久化到硬盘,这种方法缺点是持久化之后如果出现crash则会丢失一段数据。因此在完美主义者的推动下作者增加了aof方式。aof即append only mode,在写入内存数据的同时将操作命令保存到日志文件。