Redis安装与维护说明

    大概有一年多没写博客,笔头生疏了许多,真是缺乏积累了;最近一直在使用redis,晚上不加班的时候抽空把平常的安装运维过程总结下,方便后面使用时直接查看笔记:

 

1、安装环境:

RedHat Linux5.5 64bit

 

2、软件版本:

Redis-2.8.7

 

3、部署架构:


  目前redis框架为两台服务器做主从,当Msater服务异常后由sentinel选举由从服务器切换成主服务器对外提供服务。为了确保主从顺利切换,在二台物理机方案下须保证从服务器的sentinel进程为2。

 

3、安装方法:

3.1、创建redis系统用户

 

[root@ngix ~]# groupadd redis
[root@ngix ~]# useradd redis redis
[root@ngix ~]# passwd redis 

 

3.2、以redis登录系统,并创建目录/home/redis/yourAppHome

 

[root@ngix ~]# su -  redis
[redis@ngix ~]$ mkdir yourAppHome

 

3.3、在目录下解压Redis,并复制一份做sentinel

  

[redis@ngix ~]$ tar zxvf redis-2.8.7.tar.gz
[redis@ngix ~]$ cp -R redis-2.8.7  sentinel_redis-2.8.7

 

3.4、安装

 

[redis@ngix ~]$ cd redis-2.8.7
[redis@ngix redis-2.8.7]$ make
[redis@ngix ~]$ cd ../sentinel _redis-2.8.7
[redis@ngix ~]$ make
    注:如安装出现问题,一般为缺少依赖包,按系统错误提示安装相应包重新安装即可。

 

 

 

4、配置修改

4.1、修改redis.conf配置项

 4.1.1、修改为后台运行

 

daemonize yes

2、指定后台运行文件
pidfile /home/redis/cpp/redis_testapp_6389.pid

3、指定端口
port 6389

4、绑定IP
bind 10.244.19.91

5、设定日志输出级别(默认notice)
loglevel notice

6、设置日志输出文件路径
logfile /home/redis/cpp/redis_testapp_6389.log

7、设置最大内存10G
maxmemory 10737418240

8、内存不够时按照LRU算法清除数据
maxmemory-policy allkeys-lru

9、master上同时开启Snapshot和AOF来进行持久化,保证数据的安全性
save 900 1
save 300 10
save 60 10000
根据项目需求有选择性的打开持久化功能,关闭持久化只需要把save注释即可 
 
10、启用AOF 
appendonly yes
根据项目需求有选择性的打开持久化功能,关闭持久化只需要把appendonly值设置为 no

11、AOF文件的名称
appendfilename appendonly.aof

12、每秒钟强制写入磁盘一次
appendfsync everysec

13、在日志重写时,不进行命令追加操作
no-appendfsync-on-rewrite yes 

14、当前AOF文件大小是上次日志重写得到AOF文件大小的二倍时,自动启动新的日志重写过程
auto-aof-rewrite-percentage 100

15、启动新的日志重写过程的最小值
auto-aof-rewrite-min-size 64mb

16、配置从服务器时开启(主服务不需要设置该项)
slaveof 22.104.102.202 6389
 

    其他配置项暂时不做修改

 

  4.1.2、修改sentinel.conf配置项

 

1、指定端口
port 26389
注:同一台机器上要设置不同的端口,如:27389
2、指定监控的 redis master 
sentinel monitor mymaster 22.104.102.203 6389 2

3、5秒钟收不到redis master 的回应,就认为redis master 处于S_DOWN 状态
sentinel down-after-milliseconds mymaster 5000

4、启动故障自动转移功能(新版本好像不需要配置了)
sentinel can-failover mymaster yes

5、故障自动转移超时为60秒
sentinel failover-timeout mymaster 60000

6、除了sentinel认为master故障,还最低需2个slave确定master故障了,才认定master故障了,可以进行自动故障转移。
sentinel parallel-syncs mymaster 2
 

 

  4.1.3、启动

 

(1) 启动主服务器

 

[redis@ngix redis-2.8.7]$ src/redis-server redis.conf
[redis@ngix redis-2.8.7]$ src/redis-sentinel sentinel.conf &
  (2) 启动从服务器

  

[redis@ngix redis-2.8.7]$ src/redis-server redis.conf
[redis@ngix redis-2.8.7]$ src/redis-sentinel sentinel.conf &
[redis@ngix redis-2.8.7]$ cd ../sentinel_ redis-2.8.7
[redis@ngix sentinel_redis-2.8.7]$ src/redis-sentinel sentinel.conf &
  

 (3) 停止

[redis@ngix redis-2.8.7]$ ps -ef|grep 6389
redis     8711     1 47 16:45 ?        01:58:21 src/redis-server 22.104.102.203:6389
redis     8721     1  0 16:46 ?        00:00:02 src/redis-sentinel *:26389      
redis    17907 16598  0 20:56 pts/3    00:00:00 grep 6389
[redis@ngix redis-2.8.7]$ kill -9  8711  8721 

 

猜你喜欢

转载自wang5598.iteye.com/blog/2288994