redis一主一从两台机器高可用

2023-05-16

目录

1 机器规划

2 redis的部署安装

2.1配置文件内容

2.2 启动2台机器上的redis服务

2.3 查看2台机器上redis数据信息

3 redis主从之间手动切换

3.1 停掉22上的redis进程,到23从redis上执行上面讲到的SLAVEOF NO ONE参数

3.2 恢复22上的redis数据库

4.keepalived实现主从自动切换

4.1 keepalived执行原理:

4.2 下面我们贴出脚本:

4.3 主从切换


1 机器规划

机器角色
172.18.1.22
172.18.1.23

2 redis的部署安装

2.1配置文件内容

这里我们直接贴出简略的配置项,主要测试高可用功能,22机器上的配置内容:

[root@bgsbtsp0006-dqf:scripts]# cat /opt/redis/conf/redis6379.conf 
bind 172.18.1.22
  
port 6379
appendonly yes
timeout 3600
daemonize yes
  
pidfile /opt/redis/pid/redis6379.pid
logfile "/opt/redis/log/redis6379.log"
dir "/opt/redis/data/6379"

23上机器配置内容,注意这里要加上slaveof参数配置:

bind 172.18.1.23
  
port 6380
appendonly yes 
timeout 3600
daemonize yes 
  
pidfile /opt/redis/pid/redis6380.pid
logfile "/opt/redis/log/redis6380.log"
dir "/opt/redis/data/6380"
slaveof 172.18.1.22 6379

SLAVEOF 命令用于在 Redis 运行时动态地修改复制(replication)功能的行为。

通过执行 SLAVEOF host port 命令,可以将当前服务器转变为指定服务器的从属服务器(slave server)。

如果当前服务器已经是某个主服务器(master server)的从属服务器,那么执行 SLAVEOF host port 将使当前服务器停止对旧主服务器的同步,丢弃旧数据集,转而开始对新主服务器进行同步。

另外,对一个从属服务器执行命令 SLAVEOF NO ONE 将使得这个从属服务器关闭复制功能,并从从属服务器转变回主服务器,原来同步所得的数据集不会被丢弃。

利用『 SLAVEOF NO ONE 不会丢弃同步所得数据集』这个特性,可以在主服务器失败的时候,将从属服务器用作新的主服务器,从而实现无间断运行。

2.2 启动2台机器上的redis服务

#启动22上redis
[root@bgsbtsp0006-dqf:opt]# redis-server /opt/redis/conf/redis6379.conf 
#启动23上redis
[root@bgsbtsp0007-dqf:opt]# redis-server /opt/redis/conf/redis6380.conf 
 

2.3 查看2台机器上redis数据信息

查看22上redis的信息,之前搭建过,所有有一些值。

[root@bgsbtsp0006-dqf:opt]# redis-cli -h 172.18.1.22
172.18.1.22:6379> get bfd
"123"
172.18.1.22:6379> keys *
1) "wyl"
2) "zyx"
3) "bfd"
4) "lhf"

查看23上redis信息,我们可以看到同步到22上redis数据信息了,但是自己本身是不能够set写操作的

[root@bgsbtsp0007-dqf:opt]# redis-cli -h 172.18.1.23 -p 6380
172.18.1.23:6380> KEYS *
1) "lhf"
2) "bfd"
3) "zyx"
4) "wyl"
172.18.1.23:6380> set mm  '123'
#同步到22主上的数据了,但是自己本身是无法写入操作的
(error) READONLY You can't write against a read only slave.
172.18.1.23:6380> 

3 redis主从之间手动切换

3.1 停掉22上的redis进程,到23从redis上执行上面讲到的SLAVEOF NO ONE参数

[root@bgsbtsp0006-dqf:opt]# ps -ef |grep redis
root     2562482       1  0 20:32 ?        00:00:00 redis-server 172.18.1.22:6379
root     2562701 2537889  0 20:32 pts/2    00:00:00 grep --color=auto redis

[root@bgsbtsp0006-dqf:opt]# kill 2562482

到23从redis上操作,看到ok字样,表示这时候已经不是slave角色了,我们可以进行写操作.

[root@bgsbtsp0006-dqf:opt]# redis-cli -h 172.18.1.23 -p 6380
172.18.1.23:6380> SLAVEOF no one
OK
172.18.1.23:6380> set wyl '123456'
OK

此时主从切换已经完成。 

