为什么需要主从配置?????
当出现高并发流量情况 如果我们只有一个redis
服务器 挂掉之后 网站的运营会出现问题.
我们可以多弄几台redis
服务器,使得一台服务器挂掉自动切换到另一台redis
服务器,这个时候就实现了一个高可用的系统
主从配置 环境是2台 ubuntu server 18.04
虚拟机
首先安装redis-server
sudo apt-get update
sudo apt-get install redis-server
主库配置. 修改配置文件
vim /etc/redis/redis.conf
# bind 127.0.0.1 ::1 注释掉这个外链地址 允许外部连接麻 不然从库怎么去连接呢 对吧
修改配置文件
vim /etc/redis/redis.conf
# slaveof 主库ip 主库端口号 把这行注释打开
配置完成都需要去重启服务
配置完成之后就需要去查看是否配置成功了,然后去主库服务器上使用redis-cli 连接
输入 info
命令查看
有一个 Replication
connected_slaves:1
为一就说明有了一个重库 好吧 因为比较简单 所以不做详细说明
在官网找到redis
的包 使用wget获取资源 然后解压 因为官方提供了makefile
所以比较方便 直接make
就可以了 编译好的会出现在src
目录里面
为了方便 我直接把我们需要用到的一些东西直接拷贝到了我的家目录
cp ./src/redis-server /home/test/redis-cluster/
cp ./src/redis-cli /home/test/redis-cluster/
cp ./src/redis-trib.rb /home/test/redis-cluster/
拷贝过去后 然后我去redis-cluster
里面创建6个文件夹 每个存放一个redis服务
mkdir 7000 7001 7002 7003 7004 7005
给每一个文件夹都设置他们的配置文件
redis.conf (内容如下)
port 7000 这是端口 //你希望是啥就是啥
cluster-enabled yes //开启集群模式
cluster-config-file nodes.conf //集群的配置 配置文件首次启动自动生成
cluster-node-timeout 5000 //请求超时
appendonly yes //aof日志开启 有需要就开启,它会每次写操作都记录一条日志
../redis-server ./redis.conf
这样启动会发现 如果我们将终端关闭 这个redis
也就关闭 所以我们使用nohub
命令去后台运行
nohup ../redis-server ./redis.conf &
启动完6个redis
使用redis-trib.rb
来创建
因为是ruby编写的 所以需要先安装一个redis
顺便安装一个ruby
的redis gem install redis
./redis-trib.rb create --replicas 1 127.0.0.1:7000 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
这里使用的命令是create,因为我们要创建一个新的集群。该选项–cluster-replicas 1意味着我们希望每个创建的主服务器都有一个从服 其他参数是我要用于创建新集群的实例的地址列表。
显然,我们要求的唯一设置是创建一个包含3个主服务器和3个从服务器的集群。
Redis-cli将为您提供配置。键入yes接受建议的配置。将配置并加入群集,这意味着实例将被引导为彼此通信。最后,如果一切顺利,你会看到这样的消息:
[OK] All 16384 slots covered 这意味着至少有一个主实例为16384个可用插槽提供服务。
然后使用 redis-cli -c -p 7000
连接redis (-c 代表集群模式)
set name test
然后切换别的redis服务 去get 获取成功.
参考来源:憧憬在 aoppp.com发布