- 下载
wget http://download.redis.io/redis-stable.tar.gz - 解压编译
tar -xzf redis-stable.tar.gz
cd redis-stable
make
make install - 可能出现的问题
- 没有安装gcc,这会导致我们无法make成功。使用yum安装:
yum -y install gcc - make时报如下错误:
zmalloc.h:50:31: error: jemalloc/jemalloc.h: No such file or directory
zmalloc.h:55:2: error: #error "Newer version of jemalloc required"
make[1]: *** [adlist.o] Error 1
make[1]: Leaving directory `/data0/src/redis-2.6.2/src'
make: *** [all] Error 2
原因是jemalloc重载了Linux下的ANSI C的malloc和free函数。解决办法:make时添加参数。
make MALLOC=libc - make之后,会出现一句提示
Hint: To run 'make test' is a good idea ;)
但是不测试,通常是可以使用的。若我们运行make test ,会有如下提示
[devnote@devnote src]$ make test
You need tcl 8.5 or newer in order to run the Redis test
make: ***[test] Error_1
解决办法是用yum安装tcl8.5(或去tcl的官方网站http://www.tcl.tk/下载8.5版本,并参考官网介绍进行安装)
yum install tcl
- 没有安装gcc,这会导致我们无法make成功。使用yum安装:
- 目录
- mkdir /etc/redis(存储配置文件)
- mkdir -p /var/redis/REDIS的端口号#(以redis实例的端口作为目录名,存储持久化文件)
- redis-stable/utils目录下有redis_init_script的脚本文件
cp /root/redis-stable/utils/redis_init_script /etc/init.d/redis_端口号
这里你可能需要编辑脚本修改端口号 - redis-stable目录下有redis.conf,
cp /root/redis-stable/redis.conf /etc/redis/端口号.conf
- redis配置
# 默认情况下 redis 不是作为守护进程运行的,
# 如果你想让它在后台运行,
# 你需要把配置文件里daemonize改成 yes。
c
maxclients 100000
maxmemory 4294967296
requirepass youpwd
#分别表示900秒(15分钟)内有1个更改,300秒(5分钟)内有10个更改以及60秒内有10000个更改,
# 如果触发任何一个条件,即将内存的数据同步到磁盘
# 快照持久化策略,详细参考网上说明
save * *
# 持久化文件目录
dir /var/redis//端口号
# 打开aof文件持久化
appendonly yes
#aof文件名,保存路径与快照文件一样,也就是dir配置指定的目录
appendfilename appendonly.aof
#aof增长相对上次aof rewrite增长达到100%时,且文件大小超过auto-aof-rewrite-min-size时会发生aof rewrite
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64m
pidfile /var/run/redis_6379.pid #保存进程号的文件路径
- 启动与停止
- 启动
/etc/init.d/redis_端口号 start
- 停止
pgrep redis|xargs kill
,redis脚本有停止的命令,但是我设置了requirepass的值,导致停止不成功,pgrep redis|xargs kill
会干掉所有redis进程
- 启动
- 设置开机启动
在启动脚本开头,#!/bin/sh后面添加如下两行
chkconfig: 2345 80 90
description:auto_run
看起来像这样:
#!/bin/sh
#chkconfig: 2345 80 90
#description:auto_run
然后执行下面两条命令
chkconfig –add redis_{端口号}
chkconfig redis_{端口号} on
- redis-sentinel
- 复制配置文件模版
cp /root/redis-stable/sentinel.conf /etc/redis/sentinel.conf
- sentinel.conf配置文件详解
- 复制配置文件模版
bind 0.0.0.0
port 26379
dir "/tmp"
sentinel monitor redis_161 192.1.3.161 6379 2
sentinel down-after-milliseconds redis_161 10000
sentinel parallel-syncs redis_161 5
sentinel auth-pass redis_161 NQPBizknKoRfAc
sentinel config-epoch redis_161 0
sentinel leader-epoch redis_161 0
sentinel monitor redis_162 192.1.3.162 6380 2
sentinel down-after-milliseconds redis_162 60000
sentinel auth-pass redis_162 NQPBizknKoRfAc
# Generated by CONFIG REWRITE
sentinel config-epoch redis_162 0
sentinel leader-epoch redis_162 0
sentinel current-epoch 0
- 启动redissentinel:
redis-sentinel /etc/redis/sentinel.conf &