LinuxGod

LinuxGod.net
Linux大神网——精选每一篇高品质的技术干货
  1. 首页
  2. 开源快讯
  3. 正文

不同服务器启动不同端口一样修改教程

2022年11月20日 310点热度

趁着这几天刚好有点空,就来写一下redis的集群搭建,我跟大家先说明,本文的redis集群因为linux服务器只是阿里云一台服务器linux格式化命令,所以集群是redis启动不同端口,但是也能达到集群的要求。其实不同服务器也相当于启动不同端口一样。所以,一起来看看效果吧。

一:下载redis安装包(我的是这个版本:5.0.14)

二:在目录 /usr/local 创建文件夹:redis_6379,redis_6380,redis_6381

我这里之所以这么命名,是因为对应redis的端口号。

三:分别在这三个目录上传下载好的redis压缩包,使用:tar -xvfredis-5.0.14.tar.gz 命令解压

   切换目录:cd redis-5.0.14
   编译:make
   编译完成继续切换目录:cd src
   接着安装:make install
注:如出现/bin/sh: cc: command not found错误,是因为没有安装 gcc 环境,使用命令yum install gcc安装 gcc 环境即可。

四:抽离一些配置文件以及启动命令到文件夹,所以,先在根目录下创建文件夹:bin、config

1、切换到该目录:cd /usr/local/redis_6379(后面几台服务器一样操作)
2、创建两个目录:mkdir bin。mkdir config
3、复制配置文件到指定目录:
  cp redis.conf /usr/local/redis_6379/config
  cp src/mkreleasehdr.sh redis-benchmark redis-check-aof redis-check-rdb redis-cli redis-server redis-sentinel /usr/local/redis_6379/config

我这里的etc目录就是config目录。还有sectinel.conf是后面会讲到哨兵模式配置是回移动进来

五:现在尝试先启动一台(注意,此刻我还没有搭建主从分布的配置文件修改,这里启动仅仅是为了redis是否能够正常启动)

切换目录:cd /usr/local/redis_6379/redis-5.0.14/bin
执行启动命令:./redis-server /usr/local/redis_6379/redis-5.0.14/config/redis.conf
可以查看进程:ps axu | grep redis

两者其一都可以

这样算是启动成功的!!!

六:先暂时关闭redis:

cd /usr/local/redis_6379/redis-5.0.14/bin  
redis-cli -p 6379 shutdown

七:分割线————————————————开始集群搭建(主从+哨兵模式)——————————

主从分布式搭建,是多台服务器的redis配置文件修改来确定的。主从搭建是为了比如某一台服务器的redis写进了缓存,另外几台redis服务器也能获取到数据,熟称数据同步!!!

主从搭建好,还要考虑一点:哨兵模式,也就是为了容灾来考虑,也就是说,比如主redis服务器工作过程当中,因为某些原因,突然挂了,那么其他从redis服务器没有了主服务器,那就一直连接不上,导致数据不能同步,那么这个时候,就需要哨兵模式中的redis服务器中选出一个redis,来当主服务器。现在开始搭建!!!!

文章一开头我已说明:本人只有一台linux服务器,所以开三个端口号是为了跟三台服务器是一样的效果。

IP地址

端口号

角色

47.99.83.180

6379

主机

47.99.83.180

6380

从机

47.99.83.180

6381

从机

八:修改配置文件:

cd /usr/local/redis_6379/redis-5.0.14/config
vim redis.conf

我们来看一下一些参数的意思:

# redis进程是否以守护进程的方式运行,yes为是,no为否(不以守护进程的方式运行会占用一个终端)。
daemonize no
# 指定redis进程的PID文件存放位置
pidfile /var/run/redis.pid
# redis进程的端口号
port 6379
#是否开启保护模式,默认开启。要是配置里没有指定bind和密码。开启该参数后,redis只会本地进行访问,拒绝外部访问。要是开启了密码和bind,可以开启。否则最好关闭设置为no。
protected-mode yes
# 绑定的主机地址
bind 127.0.0.1
# 客户端闲置多长时间后关闭连接,默认此参数为0即关闭此功能
timeout 300
# redis日志级别,可用的级别有debug.verbose.notice.warning
loglevel verbose
# log文件输出位置,如果进程以守护进程的方式运行,此处又将输出文件设置为stdout的话,就会将日志信息输出到/dev/null里面去了

linux启动redis集群_linux启动redis命令_linux启动进程命令

