CentOS下安装与配置Redis 2.2.14的方法详解

发布时间:2020-06-02编辑:脚本学堂
本文介绍下,在centos系统中安装与配置Redis 2.2.14的方法,供大家学习参考。
注意:Redis官方文档对VM的使用提出了一些建议:
1,当你的key很小而value很大时,使用VM的效果会比较好.因为这样节约的内存比较大.
2,当你的key不小时,可以考虑使用一些非常方法将很大的key变成很大的value,比如你可以考虑将key,value组合成一个新的value.
最好使用linux ext3 等对稀疏文件支持比较好的文件系统保存你的swap文件.
vm-max-threads这个参数,可以设置访问swap文件的线程数,设置最好不要超过机器的核数.如果设置为0,那么所有对swap文件的操作都是串行的.可能会造成比较长时间的延迟,但是对数据完整性有很好的保证.

2. 调整系统内核参数

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

复制代码 代码示例:
echo 1 > /proc/sys/vm/overcommit_memory

这里说一下这个配置的含义:/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-server /etc/redis/redis.conf

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

复制代码 代码示例:
redis-cli set foo bar
OK
redis-cli get foo
bar

2. 关闭服务
 

复制代码 代码示例:
redis-cli shutdown
如果端口变化可以指定端口:
redis-cli -p 6380 shutdown

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支持多种类型的特性,存储一些相对不重要的数据。

五. 自启动
可以自己写一个脚本,然后加入到自启动服务中。

需要先配置下面的内核参数,否则Redis脚本在重启或停止redis时,将会报错,并且不能自动在停止服务前同步数据到磁盘上:
 

复制代码 代码示例:
vi /etc/sysctl.conf
vm.overcommit_memory = 1

然后应用生效:
 

复制代码 代码示例:
sysctl -p

增加服务并开机自启动:
 

复制代码 代码示例:
chmod 755 /etc/init.d/redis
chkconfig --add redis
chkconfig --level 345 redis on
chkconfig --list redis