3.2 恢复22上的redis数据库

   此时切换已经完成,但是我们还需要启动之前的主redis,但是这个时候我们已经进行过插入、删除等操作,以前的主redis并没有记录这些,那么就需要将现在的23上redis的dump.rdb替换之前22上redis 的dump.rdb文件。

启动22上的redis,并且指定新的主redis,即23上的redis

[root@bgsbtsp0006-dqf:scripts]# redis-cli -h 172.18.1.22 -p 6379
172.18.1.22:6379>  slaveof  172.18.1.23 6380
OK
172.18.1.22:6379> get wyl
"123456"
172.18.1.22:6379> set ymh1 '123'
(error) READONLY You can't write against a read only slave.
172.18.1.22:6379> 

我们可以看到,22上也查询到了刚刚在23机器上创建的wyl=123456的数据。并且22也变成read only 从角色了。

 

4.keepalived实现主从自动切换

keepalived的基础这里不再描述,之前的文章有些,由于上面我们讲到手动切换,如果这块理解了,keepalived就是将上面的手动过程通过脚本的方式去实现,废话不多说,我们看看keepalived脚本是如何去操作的。

4.1 keepalived执行原理:

22是redis的主库,我们把keepalived的master节点也放在22上,通过check_redis_status.sh判断redis进程是否存在,如果不在了,执行falut脚本,打印日志告诉我们主库已经宕机,并且vip会漂移到23机器上

23机器根据keepalived的状态判断,发现vip到自己这边了,并且状态变成master状态,这时候调用master脚本,我们就在这个脚本里执行了上面手动过程中的slaveof no one这个指令。

4.2 下面我们贴出脚本:

除了检查redis脚本端口不一样,其余3个脚本都是一样的,同步到23机器上。

#检查redis脚本
[root@bgsbtsp0006-dqf:scripts]# cat check_redis.sh 
#!/bin/bash

num=`ps -ef|grep 6379|grep -v grep|wc -l`

if [ $num -ge 1 ];then
   status=0
else
   status=1
fi
exit $status


#master脚本
[root@bgsbtsp0006-dqf:scripts]# cat master.sh 
#!/bin/bash
LOGFILE=/etc/keepalived/scripts/keepalived.log
echo "[Master]" >> $LOGFILE
date >> $LOGFILE


hostname=`hostname`
if [ $hostname = 'bgsbtsp0006-dqf' ];then
   echo 22 >>$LOGFILE
   echo 'SLAVEOF no one'|/opt/redis/bin/redis-cli -h 172.18.1.22 -p 6379 >> $LOGFILE
   echo -e `date +"%F %T"` "the current redis is master" >> $LOGFILE
