您的位置:首页 > 数据库 > Redis

CentOS 下 Redis 2.2.12 安装配置详解

2012-05-10 13:52 633 查看

CentOS下Redis 2.2.12安装配置详解

提纲:

CentOS 下 Redis 2.2.12 安装配置详解

一. 关于 Redis
二. 安装 Redis

1. 下载redis最新版本2.2.12
2. 编译安装redis
3. 建立Redis目录(建议,非必需)

三. 配置 Redis

1. redis.conf 配置参数:
2. 调整系统内核参数

四. 运行 Redis

1. 运行服务
2. 关闭服务
3. 保存/备份
4. 同步机制

一. 关于 Redis

Redis是一种高级 key-value 数据库。它跟 memcached 类似,不过数据可以持久化,而且支持的数据类型很丰富。它在保持键值数据库简单快捷特点的同时,又吸收了部分关系数据库的优点。从而使它的位置处于关系数据库和键值数据库之间。Redis不仅能保存Strings类型的数据,还能保存Lists类型(有序)和Sets类型(无序)的数据,而且还能完成排序(SORT)等高级功能,在实现INCR,SETNX等功能的时候,保证了其操作的原子性,除此以外,还支持主从复制等功能。Redis可以被看成是一个数据结构服务器。

Redis的所有数据都是保存在内存中,然后不定期的通过异步方式保存到磁盘上(这称为“半持久化模式”);也可以把每一次数据变化都写入到一个append only file(aof)里面(这称为“全持久化模式”)。

官方网站: http://redis.io/

PPT介绍: http://simonwillison.net/static/2010/redis-tutorial/

二. 安装 Redis

Redis的代码遵循ANSI-C编写,可以在所有POSIX系统(如Linux, *BSD, Mac OS X, Solaris等)上安装运行。而且Redis并不依赖任何非标准库,也没有编译参数必需添加。编译安装Redis,我们唯一需要的就是make。

1. 下载redis最新版本2.2.12

2. 编译安装redis

make命令执行完成后,会在当前目录下生成4个可执行文件,分别是redis-server、redis-cli、redis-benchmark、redis-stat,它们的作用如下:

redis-server:Redis服务器的daemon启动程序

redis-cli:Redis命令行操作工具。当然,你也可以用telnet根据其纯文本协议来操作

redis-benchmark:Redis性能测试工具,测试Redis在你的系统及你的配置下的读写性能

redis-stat:Redis状态检测工具,可以检测Redis当前状态参数及延迟状况

3. 建立Redis目录(建议,非必需)

执行以下命令建立相关目录并拷贝相关文件至目录中:

建立Redis目录,只是为了将Redis相关的资源更好的统一管理。你也可以使用

安装在系统默认目录

小技巧:make PREFIX=/usr/local/redis install 可以直接安装到指定目录

三. 配置 Redis

成功安装Redis后,直接执行redis-server即可运行Redis,此时它是按照默认配置来运行的(默认配置不是后台运行)。如果我们希望Redis按我们的要求运行,则需要修改配置文件,Redis的配置文件就是上面第二个cp操作的redis.conf文件,目前它被我们拷贝到了 /usr/local/redis/etc/目录下。修改它就可以配置redis server了。

1. redis.conf 配置参数:

注意:Redis官方文档对VM的使用提出了一些建议:

当你的key很小而value很大时,使用VM的效果会比较好.因为这样节约的内存比较大.
当你的key不小时,可以考虑使用一些非常方法将很大的key变成很大的value,比如你可以考虑将key,value组合成一个新的value.
最好使用linux ext3 等对稀疏文件支持比较好的文件系统保存你的swap文件.
vm-max-threads这个参数,可以设置访问swap文件的线程数,设置最好不要超过机器的核数.如果设置为0,那么所有对swap文件的操作都是串行的.可能会造成比较长时间的延迟,但是对数据完整性有很好的保证.

2. 调整系统内核参数

如果内存情况比较紧张的话,需要设定内核参数:

这里说一下这个配置的含义:/proc/sys/vm/overcommit_memory

该文件指定了内核针对内存分配的策略,其值可以是0、1、2。

0,表示内核将检查是否有足够的可用内存供应用进程使用;如果有足够的可用内存,内存申请允许;否则,内存申请失败,并把错误返回给应用进程。

1,表示内核允许分配所有的物理内存,而不管当前的内存状态如何。

2,表示内核允许分配超过所有物理内存和交换空间总和的内存

Redis在dump数据的时候,会fork出一个子进程,理论上child进程所占用的内存和parent是一样的,比如parent占用的内存为 8G,这个时候也要同样分配8G的内存给child, 如果内存无法负担,往往会造成redis服务器的down机或者IO负载过高,效率下降。所以这里比较优化的内存分配策略应该设置为 1(表示内核允许分配所有的物理内存,而不管当前的内存状态如何)

四. 运行 Redis

1. 运行服务

即可在后台启动redis服务,确认运行了之后,可以用redis-benchmark命令测试看看,还可以通过redis-cli命令实际操作一下,比如:

2. 关闭服务

如果端口变化可以指定端口:

3. 保存/备份

数据备份可以通过定期备份该文件实现。

因为redis是异步写入磁盘的,如果要让内存中的数据马上写入硬盘可以执行如下命令:

redis-cli save 或者 redis-cli -p 6380 save(指定端口)

注意,以上部署操作需要具备一定的权限,比如复制和设定内核参数等。

执行redis-benchmark命令时也会将内存数据写入硬盘。

4. 同步机制

redis实现的同步机制相对简单,缺少同步机制常见的check point和校验机制。

在运行时,如果master -> slave同步请求转发被丢弃, slave将无法恢复该请求的相关信息,直到slave重启时从master全量加载数据时才能修复。因此,建议使用redis尽量利用其 key/value和value支持多种类型的特性,存储一些相对不重要的数据。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: