Redis主从复制和高可用

一.Redis的安装和主从配置

实验环境:rhel6.5     

主机:server{1..4}   ip:172.25.254.{1..4}

1.在server1和server2上下载redis安装包,解压,编译,安装

tar zxf redis-4.0.8.tar.gz 
yum install -y gcc
make&&make install
cd utils/
./install_server.sh  #启动脚本

2.server1修改监听端口

[root@server1 utils]# redis-cli   #查看安装信息        
[root@server1 udev]# cd /etc/redis/
[root@server1 redis]# vim 6379.conf   #监听端口改为0.0.0.0,有什么监听什么

netstat查看服务端口是否开启

3.server2上修改配置文件

[root@server2 redis]# vim 6379.conf 
[root@server2 redis]# /etc/init.d/redis_6379 restart   #重启
Stopping ...
Redis stopped
Starting Redis server...

4.测试,在server1上设置变量,server2上进行了同步

二.redis集群实现高可用

1.在上一步d的基础上在打开两个虚拟机server3,用于实现redis的高可用

2.在3上安装redis,实现主从,get name可以看到主的消息

3.配置文件复制到redis目录下

[root@server2 redis-4.0.8]# cp sentinel.conf /etc/redis/
[root@server2 redis-4.0.8]# cd /etc/redis/
 [root@server2 ~]# vim /etc/redis/sentinel.conf 
17 protected-mode no        #保护模式
 21 port 26379
 69 sentinel monitor mymaster 172.25.254.1 6379 2  
#sentinel监听主机的ip和6379端口,必须至少有两个连接才能故障切换
 98 sentinel down-after-milliseconds mymaster 10000
#默认30s没有反应,认为服务器断开

复制到集群的每一个结点上,scp

4.在任意一台中可以监听

redis的主是server1,slave为2,3

redis-server /etc/redis/sentinel.conf –sentinel   #监控命令,查看master和slave

5.手动停止server1

redis-cli  

shutdown

监控查看server1--->server2

集群中master变为server2,server2的配置文件也变为server2

三.集群管理工具

1.写redis的配置目录,创建不同的进程,redis.conf复制到每一个700{1..6}  目录中,

redis-server 700{1..6}/redis.conf   #开启,生效

cd /usr/local
mkdir cluster
cd cluster
mkdir 700{1..6}
cd 7001
vim redis.conf
port 7000        #每一个不一样
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000  #超时
appendonly yes
 
redis-cli -p 7001  #查看状态
[root@server1 ~]# redis-trib.rb --help
/usr/bin/env: ruby: No such file or directory

[root@server1 ~]# yum install -y ruby

[root@server1 ~]# redis-trib.rb --help
/usr/local/bin/redis-trib.rb:24:in `require': no such file to load -- rubygems (LoadError)
	from /usr/local/bin/redis-trib.rb:24
[root@server1 ~]# yum install -y rubygems-1.3.7-5.el6.noarch.rpm

[root@server1 ~]# redis-trib.rb --help
/usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require': no such file to load -- redis (LoadError)
	from /usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `require'
	from /usr/local/bin/redis-trib.rb:25
[root@server1 ~]# gem list

*** LOCAL GEMS ***


[root@server1 ~]# gem --help
RubyGems is a sophisticated package manager for Ruby.  This is a
basic help message containing pointers to more information.

  Usage:
    gem -h/--help
    gem -v/--version
    gem command [arguments...] [options...]

  Examples:
    gem install rake
    gem list --local
    gem build package.gemspec
    gem help install

  Further help:
    gem help commands            list all 'gem' commands
    gem help examples            show some examples of usage
    gem help platforms           show information about platforms
    gem help <COMMAND>           show help on COMMAND
                                   (e.g. 'gem help install')
    gem server                   present a web page at
                                 http://localhost:8808/
                                 with info about installed gems
  Further information:
    http://rubygems.rubyforge.org
[root@server1 ~]# gem   install  --local redis-4.0.1.gem 
ERROR:  Error installing redis-4.0.1.gem:
	redis requires Ruby version >= 2.2.2.
[root@server1 ~]# rpm -q ruby
ruby-1.8.7.352-12.el6_4.x86_64
[root@server1 ~]# yum install ruby-2.2.3-1.el6.x86_64.rpm libyaml-0.1.3-4.el6_6.x86_64.rpm -y

[root@server1 ~]# gem   install  --local redis-4.0.1.gem 
Successfully installed redis-4.0.1
Parsing documentation for redis-4.0.1
Installing ri documentation for redis-4.0.1
Done installing documentation for redis after 1 seconds
1 gem installed

[root@server1 ~]# gem list

*** LOCAL GEMS ***

bigdecimal (1.2.6)
io-console (0.4.3)
json (1.8.1)
minitest (5.4.3)
power_assert (0.2.2)
psych (2.0.8)
rake (10.4.2)
rdoc (4.2.0)
redis (4.0.1)
test-unit (3.0.8)

[root@server1 ~]# 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

Yes确认添加
[root@server1 ~]# redis-trib.rb info 127.0.0.1:7002
[root@server1 ~]# redis-trib.rb  check 127.0.0.1:7001

[root@server1 ~]# redis-cli -c -p 7001
127.0.0.1:7001> set name xue   7001上设定name等于xue
-> Redirected to slot [5798] located at 127.0.0.1:7002
OK
127.0.0.1:7002> get name
"xue" 

[root@server1 ~]# redis-cli -c -p 7006
127.0.0.1:7006> get name    -> Redirected to slot [5798] located at 127.0.0.1:7002
"xue"
127.0.0.1:7002> set user westos  7006上改了名字
OK
127.0.0.1:7002> get user       7002查到改了的名字
"westos"

[root@server1 ~]# redis-cli -c -p 7004
127.0.0.1:7004> get user
-> Redirected to slot [5474] located at 127.0.0.1:7002
"westos"
127.0.0.1:7002> del user    #删除之后名字没有了
(integer) 1
127.0.0.1:7002> get user
(nil)
127.0.0.1:700

[root@server1 ~]# redis-cli -c -p 7004    1,4互相为主从
127.0.0.1:7004> SHUTDOWN
not connected> 
[root@server1 ~]# ps ax
[root@server1 ~]# redis-cli -c -p 7001
127.0.0.1:7001> get name
-> Redirected to slot [5798] located at 127.0.0.1:7002
"xue"
127.0.0.1:7002> 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值