环境 centos 7.4
单机模式
安装所需要的依赖
yum install gcc gcc-c++
将 redis-3.0.0.rar.gz 上传到 /usr/local/src/
进入 存放压缩包的目录
cd /usr/local/src/
对压缩包进行解压
tar -zxvf redis-3.0.0.tar.gz
mv redis-3.0.0 /usr/local/
进入解压后的目录进行编译
cd /usr/local/redis-3.0.0
安装到指定目录 如 /usr/local/redis
make PREFIX=/usr/local/redis install
redis.conf是redis的配置文件,redis.conf在redis源码目录。拷贝配置文件到安装目录下,进入源码目录,里面有一份配置文件 redis.conf,然后将其拷贝到安装路径下
cd /usr/local/redis
mkdir conf
cp /usr/local/redis-3.0.0/redis.conf /usr/local/redis/bin
进入安装目录bin下
cd /usr/local/redis/bin
基本使用命令
后台启动:./redis-server /usr/local/redis/conf/redis.conf &
关闭:./redis-cli shutdown
基于主从复制
在从 redis 上配置
slaveof 172.16.91.217 6379 # 指定 主redis 的 ip 以及端口
slave-read-only yes # 设置 从只读
slave-serve-stale-data no # 当redis 从和主断开连接或者正在同步数据的时候,该选项为no的时候会提示无法写入,一般建议关闭
登录 到从 ,输入info
role:slave
master_host:172.16.91.217
master_port:6379
哨兵模式
从 解压的源码目录,copy 文件 sentinel.conf 到 /usr/local/redis/etc/
cp /usr/local/redis-3.0.0/sentinel.conf /usr/local/redis/conf/
修改 sentinel.conf 文件
# vim /usr/local/redis/conf/redis.conf
port 26379
# redis 工作目录
dir "/usr/local/redis-sentine"
daemonize yes
logfile "./sentinel.log"
# 设置 master 信息和投票次数
sentinel monitor mymaster 172.16.91.217 6379 1
# master或slave多长时间(默认30秒)不能使用后标记为s_down状态
sentinel down-after-milliseconds mymaster 5000
sentinel config-epoch mymaster 3
sentinel leader-epoch mymaster 3
sentinel known-slave mymaster 172.16.91.219 6379
sentinel known-sentinel mymaster 172.16.91.219 26379 a110681c92b40b8395b0dae1f3d550d73e73b6f4
sentinel current-epoch 3
要在 建一个 /usr/local/redis-sentine
启动 sentinel 哨兵
/usr/local/redis/bin/redis-server /usr/local/redis/etc/sentinel.conf --sentinel &
把 主 redis 停掉 ,查看 日志 ,发现已经 切换到从服务器了
tail -f -n 500 /usr/local/redis-sentine/sentinel.log
2356:X 31 Oct 14:20:57.205 # +switch-master mymaster 172.16.91.219 6379 172.16.91.217 6379
2356:X 31 Oct 14:20:57.205 * +slave slave 172.16.91.219:6379 172.16.91.219 6379 @ mymaster 172.16.91.217 6379
2356:X 31 Oct 14:21:07.262 * +convert-to-slave slave 172.16.91.219:6379 172.16.91.219 6379 @ mymaster 172.16.91.217 6379