elif [ $'bgsbtsp0007-dqf = 'bfd-yiz-1p23' ];then
  echo 23 >>$LOGFILE
  echo 'SLAVEOF no one'|/opt/redis/bin/redis-cli -h 172.18.1.23 -p 6380 >>$LOGFILE
  echo -e `date +"%F %T"` "the current redis is master" >> $LOGFILE
fi


#backup脚本
[root@bgsbtsp0006-dqf:scripts]# cat backup.sh 
#!/bin/bash
LOGFILE=/etc/keepalived/scripts/keepalived.log
echo "[Backup]" >> $LOGFILE
date >> $LOGFILE

echo -e `date +"%F %T"` "the current redis is slave" >> $LOGFILE

# fault脚本
[root@bgsbtsp0006-dqf:scripts]# cat fault.sh 
#!/bin/bash
LOGFILE=/etc/keepalived/scripts/keepalived.log
echo "[Fault]" >> $LOGFILE
date >> $LOGFILE


echo -e `date +"%F %T"` "the current redis is down" >> $LOGFILE

 

4.3 主从切换

这时候,我们启动22,23上keepalived服务,22查看keepalived的状态,vip绑定在22机器上。

[root@bgsbtsp0006-dqf:scripts]# systemctl status keepalived.service 
● keepalived.service - LVS and VRRP High Availability Monitor
   Loaded: loaded (/usr/lib/systemd/system/keepalived.service; disabled; vendor preset: disabled)
   Active: active (running) since Tue 2019-01-08 20:17:12 CST; 15min ago
  Process: 2558442 ExecStart=/usr/sbin/keepalived $KEEPALIVED_OPTIONS (code=exited, status=0/SUCCESS)
 Main PID: 2558443 (keepalived)
   CGroup: /system.slice/keepalived.service
           ├─2558443 /usr/sbin/keepalived -D
           ├─2558444 /usr/sbin/keepalived -D
           └─2558445 /usr/sbin/keepalived -D

Jan 08 20:32:23 bgsbtsp0006-dqf Keepalived_vrrp[2558445]: Sending gratuitous ARP on bond0 for 172.18.1.72
Jan 08 20:32:23 bgsbtsp0006-dqf Keepalived_vrrp[2558445]: Sending gratuitous ARP on bond0 for 172.18.1.72
Jan 08 20:32:23 bgsbtsp0006-dqf Keepalived_vrrp[2558445]: Sending gratuitous ARP on bond0 for 172.18.1.72
Jan 08 20:32:23 bgsbtsp0006-dqf Keepalived_vrrp[2558445]: Opening script file /etc/keepalived/scripts/ma....sh
Jan 08 20:32:28 bgsbtsp0006-dqf Keepalived_vrrp[2558445]: Sending gratuitous ARP on bond0 for 172.18.1.72
Jan 08 20:32:28 bgsbtsp0006-dqf Keepalived_vrrp[2558445]: VRRP_Instance(VI_1) Sending/queueing gratuitou....72
Jan 08 20:32:28 bgsbtsp0006-dqf Keepalived_vrrp[2558445]: Sending gratuitous ARP on bond0 for 172.18.1.72
Jan 08 20:32:28 bgsbtsp0006-dqf Keepalived_vrrp[2558445]: Sending gratuitous ARP on bond0 for 172.18.1.72
Jan 08 20:32:28 bgsbtsp0006-dqf Keepalived_vrrp[2558445]: Sending gratuitous ARP on bond0 for 172.18.1.72
Jan 08 20:32:28 bgsbtsp0006-dqf Keepalived_vrrp[2558445]: Sending gratuitous ARP on bond0 for 172.18.1.72

 23查看keepalived的状态

[root@bgsbtsp0007-dqf:scripts]# systemctl status keepalived.service 
● keepalived.service - LVS and VRRP High Availability Monitor
   Loaded: loaded (/usr/lib/systemd/system/keepalived.service; disabled; vendor preset: disabled)
   Active: active (running) since Tue 2019-01-08 20:17:57 CST; 12min ago
  Process: 3863461 ExecStart=/usr/sbin/keepalived $KEEPALIVED_OPTIONS (code=exited, status=0/SUCCESS)
 Main PID: 3863462 (keepalived)
   CGroup: /system.slice/keepalived.service
           ├─3863462 /usr/sbin/keepalived -D
           ├─3863463 /usr/sbin/keepalived -D
           └─3863464 /usr/sbin/keepalived -D

Jan 08 20:22:35 bgsbtsp0007-dqf Keepalived_vrrp[3863464]: VRRP_Instance(VI_1) Now in FAULT state
Jan 08 20:22:35 bgsbtsp0007-dqf Keepalived_vrrp[3863464]: /etc/keepalived/scripts/check_redis.sh exited wit...s 1
Jan 08 20:22:37 bgsbtsp0007-dqf Keepalived_vrrp[3863464]: /etc/keepalived/scripts/check_redis.sh exited wit...s 1
Jan 08 20:22:39 bgsbtsp0007-dqf Keepalived_vrrp[3863464]: /etc/keepalived/scripts/check_redis.sh exited wit...s 1
Jan 08 20:22:41 bgsbtsp0007-dqf Keepalived_vrrp[3863464]: /etc/keepalived/scripts/check_redis.sh exited wit...s 1
Jan 08 20:22:43 bgsbtsp0007-dqf Keepalived_vrrp[3863464]: /etc/keepalived/scripts/check_redis.sh exited wit...s 1
Jan 08 20:22:45 bgsbtsp0007-dqf Keepalived_vrrp[3863464]: /etc/keepalived/scripts/check_redis.sh exited wit...s 1
Jan 08 20:22:47 bgsbtsp0007-dqf Keepalived_vrrp[3863464]: VRRP_Script(check_nginx_alived) succeeded
Jan 08 20:22:47 bgsbtsp0007-dqf Keepalived_vrrp[3863464]: VRRP_Instance(VI_1) Entering BACKUP STATE
Jan 08 20:22:47 bgsbtsp0007-dqf Keepalived_vrrp[3863464]: Opening script file /etc/keepalived/scripts/backup.s

停掉22机器上主redis服务

[root@bgsbtsp0006-dqf:opt]# ps -ef |grep redis
root     2562482       1  0 20:32 ?        00:00:00 redis-server 172.18.1.22:6379
root     2562701 2537889  0 20:32 pts/2    00:00:00 grep --color=auto redis

[root@bgsbtsp0006-dqf:opt]# kill 2562482

查看22上脚本执行的过程,显示调用了master脚本,当停掉redis服务后,执行了fault脚本

[root@bgsbtsp0006-dqf:scripts]# cat keepalived.log 
[Master]
Tue Jan  8 20:30:09 CST 2019

[Fault]
Tue Jan  8 20:33:07 CST 2019
2019-01-08 20:33:07 the current redis is down

查看23上脚本执行的过程,显示调用了backup脚本,当停掉22上redis服务后,23上执行了master脚本

[root@bfd-yiz-1p23 /etc/keepalived/scripts]# cat keepalived.log 
[Backup]
Tue Jan  8 20:31:09 CST 2019
2019-01-08 20:33:09 the current database is master

[Master]
Tue Jan  8 20:33:09 CST 2019
2019-01-08 20:33:09 the current database is master

我们发现已经自动切换了,其实我们也可以用客户端去连接一下,去验证,这比较准确,我已经验证过了,这里就不再过多赘述。

同理,当我们恢复22上主机后,要手动执行slaveof  172.18.1.23 6380,这样数据就同步到23了,后面你们也可以试一下当23上redis挂了,22是否会变成主。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

redis一主一从两台机器高可用 的相关文章

  • 如何在实时添加对象时从 Redis 中弹出对象?

    我想让 Node js 进程运行 因为它正在检查 Redis 服务器是否有任何新的弹出内容 另一个进程将偶尔进行推送 而 Node 进程将尝试弹出任何进来的内容 Node 进程将保持运行 有人能给我指出一个好的方向吗 我正在尝试找出如何监听
  • Redis多插入问题

    我尝试多次插入 但它给了我错误 http pastie org 7337421 http pastie org 7337421 cat mass insert txt 3 r n 3 r nSET r n 3 r nkey r n 5 r
  • 找不到模块“socket.io/node_modules/redis”

    当尝试做的时候 var redis require socket io node modules redis 我收到错误 找不到模块 socket io node modules redis 我不明白为什么 我正在运行 Windows 并运
  • 使用 sidekiq 处理两个独立的 Redis 实例?

    下午好 我有两个独立但相关的应用程序 他们都应该有自己的后台队列 阅读 单独的 Sidekiq 和 Redis 进程 然而 我希望偶尔能够将工作推给app2的队列来自app1 从简单的队列 推送的角度来看 如果app1没有现有的 Sidek
  • Redis部署配置-主从复制

    目前我有两台服务器 我已经部署了基于node js Express JS的Web服务API 我正在使用 Redis 来缓存 JSON 字符串 将此设置部署到生产中的最佳选择是什么 我懂了here https stackoverflow co
  • python 3.5 中的 json.loads 和 Redis

    我使用 json dumps 创建了一个 JSON 对象 并在 Redis 列表中将其 RPUSH ed 当使用 LRANGE redis lrange 返回 JSON 时 我收到一个二进制字符串 b si 00 ff 所以 json lo
  • Redis键空间事件不触发

    我有两个 Redis 客户端 在一个文件中我有一个简单的脚本设置并删除了 Redis 键 var redis require redis var client redis createClient 6379 127 0 0 1 client
  • 如何统计 Redis 流中未读或已确认的消息?

    使用 Redis 5 0 3 假设我们创建一个名为streamy和一个消费群体consumers XGROUP CREATE streamy consumers MKSTREAM 然后向其中添加一些消息 XADD streamy messa
  • Redis hash写入速度非常慢

    我面临一个非常奇怪的问题 使用 Redis 时 我的写入速度非常糟糕 在理想的情况下 写入速度应该接近 RAM 上的写入速度 这是我的基准 package redisbenchmark import redis clients jedis
  • Spring Data Redis JedisConnectionException:流意外结束

    雷迪斯3 0 5Spring数据Redis 1 3 6绝地武士2 6 3 我们的 Web 应用程序通过 pub sub 从 Redis 接收数据 还以键 值对的形式在 Redis 上执行数据读 写 读 写发生在监听线程 独立监控线程和htt
  • 从redis中检索大数据集

    一台服务器上的应用程序查询另一台服务器上运行的 Redis 查询的结果数据集约为 250kzrangebyscore objects locations inf inf这在应用程序服务器上似乎需要 40 秒 当使用命令执行时redis cl
  • 在 sidekiq 上配置 redis 身份验证

    我想我错过了一些东西 因为我在文档中找不到如何编写 redis 实例的用户名和密码以与 sidekiq 一起使用 有没有办法做到这一点 或者是通过 ENV 变量 Sidekiq 将无法识别的 Redis 选项直接传递给 Redis 驱动程序
  • socket.io 广播功能 & Redis pub/sub 架构

    如果有人能帮助我解决一个小疑问 我将不胜感激 使用socket io广播功能和在Redis上使用pub sub设计架构有什么区别 例如 在另一个示例中 node js 服务器正在侦听 socket io 针对 键 模型 todo 和值 数据
  • 如何在Redis中进行持久化存储?

    关闭redis服务器后 使用set存储的值被破坏 在这里我找到了使用持久性存储的方法 有人帮助我 如何使用javascript实现这一点 我想将客户端的一些值存储在 redis 数据库中 并且必须在其他客户端中使用该值 您需要配置 Redi
  • 2 个具有共享 Redis 依赖的 Helm Chart

    目前 我有 2 个 Helm Charts Chart A 和 Chart B Chart A 和 Chart B 对 Redis 实例具有相同的依赖关系 如Chart yaml file dependencies name redis v
  • 有没有办法用Lettuce自动发现Redis集群中新的集群节点IP

    我有一个Redis集群 3主3从 运行在一个库伯内斯簇 该集群通过Kubernetes 服务 Kube 服务 我将我的应用程序服务器连接到 Redis 集群 使用Kube 服务作为 URI 通过 Redis 的 Lettuce java 客
  • Laravel 所有会话 ID 与 Redis 驱动程序

    在我的应用程序中 我希望允许某些用户能够注销除他 她之外的所有其他用户 当会话驱动程序设置为文件时 我已经完成了此功能 但现在我使用 redis 作为会话驱动程序 并且我无法找到任何方法来列出所有当前会话 就像我在文件时所做的那样司机 问题
  • Redis是如何实现高吞吐量和高性能的?

    我知道这是一个非常普遍的问题 但是 我想了解允许 Redis 或 MemCached Cassandra 等缓存 以惊人的性能极限工作的主要架构决策是什么 如何维持连接 连接是 TCP 还是 HTTP 我知道它完全是用C写的 内存是如何管理
  • StackExchange.Redis Get 函数抛出 TimeoutException

    我在用着StackExchange Redis与 C 和StackExchangeRedisCacheClient Get函数抛出以下异常 myCacheClient Database StringGet txtKey Text myCac
  • 在 Redis 上为 Django 和 Express.js 应用程序共享会话存储

    我想创建一个包含一些登录用户的 Django 应用程序 另一方面 由于我想要一些实时功能 所以我想使用 Express js 应用程序 现在的问题是 我不希望身份不明的用户访问 Express js 应用程序的日期 因此 我必须在 Expr

随机推荐

  • SpringBoot + Thymeleaf 实现发送验证码计时器功能

    x1f4e2 本文章通过实战记录相关问题以及提供解决方案 x1f464 公众号 xff1a 恩故事还在继续 目录 1 功能需求2 效果图展示3 代码4 参考文献5 联系我 1 功能需求 实现找回密码然后点击获取验证码之后出现XX秒候重新获取
  • 解决 SpringBoot 图片加载失败

    x1f4e2 本文章通过实战记录相关问题以及提供解决方案 x1f464 公众号 xff1a 恩故事还在继续 目录 1 问题描述2 解决方案2 1 打开 IDEA 3 参考文献 1 问题描述 在使用 SpringBoot 开发项目的时候发现了
  • 仿牛客论坛项目部署总结

    x1f4e2 本文章通过实战记录相关问题以及提供解决方案 x1f464 公众号 xff1a 恩故事还在继续 目录 1 前言2 部署项目需求3 环境配置3 1 阿里云服务器3 2 本地文件上传到服务器3 3 MySQL配置与安装3 4 Mav
  • 时间片轮转调度算法的计算

    在分时系统中 xff0c 最简单最常用的就是基于时间片轮转调度算法 xff0c 时间片轮转调度算法是非常公平的处理机分配方式 xff0c 让就绪队列的每个进程每次仅运行一个时间片 1 时间片轮转调度算法的基本原理 在时间片轮转调度算法中 x
  • IntelliJ IDEA添加注释常用的快捷键

    IDEA可以使用快捷键添加行注释Ctrl 43 块注释Ctrl 43 Shift 43 xff0c 还可以快速生成类注释 方法注释等 下面就介绍这几种快捷键的用法 1 行注释Ctrl 43 首先你的光标要处于这一行 xff0c 处于这行的哪
  • Android Studio 设置代码提示和代码自动补全快捷键

    想必使用过Eclipse的小伙伴们都习惯Eclipse快捷键带来的方便 但是当我们使用Android studio来进行开发的时候也想要这种方便该怎么办呢 当然使用过Android studio的小伙伴可能已经知道了它的方便以及强大之处 接
  • 编写一个算法,实现一维数组a输入任意n个整数,假设n=7,输入7个数字为3,7,6,8,9,4,1

    问题描述 编写一个算法 xff0c 实现一维数组a输入任意n个整数 xff0c 假设n 61 7 xff0c 输入7个数字为3 7 6 8 9 4 1 xff0c 然后建立一个具有如图所示的方阵 xff0c 并输出打印 1 3 7 6 8
  • 1.0 DS1302-外部RTC

    一 综述 DS1302是美国DALLAS公司推出的具有涓细电流充电能力的低功耗实时时钟芯片 xff0c 因为应用非常广泛 xff0c 结果就导致了大量的国产仿制品 xff0c GC1302是一款国产DS1302仿制芯片 xff0c 使用方法
  • 现代C++语言

    include lt iostream gt include lt limits gt include lt future gt include lt string gt include lt map gt using namespace
  • ubuntu 解压 打包 命令全集

    tar 解包 xff1a tar xvf FileName tar 打包 xff1a tar cvf FileName tar DirName xff08 注 xff1a tar是打包 xff0c 不是压缩 xff01 xff09 gz 解
  • 在IDEA中解决进行有关详细信息, 请使用 -Xlint:unchecked 重新编译。

    springboot默认的打包是如下 xff1a lt build gt lt plugins gt lt plugin gt lt groupId gt org springframework boot lt groupId gt lt
  • Jetson Nano更换软件源

    Nano的镜像默认是国外的源 xff0c 速度很慢 xff0c 国内的源有的上不去 xff0c 有的包无法安装 xff0c 经过测试清华大学的源完美可用 xff0c 现放上教程 首先备份原本的source list文件 sudo cp et
  • prometheus在k8s中的部署

    1 k8s的监控指标 监控指标具体实现举例Pod性能cAdvisor容器CPU xff0c 内存利用率Node性能node exporter节点CPU xff0c 内存利用率K8S资源对象kube state metricsPod Depl
  • vue前端

    span class token operator lt span span class token operator span DOCTYPE html span class token operator gt span span cla
  • VueCli 脚手架的安装

    配置淘宝npm仓库 xff1a span class token function npm span config span class token builtin class name set span registry https re
  • vue进阶知识

    Vue单文件组件 xff08 又名 vue文件 xff0c 缩写为SFC xff09 是一种特殊 的文件格式 xff0c 它允许讲Vue组件的模板 逻辑与样式封装在 单个文件中 正如所见 xff0c Vue SFC 是经典的 HTML CS
  • ssh@host:""ssh切换到其他机器上执行多条命令;Pseudo-terminal will not be allocated because stdin is not a terminal.

    1 背景 xff1a shell脚本在主机器上执行kafka的启动命令 其他机器也会起这个进程 之前的脚本每次执行的时候出现卡住的现象 xff0c 不能回到命令行 解决方法 xff1a 第一种 span class hljs comment
  • centos升级glibc(升级到 2.17版)

    1 原先的系统glibc库的版本是2 12 xff0c 需要升级到2 17版本 下载地址 xff1a http ftp gnu org gnu glibc glibc 2 17 tar gz 这里可以选择你所需要的版本 2 安装部署 roo
  • u盘启动盘安装centos7.4操作系统

    1 使用UltraISO软件将ISO镜像刻录到U盘 xff0c 然后用u盘安装操作系统 制作好的u盘如下所示 xff1a 2 启动华为h3c服务器 xff0c 出现下面的界面 按照提示按住Ctrl 43 A制作raid 继续点击下一步 xf
  • redis一主一从两台机器高可用

    目录 1 机器规划 2 redis的部署安装 2 1配置文件内容 2 2 启动2台机器上的redis服务 2 3 查看2台机器上redis数据信息 3 redis主从之间手动切换 3 1 停掉22上的redis进程 xff0c 到23从re