Redis主从和集群
主从概念
- 一个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
添加数据自动跳转服务器。
Redis主从和集群的更多相关文章
- redis主从、集群、哨兵
redis的主从.集群.哨兵 参考: https://blog.csdn.net/robertohuang/article/details/70741575 https://blog.csdn.net ...
- 【Redis学习专题】- Redis主从+哨兵集群部署
集群版本: redis-4.0.14 集群节点: 节点角色 IP redis-master 10.100.8.21 redis-slave1 10.100.8.22 redis-slave2 10.1 ...
- Redis主从&哨兵集群搭建
主从集群 在搭建主从集群前,我们先把Redis安装起来: #解压Redis压缩包 [root@master lf]# tar -zxvf redis-6.2.1.tar.gz -- #安装gcc [r ...
- redis 主从 及集群
一.redis 主从架构 搭建redis 主从 (可以用一台主机,也可以两台主机) 环境准备: 一台服务器:192.168.206.6 操作系统:CentOS7.5 redis 版本: redis ...
- redis主从与集群搭建
redis搭建主从 条件:yum安装(3.2.1)与编译安装(5.0.0)都可以 环境:我这里在同一台主机上搭建,当然也可以两台. 1) 复制redis.conf的主配置文件并命令为slave.con ...
- redis主从和集群搭建
主从搭建 redis的主从搭建非常简单,打开配置文件6379.conf,只需要将主节点的protected-mode设置为no,然后在从节点配置中加入:slaveof <masterip> ...
- 三千字介绍Redis主从+哨兵+集群
一.Redis持久化策略 1.RDB 每隔几分钟或者一段时间会将redis内存中的数据全量的写入到一个文件中去. 优点: 因为他是每隔一段时间的全量备份,代表了每个时间段的数据.所以适合做冷备份. R ...
- 项目实战11—企业级nosql数据库应用与实战-redis的主从和集群
企业级nosql数据库应用与实战-redis 环境背景:随着互联网2.0时代的发展,越来越多的公司更加注重用户体验和互动,这些公司的平台上会出现越来越多方便用户操作和选择的新功能,如优惠券发放.抢红包 ...
- Redis 3.0 集群搭建
Redis 3.0 集群搭建 开启两个虚拟机 分别在两个虚拟机上开启3个Redis实例 3主3从两个虚拟机里的实例互为主备 下面分别在两个虚拟机上安装,网络设置参照codis集群的前两个主机 分别关闭 ...
随机推荐
- 命名空间 extern的用法 static全局变量
std是标准库中的命名空间: 关于extern的用法可以参考文献http://blog.163.com/sunjinxia%40126/blog/static/94984879201312145021 ...
- python中sys.path--学习
本着下定义开头吧:python中import某个A模块时,首先会从python的内置模块中查找是否含义该模块的定义若未查询到会从sys.path对应的模块路径查询是否含有对应模块的定义,如果搜索完成依 ...
- Eclipse Java注释模板设置
类型(Types)注释标签(类的注释): /** * @ClassName: ${type_name} * @Description: ${todo}(这里用一句话描述这个类的作用) * @autho ...
- oracle 导入DMP文件时IMP-00013: 只有 DBA 才能导入由其他 DBA 导出的文件 IMP-00000: 未成功终止导入
参考: https://blog.csdn.net/breaker892902/article/details/11004495 给要导入的用户授权 插入成功
- JavaSE基础知识(5)—面向对象(5.2类的成员)
一.属性 1.语法 数据类型 属性名 [= 属性值]; 2.特点 ①属性的数据类型可以为任意类型,包含基本类型或引用类型②属性可以不用手动赋值,有默认值 int——0 double——0.0 char ...
- python之运算符
运算符的定义 运算符用于执行程序代码运算,会针对一个以上操作数项目来进行运算. 运算符类型 .算数运算符 .比较运算符 .赋值运算符 .位运算符 .逻辑运算符 .成员运算符 7身份运算符 详情介绍 1 ...
- PyCharm 安装package matplotlib为例
File --> settings --> Project Interpreter --> 搜索 matplotlib 如果觉得官网下载的速度慢,可以添加阿里云的 repositor ...
- javascript的异步编程
同步与异步 介绍异步之前,回顾一下,所谓同步编程,就是计算机一行一行按顺序依次执行代码,当前代码任务耗时执行会阻塞后续代码的执行. 同步编程,即是一种典型的请求-响应模型,当请求调用一个函数或方法后, ...
- poj1860
刚上来一堆英文着实有点蒙逼,仔细分析是一个Bellman的变形,只要能找出一个无限增大的环这个题就好解决了,我这里用的SPFA,用邻接链表进行储存,直接套用的模板,部分变量名字没有改的很好 #incl ...
- mysql 在update中实现子查询的方式
当使用mysql条件更新时--最先让人想到的写法 UPDATE buyer SET is_seller=1 WHERE uid IN (SELECT uid FROM seller) 此语句是错误的, ...