一.安装redis服务:
1.解压redis安装包
tar zxf redis-4.0.8.tar.gz
2.源码编译redis
cd redis-4.0.8
yum install gcc # 安装redis源码编译依赖性gcc,在make之前安装
make
make install
3.执行redis安装脚本
cd utils/
./install_server.sh
4.检验redis是否安装正确
redis-cli
info
5.vim /etc/redis
使得6379监听所有ip
重启redis服务:
/etc/init.d/redis_6379 stop
/etc/init.d/redis_6379 start
二.redis实现主从复制:
1.在server1中执行redis命令行redis-cli设置一个键值set name jay get name
2.在sevrer2中修改配置文件vim /etc/redis/6379.conf
slaveof 172.25.77.1 6379 # 设置自己的master为172.25.77.1
重启redis /etc/init.d/redis_6379 restart
3.在server2中的redis命令行读取name的值
三.redis集群一
1.在server中:
cd redis-4.0.8
cp sentinel.conf /etc/redis
修改sentinel.conf文件:
17 protected-mode no
21 port 26379
50 dir /tmp任意一个
69 sentinel monitor mymaster 172.25.77.1 6379 2
# 这个主服务器的 IP 地址为 127.0.0.1 , 端口号为 6379 , 而将这个主服务器判断为失效至少需要 2 个 Sentinel 同意 (只要同意 Sentinel 的数量不达标,自动故障迁移就不会执行)
98 sentinel down-after-milliseconds mymaster 5000
2.将server1中修改好的配置文件scp给server2和server3,因为这三台主机构成集群,所以这个配置文件是相同的
3.打开一个shell连接三台主机中的任意一个,做监控命令,查看master和slave
redis-server /etc/redis/sentinel.conf –sentinel
4.宕掉现在的master,在监控窗口中查看现在的master
初始master是server1:
宕掉server1:
查看监控中的变化:
这时我们发现,集群中的master变为server3,接着我们查看server2中的配置文件:
配置文件中指定的master也变为了server3,因此集群中master的变化是彻底的….
四.redis集群二
创建集群化工具:
1.将集群化工具的运行脚本放在系统第三方软件目录中
cd redis-4.0.8/src/
cp redis-trib.rb /usr/local/bin/
cd /usr/local/bin/
2.执行redis-trib.rb会出现依赖性的错误,于是开始解决依赖性:
yum install ruby
yum install rubygems-1.3.7-5.el6.noarch.rpm
yum install libyaml-0.1.3-4.el6_6.x86_64.rpm ruby-2.2.3-1.el6.x86_64.rpm
gem install –local redis-4.0.1.gem
3.查看集群化工具是否安装完成
gem list –local
4.创建集群,查看集群中的主从关系
mkdir cluster
mkdir cluster/700{1..6}
# 在cluster下建立六个目录700*,作为集群中每个节点的目录在里边写配置文件redis.conf
port 700x 端口
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
appendonly yes
daemonize yes #默认值 no,该参数用于定制 redis 服务是否以守护模式运行
pidfile /usr/local/cluster/700x/redis.pid # 节点的pid文件所在位置
logfile /usr/local/cluster/700x/redis.log # 节点的日志文件所在位置
redis-server redis.conf ---加载配置文件
5.cat redis.log查看日志,改正warning
查看相应端口是否打开:netstat -antlp
4.创建集群:
redis-trib.rb create --replicas 1 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005 127.0.0.1:7006
5.在集群中写入值并查看
6.使现在保存键值的master宕掉,进入集群,查看数据(slave接替)
接着宕掉slave,查看发现得不到数据,如果将slave或者master恢复,数据也会恢复