神之右手,假装运维大大搭建redis分布式集群

2024-03-16 05:20

本文主要是介绍神之右手,假装运维大大搭建redis分布式集群,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

翻出尘封许久的阿里云机器来搭建redis分布式集群,使用俩台2核4G的机器,系统CentOS 64位,均已安装jdk1.8.1,接下来要安装的redis的版本是4.0.1,OK,开始安装。

  1. yum install -y tcl gcc zlib-devel openssl-devel

  2. 将redis-4.0.1.tar.gz上传到云服务器,解压缩,重命名为redis目录

  3. 进入redis目录,执行 make MALLOC=libc 命令,执行结束,有如下结果,检查一下上下日志,没有报错信息。

  4. 创建redis集群目录 cd  /opt mkdir redis-cluster;mkdir redis-cluster/nodes-{7100,7200,7300},并且创建每一个端口对应的配置文件redis.config,如图是其中一个端口对应的配置文件,其他俩个配置文件也进行创建和编辑。

  5. 此时可以启动三个redis实例试试看有么有成功啦,雀跃,哈哈哈,执行以下命令: cd /usr/local/redis/src/

    ./redis-server/opt/redis-cluster/nodes-7100/redis.conf

    ./redis-server/opt/redis-cluster/nodes-7200/redis.conf

    ./redis-server/opt/redis-cluster/nodes-7300/redis.conf

    可惜,天不遂人愿,报错了,redis启动进程没有成功,

    Creating Server TCP listening socket 47.96.137.34:7100: bind: Cannot assign requested address

    解决办法 bind 阿里云公网ip 修改为 bind 0.0.0.0

  6. 三个实例都启动成功。执行ps  -ef |grep redis 也可以看到三个redis实例的进程啦。而且也会在每个端口运行目录下生成一些文件。

     

     

  7. 我们继续在另外一台阿里云的机器上重复已上步骤,搭建三个redis实例。

  8. 执行 ruby -v 机器默认没有安装,那我们要安装下ruby,我们这里安装的版本是2.3.4 ,解压缩,重命名为ruby目录,进入ruby目录,执行以下命令:

    ./configure

    make && make install 这一步要好漫长好漫长的岁月,才能结束

    ruby -v

  9. 安装ruby-redis.gem 

    yum install -y zlib-devel openssl-devel

    cd /usr/local/redis gem install redis 悲催的这一行报错了

     

    解决办法:

     cd /usr/local/ruby/ext/zlibruby extconf.rb 

     make && make install 

     然而又报了新的错误

     解决办法:

        cd /usr/local/ruby/ext/openssl

    ruby extconf.rb 这一步会生成Makefile文件,将其中的${top_srcdir}d都替换成../..,搞定

10.终于 再次执行命令 gem install redis.成功了,感动到自己要哭,不容易啊

11.另外一台阿里云机器执行已上操作的时候却没有出现这些奇葩问题,而是一次性都通过了,中间唯一的区别就是yum install -y zlib-devel openssl-devel 这一步操作本身已经有了。

12.激动人心的时刻终于到了,终于可以敲击那个神秘的命令:

./redis-trib.rb create --replicas 1 xxx.xx.xx.xx:7100 xxx.xx.xx.xx:7200xxx.xx.xx.xx:7300 xxx.xx.xx.xx2:7100 xxx.xx.xx.xx:7200 xxx.xx.xx.xx:7300

此时还是出现了错误,居然卡在了join........

解决的办法是 要把阿里云的几个redis实例的端口放开,而且还有集群总线端口也要放开,等于实例端口+10000的端口也要放开。终于搞定,完美地将集群搭建好啦

13,执行命令  ./redis-cli -c -h xxx.xxx.xxx.xxx -p 7100 登上一台redis

     cluster info  查看集群情况 

终于完成了redis三主三从的搭建,毕竟不是运维白月光啊,还好最终完成啦,谨以此记录下来,如有错误,欢迎纠正,谢谢大家观看。

