redis主从和集群搭建
主从搭建
redis的主从搭建非常简单,打开配置文件6379.conf,只需要将主节点的protected-mode设置为no,然后在从节点配置中加入:slaveof <masterip> <masterport>,启动即可
集群
redis集群的TCP端口
每个redis集群节点都需要两个TCP端口,用户端口和集群间节点通信的端口,如6379和16379,集群间节点通信端口为用户端口加上10000
redis集群数据分片
redis集群数据分片是通过哈希槽来实现的,redis集群中有16384个哈希槽,
redis集群的主从模式
为了提高集群的可用性,通常会为集群中每个节点都配置一个从节点,这样在集群中任务节点down机之后,从节点会顶替原来的主节点成为新的主节点,保证集群的正常运行
集群的一致性保证
redis集群无法保证强一致性。某些情况下,redis集群会丢失客户端提交的写操作。丢失的原因:
1、redis采用异步复制。
当接收到用户的写请求之后,redis会开启一个异步线程将写请求异步同步到集群中的其他节点上,并立即返回处理结果。因为返回给用户处理结果的时候异步同步数据并没有完成,如果一个节点在完成同步的时候down机,并没有将数据复制到从节点上,就会导致数据的不一致
2、某个节点down机之后迟迟没有选举出主节点,会导致同步到该节点上的数据丢失。如果主节点down机,该节点拒绝提供写服务
redis集群搭建
1、创建目录:mkdir /usr/local/redis-cluster
2、创建集群节点:mkdir -p 9001/data 9002/data 9003/data 9004/data 9005/data 9006/data
3、将已经安装好的redis实例的src目录下的运行脚本考到bin目录下:cp mkreleasehdr.sh redis-benchmark redis-check-aof redis-check-dump redis-cli redis-server redis-trib.rb /usr/local/redis-cluster/bin
4、复制一个redis实例到9001:cp /usr/local/redis/* 9001
5、进入9001并修改redis.conf文件:
port 9001
daemonize yes
bind 192.168.40.130
dir /usr/local/redis-cluster/9001/data/
pidfile /var/run/redis_9001.pid
cluster-enabled yes
cluster-config-file nodes9001.conf
cluster-node-timeout 15000
appendonly yes
6、将该实例复制到其他的文件夹下并修改配置
7、启动6个节点
/usr/local/bin/redis-server /usr/local/redis-cluster/9001/redis.conf
/usr/local/bin/redis-server /usr/local/redis-cluster/9002/redis.conf
/usr/local/bin/redis-server /usr/local/redis-cluster/9003/redis.conf
/usr/local/bin/redis-server /usr/local/redis-cluster/9004/redis.conf
/usr/local/bin/redis-server /usr/local/redis-cluster/9005/redis.conf
/usr/local/bin/redis-server /usr/local/redis-cluster/9006/redis.conf
8、安装集群所需软件:
yum install ruby
yum install rubygems
gem install redis
9、创建集群:
/usr/local/redis-cluster/bin/redis-trib.rb create --replicas 1 192.168.119.131:9001 192.168.119.131:9002 192.168.119.131:9003 192.168.119.131:9004 192.168.119.131:9005 192.168.119.131:9006
10、随便连上一个节点测试:
/usr/local/redis-cluster/bin/redis-cli -c -h 192.168.119.131 -p 9001
cluster info
cluster nodes
11、搭建完成
redis主从和集群搭建的更多相关文章
- Redis主从&哨兵集群搭建
主从集群 在搭建主从集群前,我们先把Redis安装起来: #解压Redis压缩包 [root@master lf]# tar -zxvf redis-6.2.1.tar.gz -- #安装gcc [r ...
- redis主从与集群搭建
redis搭建主从 条件:yum安装(3.2.1)与编译安装(5.0.0)都可以 环境:我这里在同一台主机上搭建,当然也可以两台. 1) 复制redis.conf的主配置文件并命令为slave.con ...
- Redis 3.0 集群搭建
Redis 3.0 集群搭建 开启两个虚拟机 分别在两个虚拟机上开启3个Redis实例 3主3从两个虚拟机里的实例互为主备 下面分别在两个虚拟机上安装,网络设置参照codis集群的前两个主机 分别关闭 ...
- redis主从、集群、哨兵
redis的主从.集群.哨兵 参考: https://blog.csdn.net/robertohuang/article/details/70741575 https://blog.csdn.net ...
- Redis 5.0 集群搭建
Redis 5.0 集群搭建 单机版的 Redis 搭建 https://www.jianshu.com/p/b68e68bbd725 /usr/local/目录 mkdir redis-cluste ...
- 【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的Cluster集群搭建
一.引言 本文档只对Redis的Cluster集群做简单的介绍,并没有对分布式系统的详细概念做深入的探讨.本文只是提供了有关如何设置集群.测试和操作集群的说明,而不涉及Redis集群规范中涵 ...
- linux Redis 5.0集群搭建
文档结构如下: Redis cluster 是redis的分布式解决方案,在3.0版本正式推出后,有效的解决了redis分布式方面的需求:当遇到单机内存,并发,流量等瓶颈是,可以采用cluster架构 ...
- Redis操作及集群搭建以及高可用配置
NoSQL - Redis 缓存技术 Redis功能介绍 数据类型丰富 支持持久化 多种内存分配及回收策略 支持弱事务 支持高可用 支持分布式分片集群 企业缓存产品介绍 Memcached: 优点:高 ...
随机推荐
- 2018-8-10-wpf-单例
title author date CreateTime categories wpf 单例 lindexi 2018-08-10 19:16:53 +0800 2018-2-13 17:23:3 + ...
- JavaScript代码/ES6语法笔记一
1. new Set()/去重一个数组 let arr = [1, 2, 2, 3, 3]; let set = new Set(arr); let newArr = Array.from(set); ...
- VersionInformation.dwPlatformId == 2
Result:=OSVI.dwPlatformId; { 返回值: 为0表示为win3x系统; 为1表示为win9x系统; 为2表示为winNT; 为3表示为win2000系统; }
- iftop简单使用
在linux下想查看当前与主机通信的IP有哪些?流量多少?怎么办?使用iftop吧,小巧实用的小工具.在排查问题的时候能起到大作用. centos安装 yum install iftop 界面如下: ...
- Galaxy
Galaxy 在一维坐标轴上给出n个点,第i个点坐标为\(x_i\),现在你可以任意移动k个点的,最小化它们的方差,\(n\leq 50000\). 解 感觉以前写的太乱了,补一篇可以供快速阅读的题解 ...
- PHP ftp_mkdir() 函数
定义和用法 ftp_mkdir() 函数在 FTP 服务器上创建一个新目录. 如果成功,该函数返回新目录的名称和路径.如果失败,则返回 FALSE. 语法 ftp_mkdir(ftp_connecti ...
- HBase与Sqoop集成案例
HBase与Sqoop集成 案例:将RDBMS中的数据抽取到HBase中 Step1.配置sqoop-env.sh如下: Step2.在Mysql中创建一张数据库library,一张表book CRE ...
- 兼容软件,Wine安装,Crossover安装,
EL6 (RHEL6 and SL6) Required packages for proper building of 32-bit Wine on 64-bit EL6 yum install - ...
- Python中练习题关于内置函数的getattr,setattr问题
执行一下代码的结果是? class A: def __init__(self,a,b,c): self.x = a+b+c a = A(1,2,3) b = getattr(a,'x') setatt ...
- C++的ofstream与ifstream使用
基本理解: ofstream是从内存到硬盘,ifstream是从硬盘到内存,其实所谓的流缓冲就是内存空间; 在C++中,有一个stream这个类,所有的I/O都以这个“流”类为基础的,包括我们要认识的 ...