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集群的前两个主机 分别关闭 ...
随机推荐
- Redis 高级特性
Redis 数据结构 Redis 常用的数据类型主要有以下五种: String Hash List Set Sorted set Redis 内部使用一个 redisObject 对象来表示所有的 k ...
- [leetcode]43. Multiply Strings高精度乘法
Given two non-negative integers num1 and num2 represented as strings, return the product of num1 and ...
- 获奖感想和Java学习总结
获奖感想和Java学习总结 一.获奖感想 能成为小黄衫第二批的成员之一,我感到非常荣幸.我在对老师给予我的鼓励与肯定感到欣喜之余,更多的是感受到了一种鞭策与期望.小黄衫不仅仅是对我的一种奖励,更是激励 ...
- 字符串转码中文乱码问题的进一步理解 UTF-8 GBK转码
首先 要明确指出一点: 编码方式是针对字符串转换之后的字节数组的,字符串并没有编码方式的概念,因为字符串不管是在什么编码页面下他只是一个对象,他只有字符的概念,不管页面编码方式是什么,他始终都是那几个 ...
- 互联网公司的面试官是如何360°无死角考察候选人的?[z]
[z]https://juejin.im/post/5c0e47ebf265da614e2be9a7 一.写在前面 最近收到不少读者反馈,说自己在应聘一些中大型互联网公司的Java工程师岗位时遇到了不 ...
- centos 7 安装pip
1.首先检查centos 有没有安装python-pip 包, >>yum install python-pipnotice:NO package python-pip available ...
- 探索未知种族之osg类生物--渲染遍历之GraphicsContext::runOperations
osg::GraphicsContext::runOperations().我们先来看一下这个函数的执行过程. ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 ...
- QT-QWebEngineView-createWindow弹出页面解决
首先要写一个继承QWebEngineView的类 头文件: #ifndef WEBBROWSER_H #define WEBBROWSER_H #include <QWebEngineView& ...
- 腾讯云的基本配置(centos 7.1)及mysql的使用
因为想在微信上开发些东西,所以租用了一个月的腾讯云. 推荐选择的镜像是centos7.1.这个系统的选择和本地操作系统基本没有关系. 首先要登录到云主机中,用户名是root,密码是当初自己设置的那一个 ...
- Unity的几个特殊文件夹
1.以.开头的文件夹会被unity忽略,资源不会被导入,脚本不会编译. 2.Standard Assets和Pro Standard Assets:在这个文件夹中的脚本最先被编译. 3.Editor: ...