保持初心,静心,拾java之一粟。学习,整理,可以关注我的公众号   

                                                                                  

                            【 一溯初心 】 一起学习,一起成长,谢谢大家批评指正  。

这篇关于神之右手,假装运维大大搭建redis分布式集群的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/814417

相关文章

Nginx分布式部署流程分析

《Nginx分布式部署流程分析》文章介绍Nginx在分布式部署中的反向代理和负载均衡作用,用于分发请求、减轻服务器压力及解决session共享问题,涵盖配置方法、策略及Java项目应用,并提及分布式事... 目录分布式部署NginxJava中的代理代理分为正向代理和反向代理正向代理反向代理Nginx应用场景

vite搭建vue3项目的搭建步骤

《vite搭建vue3项目的搭建步骤》本文主要介绍了vite搭建vue3项目的搭建步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学... 目录1.确保Nodejs环境2.使用vite-cli工具3.进入项目安装依赖1.确保Nodejs环境

Nginx搭建前端本地预览环境的完整步骤教学

《Nginx搭建前端本地预览环境的完整步骤教学》这篇文章主要为大家详细介绍了Nginx搭建前端本地预览环境的完整步骤教学,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录项目目录结构核心配置文件:nginx.conf脚本化操作:nginx.shnpm 脚本集成总结:对前端的意义很多

Redis 基本数据类型和使用详解

《Redis基本数据类型和使用详解》String是Redis最基本的数据类型,一个键对应一个值,它的功能十分强大,可以存储字符串、整数、浮点数等多种数据格式,本文给大家介绍Redis基本数据类型和... 目录一、Redis 入门介绍二、Redis 的五大基本数据类型2.1 String 类型2.2 Hash

Redis中Hash从使用过程到原理说明

《Redis中Hash从使用过程到原理说明》RedisHash结构用于存储字段-值对,适合对象数据,支持HSET、HGET等命令,采用ziplist或hashtable编码,通过渐进式rehash优化... 目录一、开篇:Hash就像超市的货架二、Hash的基本使用1. 常用命令示例2. Java操作示例三

Redis中Set结构使用过程与原理说明

《Redis中Set结构使用过程与原理说明》本文解析了RedisSet数据结构,涵盖其基本操作(如添加、查找)、集合运算(交并差)、底层实现(intset与hashtable自动切换机制)、典型应用场... 目录开篇:从购物车到Redis Set一、Redis Set的基本操作1.1 编程常用命令1.2 集

Redis中的有序集合zset从使用到原理分析

《Redis中的有序集合zset从使用到原理分析》Redis有序集合(zset)是字符串与分值的有序映射,通过跳跃表和哈希表结合实现高效有序性管理,适用于排行榜、延迟队列等场景,其时间复杂度低,内存占... 目录开篇:排行榜背后的秘密一、zset的基本使用1.1 常用命令1.2 Java客户端示例二、zse

Redis中的AOF原理及分析

《Redis中的AOF原理及分析》Redis的AOF通过记录所有写操作命令实现持久化,支持always/everysec/no三种同步策略,重写机制优化文件体积,与RDB结合可平衡数据安全与恢复效率... 目录开篇:从日记本到AOF一、AOF的基本执行流程1. 命令执行与记录2. AOF重写机制二、AOF的

idea+spring boot创建项目的搭建全过程

《idea+springboot创建项目的搭建全过程》SpringBoot是Spring社区发布的一个开源项目,旨在帮助开发者快速并且更简单的构建项目,:本文主要介绍idea+springb... 目录一.idea四种搭建方式1.Javaidea命名规范2JavaWebTomcat的安装一.明确tomcat

Java 线程池+分布式实现代码

《Java线程池+分布式实现代码》在Java开发中,池通过预先创建并管理一定数量的资源,避免频繁创建和销毁资源带来的性能开销,从而提高系统效率,:本文主要介绍Java线程池+分布式实现代码,需要... 目录1. 线程池1.1 自定义线程池实现1.1.1 线程池核心1.1.2 代码示例1.2 总结流程2. J