logfile stdout # 设置数据库的数量,默认为0可以使用select
命令在连接上指定数据库id databases 16 # 指定在多少时间内刷新次数达到多少的时候会将数据同步到数据文件 save # 指定存储至本地数据库时是否压缩文件,默认为yes即启用存储 rdbcompression yes # 指定本地数据库文件名 dbfilename dump.db # 指定本地数据问就按存放位置 dir ./ # 指定当本机为slave服务时,设置master服务的IP地址及端口,在redis启动的时候他会自动跟master进行数据同步 replicaof # 当master设置了密码保护时,slave服务连接master的密码 masterauth # 设置redis连接密码,如果配置了连接密码,客户端在连接redis是需要通过AUTH命令提供密码,默认关闭 requirepass footbared # 设置同一时间最大客户连接数,默认无限制。redis可以同时连接的客户端数为redis程序可以打开的最大文件描述符,如果设置 maxclients 0,表示不作限制。当客户端连接数到达限制时,Redis会关闭新的连接并向客户端返回 max number of clients reached 错误信息 maxclients 128 # 指定Redis最大内存限制,Redis在启动时会把数据加载到内存中,达到最大内存后,Redis会先尝试清除已到期或即将到期的Key。当此方法处理后,仍然到达最大内存设置,将无法再进行写入操作,但仍然可以进行读取操作。Redis新的vm机制,会把Key存放内存,Value会存放在swap区 maxmemory # 指定是否在每次更新操作后进行日志记录,Redis在默认情况下是异步的把数据写入磁盘,如果不开启,可能会在断电时导致一段时间内的数据丢失。因为redis本身同步数据文件是按上面save条件来同步的,所以有的数据会在一段时间内只存在于内存中。默认为no。 appendonly no # 指定跟新日志文件名默认为appendonly.aof appendfilename appendonly.aof # 指定更新日志的条件,有三个可选参数 - no:表示等操作系统进行数据缓存同步到磁盘(快),always:表示每次更新操作后手动调用fsync()将数据写到磁盘(慢,安全), everysec:表示每秒同步一次(折衷,默认值); appendfsync everysec

接下来我们要改动的信息(三台服务器都要修改(此处是同一台服务器,三个不同端口),记住:port就是对应的端口号,比如对应上面步骤七的表格):

主机配置:
bind:0.0.0.0
port:6379
protected-mode:no

linux启动进程命令_linux启动redis命令_linux启动redis集群

daemonize:yes logfile:.
/redis.log requirepass:testuser #--这个看自己的情况是否需要设置账号和密码 masterauth:123456 #--这个看自己的情况是否需要设置账号和密码

上面的参数说明:

bind:0.0.0.0 #Redis 默认只允许本机访问,把 bind 修改为 0.0.0.0 表示允许所有远程访问。如果想指定限制访问,可设置对应的 ip。
port:6379 #监听端口默认为6379,想改其他也行。
protected-mode:no #关闭保护模式,可以外部访问。
daemonize:yes #设置为后台启动。
logfile:./redis.log #redis 日志文件,生成后在 bin 目录下可找到

从机配置:这里的port需要注意,从机本文配置的端口是6380、6382。读者根据自行而定。如果是独立的服务器,这里端口可以不用修改

bind:0.0.0.0
port:6380
protected-mode:no
daemonize:yes
logfile:./redis.log
requirepass:testuser #--这个看自己的情况是否需要设置账号和密码 如果主机设置了,从机也要
masterauth:123456  #--这个看自己的情况是否需要设置账号和密码如果主机设置了,从机也要
replicaof 47.99.83.180 6379 #因为这里的从机的配置,所以这里就是设置主机的 ip+ 端口,来指明主机的redis

注意:以前的老版本是使用变量:slaveof 设置主机的,因为我用的是新版本。所以在变量:replicaof做配置

九:数据同步测试

上面的步骤修改配置文件arch linux,已经是可以实现主从分布的搭建,接下来就启动三台服务器,启动redis服务器前,先开放端口,否则连接会拒绝(防火墙安全拦截:可以在阿里云服务器的控制台直接增加防火墙端口开放,此处使用命令,如果命令不行,那就在阿里云服务器控制台设置)

#端口记得写正确
1、firewall-cmd --add-port=6379/tcp --permanent --zone=public
#重启防火墙(修改配置后要重启防火墙)
2、firewall-cmd --reload

接下来启动主从服务器:

1:cd /usr/local/redis_6379/redis-5.0.14/bin
2:redis-server ../config/redis.conf
注意:目录redis_6379是对应的redis哈,别搞错

然后我们检查一下是否搭建主从成功:

