mysql 的 缓存 -- Redis & 集群

一、配置环境

1、安装并修改端口

[root@server1 ~]# ls
redis-4.0.8.tar.gz
[root@server1 ~]# tar zxf redis-4.0.8.tar.gz 
[root@server1 ~]# cd redis-4.0.8
[root@server1 redis-4.0.8]# ls
00-RELEASENOTES  COPYING  Makefile   redis.conf       runtest-sentinel  tests
BUGS             deps     MANIFESTO  runtest          sentinel.conf     utils
CONTRIBUTING     INSTALL  README.md  runtest-cluster  src
[root@server1 redis-4.0.8]# yum install -y gcc
[root@server1 redis-4.0.8]# make
cd src && make all
make[1]: Entering directory `/root/redis-4.0.8/src'
    CC Makefile.dep
[root@server1 redis-4.0.8]# make install
[root@server1 redis-4.0.8]# ls
00-RELEASENOTES  COPYING  Makefile   redis.conf       runtest-sentinel  tests
BUGS             deps     MANIFESTO  runtest          sentinel.conf     utils
CONTRIBUTING     INSTALL  README.md  runtest-cluster  src
[root@server1 redis-4.0.8]# cd utils/
[root@server1 utils]# ls
build-static-symbols.tcl  graphs             redis-copy.rb          speed-regression.tcl
cluster_fail_time.tcl     hashtable          redis_init_script      whatisdoing.sh
corrupt_rdb.c             hyperloglog        redis_init_script.tpl
create-cluster            install_server.sh  redis-sha1.rb
generate-command-help.rb  lru                releasetools
[root@server1 utils]# ./install_server.sh

这里写图片描述

修改端口,监听所有

[root@server1 utils]# vim /etc/redis/6379.conf 

这里写图片描述

[root@server1 utils]# /etc/init.d/redis_6379 stop
Stopping ...
Redis stopped
[root@server1 utils]# /etc/init.d/redis_6379 start
Starting Redis server...

这里写图片描述

server2 server3 同样操作。

2、测试:

server2:

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

这里写图片描述

server1:

[root@server1 redis-4.0.8]# redis-cli
127.0.0.1:6379> set name jane
OK
127.0.0.1:6379> get name
"jane"
127.0.0.1:6379> set user1 123
OK
127.0.0.1:6379> get user1
"123"
127.0.0.1:6379> 

这里写图片描述

[root@server2 redis-4.0.8]# cd /etc/redis/
[root@server2 redis]# redis-cli
127.0.0.1:6379> get name
"jane"
127.0.0.1:6379> get user1
"123"
127.0.0.1:6379> 

这里写图片描述

因为数据少,所以非常快的速度就同步。

3、设置监控

[root@server1 ~]# cd /etc/redis/
[root@server1 redis]# ls
6379.conf  sentinel.conf
[root@server1 redis]# vim sentinel.conf 
[root@server1 redis]# scp sentinel.conf root@172.25.50.2:/etc/redis/
sentinel.conf                                             100% 7590     7.4KB/s   00:00    
[root@server1 redis]# scp sentinel.conf root@172.25.50.3:/etc/redis/
sentinel.conf                                             100% 7590     7.4KB/s   00:00    

这里写图片描述
这里写图片描述
这里写图片描述

[root@server1 redis]# redis-server /etc/redis/sentinel.conf --sentinel
                  ##监控命令

这里写图片描述

server2 和 server3 都可以监控

[root@server1 redis]# redis-cli
127.0.0.1:6379> info
# Server

这里写图片描述

可以看到两个slave的信息。

4、测试:当我们把 master(server1) 停掉之后,通过监控(server2),我们可以看到 master 随便跳到了某一个上。

[root@server1 redis]# vim sentinel.conf 
##因为之前做过监控,所以在这个文件里有信息记录,我们得先删掉server1,server2,server3这个文件最后的所有被记录的内容之后才可以进行下一次监控和操作
[root@server1 ~]# redis-cli
127.0.0.1:6379> SHUTDOWN
not connected> 

这里写图片描述

通过监控可以看到,master 跳到了 server3上。

接着我们去server3 文件里查看,发现master的ip随着改变了。

二、开始创建 redis 集群

1、配置环境,开启服务

[root@server1 ~]# cd /usr/local
[root@server1 local]# ls
bin  etc  games  include  lib  lib64  libexec  sbin  share  src
[root@server1 local]# mkdir cluster
[root@server1 local]# cd cluster/
[root@server1 cluster]# mkdir 7001
[root@server1 cluster]# mkdir 7002
[root@server1 cluster]# mkdir 7003
[root@server1 cluster]# mkdir 7004
[root@server1 cluster]# mkdir 7005
[root@server1 cluster]# mkdir 7006
[root@server1 cluster]# cd 7001/
[root@server1 7001]# ls
[root@server1 7001]# vim redis.conf

这里写图片描述

[root@server1 7001]# cd
[root@server1 ~]# cd redis-4.0.8
[root@server1 redis-4.0.8]# cd src/
[root@server1 src]# cp redis-trib.rb  /usr/local/bin/
[root@server1 src]# cd /usr/local/bin/
[root@server1 bin]# ls
redis-benchmark  redis-check-rdb  redis-sentinel  redis-trib.rb
redis-check-aof  redis-cli        redis-server

这里写图片描述

libyaml-0.1.3-4.el6_6.x86_64.rpm  redis-4.0.8.tar.gz
redis-4.0.1.gem                   ruby-2.2.3-1.el6.x86_64.rpm
redis-4.0.8                       rubygems-1.3.7-5.el6.noarch.rpm
[root@server1 ~]# yum install -y libyaml-0.1.3-4.el6_6.x86_64.rpm 
[root@server1 ~]# yum install -y ruby-2.2.3-1.el6.x86_64.rpm 
[root@server1 ~]# gem install  --local redis-4.0.1.gem 
[root@server1 ~]# yum install -y ruby

这里写图片描述

[root@server1 ~]# /etc/init.d/redis_6379 stop
Stopping ...
Redis stopped
[root@server1 ~]# cd /usr/local/cluster/
[root@server1 cluster]# ls
7001  7002  7003  7004  7005  7006
[root@server1 cluster]# cd 7001/
[root@server1 7001]# ls
redis.conf
[root@server1 7001]# redis-server redis.conf    ##开启7001的集群
[root@server1 7001]# pwd
/usr/local/cluster/7001

这里写图片描述

[root@server1 7001]# ls
appendonly.aof  nodes.conf  redis.conf  redis.log  redis.pid
[root@server1 7001]# cat redis.log

这里写图片描述

[root@server1 7001]# echo 511 > /proc/sys/net/core/somaxconn
[root@server1 7001]# sysctl -w  vm.overcommit_memory=1
vm.overcommit_memory = 1
[root@server1 7001]# vim /etc/sysctl.conf
[root@server1 7001]# echo never > /sys/kernel/mm/transparent_hugepage/enabled

这里写图片描述

这里写图片描述

[root@server1 7006]# ps ax

这里写图片描述

2、创建集群

[root@server1 7006]# 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
      ##创建集群

这里写图片描述

查看:

[root@server1 7006]# redis-trib.rb info  127.0.0.1:7001
[root@server1 7006]# redis-trib.rb info  127.0.0.1:7001

这里写图片描述

我们现在写进去一些数据

这里写图片描述

3、测试一:一共有三组,我们搞跨一组。

如果我们先挂掉一 个 master ,就会自动跳到另一个 slave上,这个slave就自动成了master。所以下一次我们开启的时候,得先开启这个master。

这里写图片描述

这里写图片描述

测试二:我们干掉两个master,一半多被干掉。

首先,我们恢复状态。
这里写图片描述

这里写图片描述

总结:

 我们得保证哈系槽的完整性。均匀分配16384.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值