redis分片集群安装部署
redis分片集群安装与部署
分片集群的优势
- 高可用。且方便扩展。
- 数据分片,多节点提供服务,提高性能,数据提供冗余备份。
分片集群部署
只需更改配置文件
部署架构:6个节点,3主3从。数据集分为3片,分别再A,B,C节点上。A1和B1和C1分别为A,B,C的分片。
散列槽:
Redis Cluster 不使用一致散列,而是一种不同形式的分片,其中每个键在概念上都是我们所谓的散列槽的一部分。
Redis 集群中有 16384 个哈希槽,要计算给定键的哈希槽是多少,我们只需取密钥的 CRC16 模数 16384。
Redis 集群中的每个节点都负责哈希槽的一个子集。
部署规划
3台服务器,6个实例,每台服务器部署2个实例。
| IP地址 | 角色 | 端口 | 配置文件 | 数据目录 |
|---|---|---|---|---|
| 192.168.0.77 | 分片A | 7000 | /data/redis-cluster/redis-7000/bin/redis-7000.conf | /data/redis-cluster/redis-7000 |
| 192.168.0.89 | 分片B | 7000 | /data/redis-cluster/redis-7000/bin/redis-7000.conf | /data/redis-cluster/redis-7000 |
| 192.168.0.218 | 分片C | 7000 | /data/redis-cluster/redis-7000/bin/redis-7000.conf | /data/redis-cluster/redis-7000 |
| 192.168.0.77 | 副本分片B' | 7001 | /data/redis-cluster/redis-7001/bin/redis-7001.conf | /data/redis-cluster/redis-7001 |
| 192.168.0.89 | 副本分片C' | 7001 | /data/redis-cluster/redis-7001/bin/redis-7001.conf | /data/redis-cluster/redis-7001 |
| 192.168.0.218 | 副本分片A' | 7001 | /data/redis-cluster/redis-7001/bin/redis-7001.conf | /data/redis-cluster/redis-7001 |
ps:由于我测试环境部署是单节点部署6个实例来做测试。3台服务器部署的架构可以参考以下操作步骤。一样的部署和配置,需要更换ip地址。
安装步骤
下载redis源码包
官网地址:http://download.redis.io/releases/
我选择最新版本redis-6.2.6,下载的源码tmp目录。
编译安装
#解压后编译安装
cd /tmp
tar -zxvf redis-6.2.6.tar.gz
cd
make && make install PREFIX=/opt/redis-6.2.6 #编译安装完成后,源码文件目录就可以删除了
复制对应的文件,分别复制6份,用不同的目录来区分不同的实例。
分别修改各自的配置文件。
#基本参数解析
cluster-node-timeout 10000 #主节点在该时间内无法访问,它将由其从属节点进行故障转移。
cluster-require-full-coverage no #设置为no,及时部分主节点不可用,可以的节点分片也能提供查询服务。
cluster-slave-validity-factor 6 #有效因子,在5000X10时间内,不进行故障转移。设置了非0值,如果从节点都不可故障转移,则整个集群就不可用,直到主节点重新加入。
--------- #以下是配置文件内容
dir /data/redis-cluster/redis-6.2.6-7001 #工作目录,每个实例需变更
bind 192.168.0.218 #变更为自己的ip
port 7001 #变更为自己的端口
daemonize yes
pidfile /data/redis-cluster/redis-6.2.6-7001/redis.pid #根据每个实例路径变更
logfile /var/log/redis-cluster/redis-7001.log #根据每个实例路径变更
cluster-enabled yes
cluster-config-file /data/redis-cluster/redis-6.2.6-7001/nodes-7001.conf #根据每个实例路径变更
cluster-node-timeout 10000
cluster-require-full-coverage no
cluster-slave-validity-factor 6
appendonly yes
requirepass penngke
masterauth penngke
实例比较多,创建一个一个集群启动脚本,方便启动
vim start-redis-cluster.sh
#!/bin/bash
cd /data/redis-cluster/redis-7000
./bin/redis-server ./bin/redis-7000.conf cd /data/redis-cluster/redis-7001
./bin/redis-server ./bin/redis-7001.conf cd /data/redis-cluster/redis-7002
./bin/redis-server ./bin/redis-7002.conf cd /data/redis-cluster/redis-7003
./bin/redis-server ./bin/redis-7003.conf cd /data/redis-cluster/redis-7004
./bin/redis-server ./bin/redis-7004.conf cd /data/redis-cluster/redis-7005
./bin/redis-server ./bin/redis-7005.conf
用redis-cli客户端创建集群
./redis-cli --cluster create 10.255.65.99:7000 10.255.65.99:7001 10.255.65.99:7002 10.255.65.99:7003 10.255.65.99:7004 10.255.65.99:7005 --cluster-replicas 1 --pass '密码'
#输出结果可以看到已经创建为3主3从
可以使用./redis-cli 客户端,登陆6个节点任意节点。查看状态。
./redis-cli -c -p 7000
cluster info
cluster nodes
set test 666
get test
redis分片集群安装部署的更多相关文章
- Mongodb副本集+分片集群环境部署记录
前面详细介绍了mongodb的副本集和分片的原理,这里就不赘述了.下面记录Mongodb副本集+分片集群环境部署过程: MongoDB Sharding Cluster,需要三种角色: Shard S ...
- Redis Sentinel 集群安装 step by step
一. 准备材料 服务器 IP address 操作系统 位数 Redis 版本 CNT06CAH05 192.168.3.47 CentOS 6.5 x64 Redis-3.2.6 sentine ...
- Mongodb副本集+分片集群环境部署
前面详细介绍了mongodb的副本集和分片的原理,这里就不赘述了.下面记录Mongodb副本集+分片集群环境部署过程: MongoDB Sharding Cluster,需要三种角色: Shard S ...
- HBase集群安装部署
0x01 软件环境 OS: CentOS6.5 x64 java: jdk1.8.0_111 hadoop: hadoop-2.5.2 hbase: hbase-0.98.24 0x02 集群概况 I ...
- flink部署操作-flink standalone集群安装部署
flink集群安装部署 standalone集群模式 必须依赖 必须的软件 JAVA_HOME配置 flink安装 配置flink 启动flink 添加Jobmanager/taskmanager 实 ...
- HBase 1.2.6 完全分布式集群安装部署详细过程
Apache HBase 是一个高可靠性.高性能.面向列.可伸缩的分布式存储系统,是NoSQL数据库,基于Google Bigtable思想的开源实现,可在廉价的PC Server上搭建大规模结构化存 ...
- 1.Hadoop集群安装部署
Hadoop集群安装部署 1.介绍 (1)架构模型 (2)使用工具 VMWARE cenos7 Xshell Xftp jdk-8u91-linux-x64.rpm hadoop-2.7.3.tar. ...
- Redis真集群安装
Redis真集群安装 命令文档:http://redisdoc.com/index.html 下载:https://code.google.com/archive/p/redis/downloads ...
- redis cluster 集群 安装 配置 详解
redis cluster 集群 安装 配置 详解 张映 发表于 2015-05-01 分类目录: nosql 标签:cluster, redis, 安装, 配置, 集群 Redis 集群是一个提供在 ...
随机推荐
- iGuard和NFS文件同步的解决方案
一般来说,从文件系统中获得文件变化信息,调用操作系统提供的 API 即可.Windows 操作系统上有个名为 ReadDirectoryChangesW 的 API 接口,只要监视一个目录路径就可以获 ...
- 解决->maven下载失败bug
一.前言: 经过一个下午的奋斗(谷歌,视频...重装)后终,于暂时解决了上一篇文章中的bug 传送门:https://blog.csdn.net/weixin_44092288/article/det ...
- vue引用 element-ui 的 el-aside -> el-menu -> el-menu-item 路由侧边栏跳转链接,接上动态路由
npm 下载 npm i element-ui -S Vue main.js //引入element-ui的包 import ElementUI from 'element-ui'; //引入el ...
- Python之requests模块-大文件分片上传
最近在做接口测试时,拿到一个分片上传文件的接口,http接口请求头中的Content-Type为multipart/form-data.需要在客户端将大文件分片成数据块后,依次传给服务端,由服务端还原 ...
- java版gRPC实战之一:用proto生成代码
欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...
- Jenkins(6)- 新建用户
如果想从头学起Jenkins的话,可以看看这一系列的文章哦 https://www.cnblogs.com/poloyy/category/1645399.html 进入用户管理 点击新建用户 填写新 ...
- Linux原始套接字抓取底层报文
1.原始套接字使用场景 我们平常所用到的网络编程都是在应用层收发数据,每个程序只能收到发给自己的数据,即每个程序只能收到来自该程序绑定的端口的数据.收到的数据往往只包括应用层数据,原有的头部信息在传递 ...
- 解决FTPClient下载网络文件线程挂起问题
今天在windows上调试FTP下载文件时,出险线程假死,代码如下: if (inputStream != null) { byte[] data = null; ByteArrayOutputStr ...
- 方法重载(Override)
什么是方法的重写(override 或 overwrite)? 子类继承父类以后,可以对父类中同名同参数的方法,进行覆盖操作. 应用: 重写以后,当创建子类对象以后,通过子类对象调用子父类中的同名同参 ...
- (转载)深入理解MDL元数据锁
作者:MySQL技术本文为作者原创,转载请注明出处:https://www.cnblogs.com/kunjian/p/11993708.html 前言: 当你在MySQL中执行一条SQL时,语句并没 ...