文档章节

Redis主从和集群

o
 osc_a22drz29
发布于 2019/03/22 16:39
字数 797
阅读 16
收藏 0

主从概念

  • 一个master可以拥有多个slave,一个slave又可以拥有多个slave。如此下去,形成了强大的多级服务器集群架构。
  • master用写数据,经统计:网站的读写比率是10:1
  • 通过主从分离可以实现读写分离
  • master和slave都是一个redis实例(redis服务) 在这里插入图片描述

主从配置

Redis:

安装
sudo apt-get install redis-server

卸载
sudo apt-get purge --auto-remove redis-server

启动
sudo service redis-server start

停止
sudo service redis-server stop
## master ##
#1. 修改 master配置
vim /etc/redis/redis.conf
#2.修改bind为本机ip
bind your_ip


## slave配置 ##
#1.复制redis.conf 名为slave.conf
cp redis.conf slave.conf
# 2.修改配置 修改bind为本机ip
bind your_ip
#3.更改端口 例如 
port 6378
#4. 更改slaveof
slaveof your_ip 6379
redis-server /etc/redis/slave.conf

查看主从关系 redis-cli -h your_ip -p your_port info Replication 在这里插入图片描述 或者: 在这里插入图片描述 当master中添加数据后,会自动备份到slave中,slave中read_only.

集群

为什么要有集群?

  • 如果访问量过大(1000W),主服务肯定会挂掉,数据服务就挂掉了或者发生自然灾难。
  • 大公司都有跟多服务器(华东地区,华南地区,华北地区,西北地区,西南地区等)

集群概念

  • 集群式相互独立的,通过高速网络互联的计算机,它们构成了一个组,并以单一系统的模式加以管理。一个客户与集群相互作用时,集群像是一个独立的服务器。集群配置用于提高可用性和可缩放性。

当请求到来首先负载均衡服务器处理,把请求转发到另外一台服务器上。

分类

  • 软件层面 只有一台电脑,在这台电脑上启动了多个redis服务。

  • 硬件层面 存在多台实体电脑,每台电脑上启动了一个或多个redis服务

机器一: 新建一个文件夹,建立7000.conf 7001.conf 7002.conf

port 7000 #(7000-7002)
bind 172.21.0.16
#作为守护进程运行
daemonize yes
pidfile 7000.pid #(7000-7002)
cluster-enabled yes
cluster-config-file 7000_node.conf #(7000-7002)
#连接集群的超时时间
cluster-node-timeout 15000
appendonly yes

启动三个服务 redis-server 7000.conf redis-server 7001.conf redis-server 7002.conf 在这里插入图片描述 机器二相同配置 (7003-7005)

创建集群

  • redis的安装包中包含了redis-trib.rb,用于创建集群。

  • 接下来机器上进行操作

  • 将指令复制,这样可以在任何目录下调用此命令。 sudo cp /usr/share/doc/redis-tools/examples /redis-trib.rb /usr/local/bin/

  • 安装ruby环境,因为redis-trib.rb是ruby开发的 sudo apt-get install ruby

  • 安装redis相关依赖 sudo gem install redis

  • 运行如下指令创建集群 redis-trib.rb create --replicas 1 172.21.0.16:7000 172.21.0.16:7001 172.21.0.16:7002 172.21.0.16:7003 172.21.0.16:7004 172.21.0.16:7005

在这里插入图片描述 在这里插入图片描述

Redis 集群中内置了 16384 个哈希槽,当需要在 Redis 集群中放置一个 key-value

时,redis 先对 key 使用 crc16 算法算出一个结果,然后把结果对 16384 求余数,

这样每个 key 都会对应一个编号在 0-16383 之间的哈希槽,redis 会根据节点数量大

致均等的将哈希槽映射到不同的节点。

槽的分配: 在这里插入图片描述

数据验证 连接 redis,例如进入7002 redis-cli -h 172.21.0.16 -c -p 7002 在这里插入图片描述 添加数据自动跳转服务器。

在这里插入图片描述 在这里插入图片描述

o
粉丝 0
博文 500
码字总数 0
作品 0
私信 提问
加载中
请先登录后再评论。

暂无文章

Openstack 从入门到放弃 - Ussuri release -0701

使用vmware 虚拟机环境搭建测试 OS: CentOS 8 此示例体系结构与最小生产体系结构不同,如下所示: 网络代理驻留在控制器节点上,而不是一个或多个专用网络节点上。 自助服务网络的覆盖(隧道...

osc_icwhzig7
17分钟前
5
0
如何用Nearby Service开发针对附近人群的精准广告推送功能

  当你想找一家餐厅吃饭,却不知道去哪家,这时候手机跳出一条通知,为你自动推送附近优质餐厅的信息,你会点击查看吗?当你还在店内纠结于是否买下一双球鞋时,手机应用给了你发放了老顾客...

osc_7dwwmolq
19分钟前
4
0
vue全局防抖和节流

函数防抖 防抖分为两种: 一种是立即执行:频繁触发事件,第一次触发时执行函数,后面触发不会执行,停止触发,间隔一定时间之后再触发事件,函数才会再次执行 另一种是后执行:频繁...

我心中有猛狗
19分钟前
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部