linux运维、架构之路-redis集群
一、介绍
redis cluster 3.0之后的功能,至少需要3(Master)+3(Slave)才能建立集群,是无中心的分布式存储架构,可以在多个节点之间进行数据共享,解决了Redis高可用、可扩展等问题。
二、安装部署
1、环境
[root@redsi ~]# cat /etc/redhat-release
CentOS release 6.9 (Final)
[root@redsi ~]# uname -r
2.6.-.el6.x86_64
[root@redsi ~]# /etc/init.d/iptables status
iptables: Firewall is not running.
[root@redsi ~]# getenforce
Disabled
[root@redsi ~]# hostname -I
10.0.0.2
2、redis cluster是基于上一篇博文已经安装好的redis
①创建集群节点目录
mkdir /usr/local/redis-cluster/{..}/data -p
[root@redsi redis-cluster]# ll /usr/local/redis-cluster/
total
drwxr-xr-x root root -- :
drwxr-xr-x root root -- :
drwxr-xr-x root root -- :
drwxr-xr-x root root -- :
drwxr-xr-x root root -- :
drwxr-xr-x root root -- :
drwxr-xr-x root root -- : bin
②创建命令目录
mkdir /usr/local/redis-cluster/bin -p
cd /server/tools/redis-3.2./src
cp mkreleasehdr.sh redis-benchmark redis-check-aof redis-check-dump redis-cli redis-server redis-trib.rb /usr/local/redis-cluster/bin
③创建一个redis实例
cp -a /usr/local/redis/* /usr/local/redis-cluster/9001/
修改redis.conf配置文件
port #每个节点的端口号
daemonize yes
bind 10.0.0.2 #绑定当前机器 IP
dir /usr/local/redis-cluster//data/ #数据文件存放位置
pidfile /var/run/redis_9001.pid #pid 9001和port要对应
cluster-enabled yes #启动集群模式
cluster-config-file nodes9001.conf #9001和port要对应
cluster-node-timeout
appendonly yes
④再创建其它5个redis实例
cp -a /usr/local/redis-cluster//* /usr/local/redis-cluster/9002
cp -a /usr/local/redis-cluster/9001/* /usr/local/redis-cluster/9003
cp -a /usr/local/redis-cluster/9001/* /usr/local/redis-cluster/9004
cp -a /usr/local/redis-cluster/9001/* /usr/local/redis-cluster/9005
cp -a /usr/local/redis-cluster/9001/* /usr/local/redis-cluster/9006
再依次修改redis.conf配置文件
port #修改以下4处,依次改为9002、9003、9004、9005、9006
dir /usr/local/redis-cluster//data/
pidfile /var/run/redis_9001.pid
cluster-config-file nodes9001.conf
###到此为止基础环境已准备好###
三、安装完ruby环境
###直接执行gem install redis时,报错###
gem install redis
ERROR: Error installing redis:
redis requires Ruby version >= 2.2..
①安装安装RVM
gpg2 --keyserver hkp://keys.gnupg.net --recv-keys D39DC0E3
curl -L get.rvm.io | bash -s stable
find / -name rvm -print
②查看rvm库中已知的ruby版本
rvm list known
③安装一个ruby版本
rvm install 2.3.
④使用一个ruby版本
rvm use 2.3.
⑤设置默认版本
rvm use 2.3. --default
⑥卸载一个已知版本
rvm remove 2.0.
⑦安装redis
gem install redis
⑧查看ruby版本
ruby --version
四、集群搭建
1、启动六个节点的redis
redis-server /usr/local/redis-cluster//redis.conf
redis-server /usr/local/redis-cluster//redis.conf
redis-server /usr/local/redis-cluster//redis.conf
redis-server /usr/local/redis-cluster//redis.conf
redis-server /usr/local/redis-cluster//redis.conf
redis-server /usr/local/redis-cluster//redis.conf
###查看进程###
[root@redsi ~]# ps aux|grep redis
root 0.1 0.9 ? Ssl : : redis-server 10.0.0.2: [cluster]
root 0.1 0.9 ? Ssl : : redis-server 10.0.0.2: [cluster]
root 0.1 0.9 ? Ssl : : redis-server 10.0.0.2: [cluster]
root 0.1 0.7 ? Ssl : : redis-server 10.0.0.2: [cluster]
root 0.1 0.9 ? Ssl : : redis-server 10.0.0.2: [cluster]
root 0.1 0.9 ? Ssl : : redis-server 10.0.0.2: [cluster]
2、创建集群
/usr/local/redis-cluster/bin/redis-trib.rb create --replicas 10.0.0.2: 10.0.0.2: 10.0.0.2: 10.0.0.2: 10.0.0.2: 10.0.0.2:

###命令说明###
调用ruby命令来进行创建集群,--replicas 表示主从复制比例为 :,即一个主节点对应一个从节点;然后,默认给我们分配好了每个主节点和对应从节点服务,以及solt的大小,因为在Redis 集群中有且仅有 个 solt ,默认情况会给我们平均分配,当然你可以指定,后续的增减节点也可以重新分配。
###输入yes后开始创建集群###

###如上图所示,集群创建成功###
3、集群验证
①使用客户端命令连接集群节点
[root@redsi ~]# redis-cli -h 10.0.0.2 -c -p
10.0.0.2:> set name lulu
-> Redirected to slot [] located at 10.0.0.2:9002 #自动连接到了9002节点,这是集群的一个数据分配特性
OK
10.0.0.2:> get name
"lulu"
②连接其它节点验证
[root@redsi ~]# redis-cli -h 10.0.0.2 -c -p
10.0.0.2:> get name
-> Redirected to slot [] located at 10.0.0.2:
"lulu"
###至此,redis集群搭建完毕###
linux运维、架构之路-redis集群的更多相关文章
- Linux运维--12.手动部署Rabbit集群
1.安装rabbit组件 10.100.2.51 controller1 10.100.2.52 controller2 10.100.2.53 controller3 #每个节点 yum insta ...
- linux运维架构师职业规划
1.假如你从来未接触过Linux的话,首先要做的就找一本指导书来学习.现在公认的Linux的入门书籍是“鸟哥的私房菜”,讲的很全面,鸟哥的私房菜一共分为两部,一部是基础篇,一部是服务器篇.“鸟哥的私房 ...
- 架构师之路-redis集群解析
引子 上篇<架构师之路-https底层原理>里我提到了上面的整体视图,文章也介绍了想要真正能在工作中及时正确解决问题的基本功:原理理解透彻.今天以redis集群解析为例介绍一个及时敏锐的发 ...
- 剑指架构师系列-Redis集群部署
初步搭建Redis集群 克隆已经安装Redis的虚拟机,我们使用这两个虚拟机中的Redis来搭建集群. master:192.168.2.129 端口:7001 slave:192.168.2.132 ...
- linux运维、架构之路-Kubernetes集群部署
一.kubernetes介绍 Kubernetes简称K8s,它是一个全新的基于容器技术的分布式架构领先方案.Kubernetes(k8s)是Google开源的容器集群管理系统(谷歌内部 ...
- linux运维、架构之路-Kubernetes集群部署TLS双向认证
一.kubernetes的认证授权 Kubernetes集群的所有操作基本上都是通过kube-apiserver这个组件进行的,它提供HTTP RESTful形式的API供集群内外客户端调 ...
- 【mongoDB运维篇④】Shard 分片集群
简述 为何要分片 减少单机请求数,降低单机负载,提高总负载 减少单机的存储空间,提高总存空间. 常见的mongodb sharding 服务器架构 要构建一个 MongoDB Sharding Clu ...
- Redis 集群环境的搭建
下载与解压 [root@localhost ~]# cd /usr/temp/ [root@localhost temp]# wget http://download.redis.io/release ...
- Nginx+Lua+Redis整合实现高性能API接口 - 网站服务器 - LinuxTone | 运维专家网论坛 - 最棒的Linux运维与开源架构技术交流社区! - Powered by Discuz!
Nginx+Lua+Redis整合实现高性能API接口 - 网站服务器 - LinuxTone | 运维专家网论坛 - 最棒的Linux运维与开源架构技术交流社区! - Powered by Disc ...
随机推荐
- Unity ZTest 深度测试 & ZWrite 深度写入
初学Shader,一开始对于渲染队列,ZTest 和 ZWrite一头雾水,经过多方查阅和实验,有了一些自己的理解.发此文与初学Shader的朋友分享,也算是为自己做个笔记.不对或不足之处欢迎指正. ...
- Django聚合数据
背景: 有些时候,光靠数据库中已有字段的数据,还不足以满足一些特殊场景的需求,例如显示一个作者的所有书籍数量. 这时候就需要在已有数据基础上,聚合出这些没有的数据. 为查询集生产聚合: Django ...
- 【HANA系列】SAP HANA日期函数总结
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[HANA系列]SAP HANA日期函数总结 ...
- IDEA神器
破解 路径:添加-javaagent:JetbrainsCrack-2.7-release-str.jar的路径 例-javaagent:D:\Program Files\JetBrains\Inte ...
- 右击main 方法运行正常,启动tomcat 后,spring boot 项目 出现参数字符串是乱码的情况
PrintWriter out = new PrintWriter(new OutputStreamWriter(conn.getOutputStream(), "utf-8")) ...
- 红帽学习笔记[RHCSA] 第八课[Nice值、时间同步、RPM与Yum软件安装]
第八课 nice值 什么是nice值 给进程设置的优先级就是nice.nice的范围是-20~20.nice值越小占用的系统资源就越多,就是这个进程不nice. 如何查看nice值 # 使用top命令 ...
- [19/09/18-星期三] Python中的序列
一. # 第四章 序列(视频58-76) ## 列表(list) - 列表是Python中的一个对象 - 对象(object)就是内存中专门用来存储数据的一块区域 - 之前我们学习的对象,像数值,它只 ...
- Centos中使用Docker部署Apollo
采用微服务开发框架开发项目时会涉及多个系统,如果要更改配置参数需要在多个系统间逐一更改,比较费时,而且容易遗漏,效率低下,次问题可以采用Apollo配置中心的方式解决,下面将介绍如何配置: 准备环境: ...
- EML文件(MIME邮件)格式分析
电子邮件普遍遵循的邮件技术规范.MIME邮件由邮件头和邮件体两部分组成.邮件头包括:标题,送信人,收信人,创建日期,邮件体内容类型和邮件体编码方式等内容.邮件体包括:正文,超文本,内嵌数据和附件等内容 ...
- Linux的磁盘配额详解(Quota)
1. 检查内核情况 检查当前内核是否支持quota,当前内核配置文件在/boot下 如果当前内核不支持quota,需要重新编译内核将quota support编译进核心: File systems ...