1:redis-cli -p 6380 

linux启动进程命令_linux启动redis集群_linux启动redis命令

2: info replication #此处我是进入从机,也可以看得到主机、从机信息。slave就是从机的意思

此刻主从搭建完成!!!!接下来看数据能否同步:

分别进入6379、6380、6381的客户端连接:

主机写入

从机读取:

注意:这里的错误提示是因为我在从机写入linux启动redis命令,报错了,意思是从机没有写入权限

错误信息:(error) READONLY You can't write against a read only replica

在配置文件修改:
进入/usr/local/redis_6379/redis-5.0.14/config/redis.conf 配置文件,修改配置文件的slave-read-only为no, 那么从节点也就可以进行写的操作了,代码不会报错。
大伙记得不管主机从机都设置好这个属性,否则到时候从机写入不了数据

十:哨兵搭建(重点来了——————————哨兵搭建————————————)

每台服务器都配置一个哨兵,配置方式相同,如下

同样为了方便管理,首先将sentinel.conf复制到 config 下(记得三台服务器都要执行。sentinel.conf配置文件在根目录:

所以进入到到该目录下:
cp sentinel.conf config

修改哨兵配置文件:sentinel.conf

cd config
vim sentinel.conf

改动的地方如下:

//端口默认为26379。 主机,从机的这个端口记得修改,否则导致端口占用,启动不了。(因为我是在一台linux服务器部署,所以我的要修改,如果你是在不同linxu服务器部署,那么可以不用修改)
port:26379
//关闭保护模式,可以外部访问。
protected-mode:no
//设置为后台启动。
daemonize:yes
//日志文件。
logfile:./sentinel.log
//指定主机IP地址和端口,并且指定当有2台哨兵认为主机挂了,则对主机进行容灾切换。

sentinel monitor mymaster 47.99.83.180 6379 2 //当在Redis实例中开启了requirepass,这里就需要提供密码并保持一致,如果没启用密码,那么不需要设置,屏蔽这个属性就好(默认是屏蔽的) sentinel auth-pass mymaster 12345 //这里设置了主机多少秒无响应,则认为挂了。 sentinel down-after-milliseconds mymaster 3000 //主备切换时,最多有多少个slave同时对新的master进行同步,这里设置为默认的1。 snetinel parallel-syncs mymaster 1 //故障转移的超时时间,这里设置为三分钟。 sentinel failover-timeout mymaster 180000

接下来防火墙设置:上面的配置文件改动的端口是多少,就对应即可

firewall-cmd --add-port=26379/tcp --permanent --zone=public
#重启防火墙(修改配置后要重启防火墙)
firewall-cmd --reload

十一:启动三个哨兵(记得在要启动三个,进入对应目录)

1、cd /usr/local/redis_6381/redis-5.0.14/bin/
2、redis-sentinel /usr/local/redis_6381/redis-5.0.14/config/sentinel.conf

十二:查看哨兵信息

1、cd /usr/local/redis_6381/redis-5.0.14/bin/
#这里的26381是在上面的第十步骤的配置文件sentinel.conf里面的配置的端口号
2、redis-cli -p 26381
3、info sentinel

十三:容灾切换

现在模拟主机宕机linux启动redis命令,也就是是否能实现容灾切换,直接把主机宕机,也就是关闭主机redis。如果不知道哪台是主机,请执行下面命令:

1、先进入对应目录(随意一台服务器:cd /usr/local/redis_6381/redis-5.0.14/bin/
2、执行命令(这里的端口号是redis启动的端口号):redis-cli -p 6379
3、info replication #看下图信息即可知道主机是那一台

此刻我们知道47.99.83.180:6380这一台是主机redis:

1、redis-cli -p 6380
2:showdown

然后我们进入从机的bin目录(因为redis.log在该目录下(我们在redis.conf里面做了设置):cat redis.log)

完事!!!!

程序员灯塔

转载请注明原文链接:linux系统——Redis集群搭建(主从+哨兵模式)

本作品采用 知识共享署名 4.0 国际许可协议 进行许可
标签: redis redis分布式 服务器端口
最后更新:2022年11月20日

Linux大神网

每日更新,欢迎收藏♥ 不积跬步无以至千里,加油,共勉。

点赞
< 上一篇
下一篇 >

Linux大神网

每日更新,欢迎收藏♥
不积跬步无以至千里,加油,共勉。

最新 热点 随机
最新 热点 随机
如何安装便携式WiFi驱动程序?360wifi驱动的教程 CentOS云服务器搭建网站和CentOS搭建DNS解析服务 如何在linux上创建一个用户,减少不必要的沟通成本 如何在Linux系统中查看CPU信息使用lscpu命令行 linux服务器搭建ftp的6下安装vsftpd步骤及步骤 贵州工业职业技术学院求职意向期望工作地--诚聘英才 实验1Linux安装实验掌握虚拟机的使用 Linux系统tar命令的使用方法及使用命令教程 linux 开源nas系统 杰和科技NAS服务器媒体见面会在京召开 Android与Linux开发大不同 Linux系统软件安装包:自己动手,安装不用愁 车市新战局:汽车操作系统会复制智能手机的历史吗? Linux文件系统种类 如何卸载用源码包安装的软件?在线视频教程推荐 「职位」ASP.、PHP、Linux服务器集群开发 Torvalds:Linux内核开发的创新前景充满了热情 Linux文件系统的结构从终端窗口探索Linux目录树结构 卸载软件命令Linux.You linux软件开发如何入门?学习Linux步骤及学习方法介绍 14年Linux发行版的有趣历史观点
嵌入式Linux操作系统学习规划+LINUX路线,主攻江苏电信天翼校园客户端故障指引及解决办法(101)英特尔GMAGMA950显卡驱动程序/WIN8/8.1电信校园网宽带用USB数据线共享给电脑无线上网国防科大开源操作系统:它只是一个吉祥的象征10个常用Linux文本查看命令及其详细说明和使用示例Linux嵌入式系统内核裁剪与定制方法的介绍情况淘宝教育热卖C语言编程开发C++程序设计零基础入门课程从CPU、内存、硬盘、显卡等这些方面安装Linux系统的最低配置Linux通过chkconfig设置开机启动服务创建的几种常见方式(技术分析)Linux多线程的使用与操作系统的区别通常rar命令由一个主命令加若干选项(可选)构成RedHatLinux中自动运行程序中的应用linux 读写文件 关于Linux内核的神秘面纱,你知道几个?使用wget实用程序的有用命令行工具的使用怎么设置linux开机项自启动?方式是怎样的?嵌入式Linux应用层与驱动层要想学习关于Linux内核的交叉编译步骤和方法:步骤、方法STM32嵌入式linux开发流程及应用程序分析-STMlinux下有哪些文件在介绍lsof命令实用用法介绍?
如何入门嵌入式开发是什么?华妹告诉你! 怎么查看及修改Linux系统文件读写权限的解决方法吧? 反向代理终止HTTP请求,ASP.NETCore应用的常见设置 国防科大开源操作系统:它只是一个吉祥的象征 为什么要给Linux二进制文件设置这种权限?(上) 从Windows+Linux(Ubuntu)双系统安装教程说在前面 局域网聊天软件简单介绍TOP1内网通传书 chmod系统变更文件或目录的权限变更的详细资料介绍 linux下如何安装linux的软件?下的解压缩 LinuxKernel操作系统,,内存管理模块异常和中断管理进程 重新启动RedHatLinuxrelease命令注销系统的logout命令-上海怡健医学 如何把Linux操作系统放在大型服务器上运行Linux系统 修改Linux源码和改造Linux系统的核心源码作为自己的最大兴趣 Linux档案的权限和详细说明与群组的详细介绍 2022年3月7日Linux中提权漏洞被安全研究员爆出 嵌入式Linux应用开发完全手册代码2.能写简单汇编代码 搜狗输入法forlinux版本安装指南: TinyCore3.1——世界上最小的Linux桌面发行版 关于IA-32/Linux进程内核空间的叙述中,错误的是 CentOS云服务器搭建网站和CentOS搭建DNS解析服务
标签聚合
linux系统 文件 操作 文件目录 虚拟机 linux服务器 命令 内核 应用 软件
书籍
课程
技术群
技术干货大合集↓
  • 2023年9月 / 81篇
  • 2023年8月 / 93篇
  • 2023年7月 / 94篇
  • 2023年6月 / 90篇
  • 2023年5月 / 93篇
  • 2023年4月 / 90篇
  • 2023年3月 / 129篇
  • 2023年2月 / 84篇
  • 2023年1月 / 161篇
  • 2022年12月 / 187篇
  • 2022年11月 / 76篇
友情链接:

Linux书籍 | Linux命令 | Linux系统 | RHCE红帽认证 | Linux软件 | Linux教程 | CentOS系统 | Linux内核 | Linux服务器 | Linux大神 | IT资源

COPYRIGHT © 2023 linuxgod.net ALL RIGHTS RESERVED.