# RedisInstall **Repository Path**: brianchou/redis-install ## Basic Information - **Project Name**: RedisInstall - **Description**: 部署Redis Sentinel或Redis Cluster - **Primary Language**: Shell - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-04-11 - **Last Updated**: 2025-08-26 ## Categories & Tags **Categories**: Uncategorized **Tags**: Redis ## README # Redis 安装 [toc] ## 获取代码 ```shell git clone https://gitee.com/brianchou/redis-install.git ``` > [!CAUTION] > > 三台服务器安装的`Redis Cluster`为伪集群,当其中一台服务器宕机后,集群可能异常。 > > 六台服务器安装的`Redis Cluster`为标准三主三从集群,允许一个主节点或多个从节点异常,只要主节点故障不超过1个。 > > 三台服务器安装的`Redis Sentinel`为哨兵模式。一主两从架构,允许一台服务器宕机。 > > 在部署前,请通读此文档,选择合适的部署模式。 ## ARM64架构 如果是arm64架构的服务器,建议在脚本里(已经在脚本中做了判断,不用再手动添加)`requirepass`后添加`ignore-warnings ARM64-COW-BUG`,避免出现像文末那样的异常问题。 ![image-20250312133532077](README.assets/image-20250312133532077.png) ## 获取安装包 访问 https://download.redis.io/releases/redis-6.2.19.tar.gz 下载安装包。若服务器可访问外网,则跳过此步骤。 ## 三台服务器部署Redis Cluster集群 > 此集群的健壮性不如六节点集群,在三台服务器都正常运行的情况下,`redis`实例异常会自动触发故障转移,如果其中一台服务器宕机,则集群可能异常。 ### 执行安装 1. 修改脚本`install_redis_cluster_three_nodes.sh`,**其中`REDIS_PASSWORD` 和`REDIS_CLUSTER_IP`必须修改**。 脚本只验证了`6.2.19`版本,未验证其它版本5.+和7.+。 | 变量名 | 含义 | 示例 | | --------------------- | ---------------------------------------------- | ----------------------------------------------- | | REDIS_USER | 运行用户 | redis | | REDIS_VERSION | 版本 | 6.2.19(固定值) | | REDIS_BASE | 二进制解压,数据和配置文件存储目录 | /data/redis | | REDIS_CLIENT_PORT_ONE | 应用端口 | 6379 | | REDIS_CLIENT_PORT_TWO | 应用端口 | 6380 | | REDIS_MAXCLIENTS | Client最大连接数 | 20000 | | REDIS_MAX_MEMORY | 最大内存限制 | 4294967296 | | APPENDONLY | 是否开启appendonly(磁盘性能较差时不建议开启) | no | | REDIS_PASSWORD | 密码 | KPMMo!buH8.!pe6vbvX3Mvi | | REDIS_CLUSTER_IP | 集群节点IP数组,需根据实际情况修改 | "172.26.85.157" "172.26.85.158" "172.26.85.159" | 脚本中的换行符如果是`CRLF`,需要使用`vs code`或其他编辑器将其调整为如下图的`LF`。 ![image-20250310134442034](README.assets/image-20250310134442034.png) 2. 在每台服务器上创建`/tmp/redis_install`目录。 ```shell mkdir -p /tmp/redis_install ``` 3. 上传脚本`install_redis_cluster_three_nodes.sh`至每台服务器的`/tmp/redis_install`,若服务器不能访问外网,还需要将`redis-6.2.19.tar.gz`上传。 4. 在每台服务器上执行以下命令进行安装。 ```shell cd /tmp/redis_install bash install_redis_cluster_three_nodes.sh ``` 5. 正常情况下脚本执行后,控制台会打印这样的内容,每台服务器都会启动两个进程。 ![image-20250311133656943](README.assets/image-20250311133656943.png) 6. 在服务器B和C(`REDIS_CLUSTER_IP`的第二,三个元素)上会打印与下面类似的内容。 ![image-20250311134111708](README.assets/image-20250311134111708.png) 7. 在服务器A(`REDIS_CLUSTER_IP`的第一个元素)上会打印与下面类似的内容,1️⃣中的IP和端口是脚本中定义的,在2️⃣处输入`yes`并回车(脚本已经处理,不需要再手动执行),出现3️⃣这样的内容时,表示集群关联完成。 ![image-20250311134714461](README.assets/image-20250311134714461.png) 当出现第5,6,7三点中的内容时,集群就创建完成了(下面的步骤可不再执行)。 8. 在每台服务器上执行命令`ps -ef|grep redis`,会有两个`本机IP:端口`的`redis`进程。 ![image-20250311152003065](README.assets/image-20250311152003065.png) 9. 查看日志,其中`/data/redis`为`REDIS_BASE`的值,`6379`和`6380`是服务端口。 ```shell # redis 6379端口日志 tail -200f /data/redis/6379/log/redis_6379.log # redis 6380端口日志 tail -200f /data/redis/6380/log/redis_6380.log ``` 10. 服务启动后,在每个节点上运行以下命令删除安装包。 ```shell rm -rf /tmp/redis_install ``` ### 验证集群 在任意一台服务器输入以下命令,将密码`KPMMo!buH8.!pe6vbvX3Mvi`,IP`172.26.85.157`,端口`6379`改成实际值。 ```shell export REDISCLI_AUTH='KPMMo!buH8.!pe6vbvX3Mvi' && redis-cli -c -h 172.26.85.157 -p 6379 cluster info ``` 正常情况下会打印于下文相似的内容,`cluster_state:ok`,集群正常。 ```shell cluster_state:ok cluster_slots_assigned:16384 cluster_slots_ok:16384 cluster_slots_pfail:0 cluster_slots_fail:0 cluster_known_nodes:6 cluster_size:3 cluster_current_epoch:6 cluster_my_epoch:1 cluster_stats_messages_ping_sent:1450 cluster_stats_messages_pong_sent:1442 cluster_stats_messages_sent:2892 cluster_stats_messages_ping_received:1437 cluster_stats_messages_pong_received:1450 cluster_stats_messages_meet_received:5 cluster_stats_messages_received:2892 ``` 执行效果如下图所示。 ![image-20250311135641475](README.assets/image-20250311135641475.png) ### 应用连接 https://www.baeldung.com/spring-data-redis-properties **适用版本**:Spring Boot 2.+。 ```yaml spring: redis: cluster: # redis cluster节点 nodes: 172.26.85.157:6379,172.26.85.158:6379,172.26.85.159:6379,172.26.85.157:6380,172.26.85.158:6380,172.26.85.159:6380 max-redirects: 3 # Redis密码 password: ZmkDbgaua3Rso33T # Redis Cluster只有一个数据库 database: 0 timeout: 5000 lettuce: pool: min-idle: 1 max-idle: 10 max-active: 10 max-wait: 3000 ``` **适用版本**:Spring Boot 3.+。 ```yaml spring: data: redis: cluster: # redis cluster节点 nodes: 172.26.85.157:6379,172.26.85.158:6379,172.26.85.159:6379,172.26.85.157:6380,172.26.85.158:6380,172.26.85.159:6380 max-redirects: 3 # Redis密码 password: ZmkDbgaua3Rso33T # Redis Cluster只有一个数据库 database: 0 timeout: 5000 lettuce: pool: min-idle: 1 max-idle: 10 max-active: 10 max-wait: 3000 ``` ### 宕机异常 > 前文中有说到,宕机可能会导致集群异常(宕机服务器上存在两个主节点),以下是对情况进行补充说明。 前文部署的集群节点关联如下。 ```shell 主:172.26.85.157:6379 从:172.26.85.158:6380 主:172.26.85.158:6379 从:172.26.85.159:6380 主:172.26.85.159:6379 从:172.26.85.157:6380 ``` 现在整台服务器`172.26.85.159`宕机,在其它节点执行以下命令。 ```shell export REDISCLI_AUTH='KPMMo!buH8.!pe6vbvX3Mvi' && redis-cli -c -h 172.26.85.157 -p 6379 cluster nodes ``` 控制台显示以下内容。 ```shell d2aa18dae5f71670f9c726056595c35a763e1a42 172.26.85.158:6380@16380 slave 859a452aa5e9e0a2620c2e465befec67b460f022 0 1741678363140 1 connected 859a452aa5e9e0a2620c2e465befec67b460f022 172.26.85.157:6379@16379 myself,master - 0 1741678361000 1 connected 0-5460 2f28bc0404e5e37ab312cb1d222c92b2d2475a10 172.26.85.159:6380@16380 slave,fail 24f828e405263f01f4fe7e818323287b3428a516 1741678297578 1741678290000 2 connected 24f828e405263f01f4fe7e818323287b3428a516 172.26.85.158:6379@16379 master - 0 1741678362136 2 connected 5461-10922 658456dc32d4a08ddef82e43017b560926854dbc 172.26.85.159:6379@16379 master,fail - 1741678294868 1741678291000 3 connected d0901b7f240191a95bc88678f8acfd3985a9ebfb 172.26.85.157:6380@16380 master - 0 1741678362000 7 connected 10923-16383 ``` 可以看到`172.26.85.159:6379`和`172.26.85.159:6380`停止,`172.26.85.159:6379`的从节点`172.26.85.157:6380`提升为主节点。而`172.26.85.159:6380`是`172.26.85.158:6379`的从节点,不会影响集群。此时,集群可提供服务。 这时`172.26.85.157`上已经存在两个主机点,`172.26.85.159`恢复后,如果节点`172.26.85.157`宕机,则集群故障。 ## 标准Redis Cluster集群 > 标准的Redis Cluster集群是使用六台服务器部署。 ### 执行安装 1. 修改脚本`install_redis_cluster_six_nodes.sh`,**其中`REDIS_PASSWORD` 和`REDIS_CLUSTER_IP`必须修改**。 | 变量名 | 含义 | 示例 | | ----------------- | ---------------------------------------------- | ------------------------------------------------------------ | | REDIS_USER | 运行用户 | redis | | REDIS_VERSION | 版本 | 6.2.19(固定值) | | REDIS_BASE | 二进制解压,数据和配置文件存储目录 | /data/redis | | REDIS_CLIENT_PORT | 应用端口 | 6379 | | REDIS_MAXCLIENTS | Client最大连接数 | 20000 | | REDIS_MAX_MEMORY | 最大内存限制 | 4294967296 | | APPENDONLY | 是否开启appendonly(磁盘性能较差时不建议开启) | no | | REDIS_PASSWORD | 密码 | KPMMo!buH8.!pe6vbvX3Mvi | | REDIS_CLUSTER_IP | 集群节点IP数组,需根据实际情况修改 | "172.26.85.160" "172.26.85.161" "172.26.85.162" "172.26.85.163" "172.26.85.164" "172.26.85.165" | 脚本中的换行符如果是`CRLF`,需要使用`vs code`或其他编辑器将其调整为如下图的`LF`。 ![image-20250310134442034](README.assets/image-20250310134442034.png) 2. 在每台服务器上创建`/tmp/redis_install`目录。 ```shell mkdir -p /tmp/redis_install ``` 3. 上传脚本`install_redis_cluster_six_nodes.sh`至每台服务器的`/tmp/redis_install`,若服务器不能访问外网,还需要将`redis-6.2.19.tar.gz`上传。 4. 在每台服务器上执行以下命令进行安装。 ```shell cd /tmp/redis_install bash install_redis_cluster_six_nodes.sh ``` 5. 正常情况下,除第一个节点外,其余几个节点最后会输出与下图类似的日志。 ![image-20250311182641456](README.assets/image-20250311182641456.png) ------ ![image-20250311180742646](README.assets/image-20250311180742646.png) 6. 第一个节点会输出与下图类似的日志。在第一个节点(`REDIS_CLUSTER_IP`的第一个元素)上会打印与下面类似的内容,1️⃣中的IP和端口是脚本中定义的,在2️⃣处输入`yes`并回车(脚本已经处理,不需要再手动执行),出现3️⃣这样的内容时,表示集群关联完成。 ![image-20250311181755802](README.assets/image-20250311181755802.png) ------ ![image-20250311182210338](README.assets/image-20250311182210338.png) 至此集群就运行起来了。 7. 服务启动后,在每个节点上运行以下命令删除安装包。 ```shell rm -rf /tmp/redis_install ``` ### 验证集群 每台服务器上有一个`redis-server`进程。 ![image-20250311182730861](README.assets/image-20250311182730861.png) 在任意一台服务器输入以下命令,将密码`KPMMo!buH8.!pe6vbvX3Mvi`,IP`172.26.85.161`,端口`6379`改成实际值。 ```shell export REDISCLI_AUTH='KPMMo!buH8.!pe6vbvX3Mvi' && redis-cli -c -h 172.26.85.161 -p 6379 cluster info ``` 正常情况下会打印于下文相似的内容,`cluster_state:ok`,集群正常。 ```shell cluster_state:ok cluster_slots_assigned:16384 cluster_slots_ok:16384 cluster_slots_pfail:0 cluster_slots_fail:0 cluster_known_nodes:6 cluster_size:3 cluster_current_epoch:6 cluster_my_epoch:2 cluster_stats_messages_ping_sent:1171 cluster_stats_messages_pong_sent:1129 cluster_stats_messages_meet_sent:1 cluster_stats_messages_sent:2301 cluster_stats_messages_ping_received:1129 cluster_stats_messages_pong_received:1172 cluster_stats_messages_received:2301 ``` 执行效果如下图。 ![image-20250311182456365](README.assets/image-20250311182456365.png) 在任意一台服务器输入以下命令,将密码`KPMMo!buH8.!pe6vbvX3Mvi`,IP`172.26.85.161`,端口`6379`改成实际值。 ```shell export REDISCLI_AUTH='KPMMo!buH8.!pe6vbvX3Mvi' && redis-cli -c -h 172.26.85.161 -p 6379 cluster nodes ``` 正常情况下会打印于下文相似的内容,显示各个节点及其关联关系。 ```shell 08c4a4ae0d22a6445bb7e8a3160417d04e6c91bd 172.26.85.161:6379@16379 myself,master - 0 1741688700000 2 connected 5461-10922 337b227d2c239fa120be68719e16b602bd52195f 172.26.85.163:6379@16379 slave 9022f2943c6277dfdfd5122804f7dc73ff4d9f96 0 1741688701000 3 connected d3cee555271e8a6d28740f2875788d4f17965eb9 172.26.85.165:6379@16379 slave 08c4a4ae0d22a6445bb7e8a3160417d04e6c91bd 0 1741688700000 2 connected cea352de60d1751c79a543f8af18198f0e43cde3 172.26.85.160:6379@16379 master - 0 1741688701000 1 connected 0-5460 64d9d73e6936f7995b4e399a924e128c9252fbc6 172.26.85.164:6379@16379 slave cea352de60d1751c79a543f8af18198f0e43cde3 0 1741688702000 1 connected 9022f2943c6277dfdfd5122804f7dc73ff4d9f96 172.26.85.162:6379@16379 master - 0 1741688702763 3 connected 10923-16383 ``` 执行效果如下图。 ![image-20250311182523335](README.assets/image-20250311182523335.png) ### 应用日志 主节点应用日志如下图。 ![image-20250311182357751](README.assets/image-20250311182357751.png) 从节点应用日志如下图。 ![image-20250311182839850](README.assets/image-20250311182839850.png) ### 应用连接 https://www.baeldung.com/spring-data-redis-properties **适用版本**:Spring Boot 2.x。 ```yaml spring: redis: cluster: # redis cluster节点 nodes: 172.26.85.160:6379,172.26.85.161:6379:172.26.85.162:6379,172.26.85.163:6379:172.26.85.164:6379,172.26.85.165:6379 max-redirects: 3 # Redis密码 password: ZmkDbgaua3Rso33T # Redis Cluster只有一个数据库 database: 0 timeout: 5000 lettuce: pool: min-idle: 1 max-idle: 10 max-active: 10 max-wait: 3000 ``` **适用版本**:Spring Boot 3.x。 ```yaml spring: data: redis: cluster: # redis cluster节点 nodes: 172.26.85.160:6379,172.26.85.161:6379:172.26.85.162:6379,172.26.85.163:6379:172.26.85.164:6379,172.26.85.165:6379 max-redirects: 3 # Redis密码 password: ZmkDbgaua3Rso33T # Redis Cluster只有一个数据库 database: 0 timeout: 5000 lettuce: pool: min-idle: 1 max-idle: 10 max-active: 10 max-wait: 3000 ``` ## 三台服务器安装哨兵 ### 执行安装 1. 修改脚本`install_redis_sentinel.sh`,**其中`REDIS_PASSWORD` 和`REDIS_MASTER_IP`必须修改** | 变量名 | 含义 | 示例 | | ------------------- | ---------------------------------------------- | ----------------------- | | REDIS_USER | 运行用户 | redis | | REDIS_VERSION | 版本 | 6.2.19(固定值) | | REDIS_BASE | 二进制解压,数据和配置文件存储目录 | /data/redis | | REDIS_CLIENT_PORT | Redis端口 | 6379 | | REDIS_SENTINEL_PORT | Sentinel端口 | 26379 | | REDIS_MAXCLIENTS | Client最大连接数 | 20000 | | REDIS_MAX_MEMORY | 最大内存限制 | 4294967296 | | APPENDONLY | 是否开启appendonly(磁盘性能较差时不建议开启) | no | | REDIS_PASSWORD | 密码 | KPMMo!buH8.!pe6vbvX3Mvi | | REDIS_SENTINEL_NAME | Sentinel名称 | eadpmaster | | REDIS_MASTER_IP | 主节点IP | 192.168.0.150 | 脚本中的换行符如果是`CRLF`,需要使用`vs code`或其他编辑器将其调整为如下图的`LF`。 ![image-20250310134442034](README.assets/image-20250310134442034.png) 2. 在每台服务器上创建`/tmp/redis_install`目录。 ```shell mkdir -p /tmp/redis_install ``` 3. 上传脚本`install_redis_sentinel.sh`至每台服务器的`/tmp/redis_install`,若服务器不能访问外网,还需要将`redis-6.2.19.tar.gz`上传。 4. 在每台服务器上执行以下命令进行安装。 ```shell cd /tmp/redis_install bash install_redis_sentinel.sh ``` 执行日志大致如下。 ![image-20250312102217050](README.assets/image-20250312102217050.png) 在此期间控制台会打印一段很长的编译安装信息,正常情况下在每台服务器的控制台末尾可以看到以下输出,启动了`redis.service`和`redis-sentinel`两个服务。 ![image-20250312102611236](README.assets/image-20250312102611236.png) 5. 服务启动后就可执行以下命令删除安装包。 ```shell rm -rf /tmp/redis_install ``` ### 验证集群 #### 主节点 在主节点上执行以下命令。将密码`KPMMo!buH8.!pe6vbvX3Mvi`,IP地址`192.168.0.150`,端口`6379`改成实际值。 ```shell export REDISCLI_AUTH='KPMMo!buH8.!pe6vbvX3Mvi' && redis-cli -h 192.168.0.150 -p 6379 INFO REPLICATION ``` 控制台输出与下文类似的内容,两个从节点`slave0`和`slave1`。 ```shell # Replication role:master connected_slaves:2 slave0:ip=192.168.0.152,port=6379,state=online,offset=167138,lag=1 slave1:ip=192.168.0.151,port=6379,state=online,offset=167138,lag=0 master_failover_state:no-failover master_replid:3f94d3a380ddaffe4a34f50272dbed3c3814a5e1 master_replid2:0000000000000000000000000000000000000000 master_repl_offset:167138 second_repl_offset:-1 repl_backlog_active:1 repl_backlog_size:1048576 repl_backlog_first_byte_offset:1 repl_backlog_histlen:167138 ``` 如图所示。 ![image-20250312091924430](README.assets/image-20250312091924430.png) 日志可看到两个从节点同步成功。 ![image-20250312091323208](README.assets/image-20250312091323208.png) #### 从节点 在任意从节点执行以下命令。将密码`KPMMo!buH8.!pe6vbvX3Mvi`,IP地址`192.168.0.150`,端口`6379`改成实际值。 ```shell export REDISCLI_AUTH='KPMMo!buH8.!pe6vbvX3Mvi' && redis-cli -h 192.168.0.151 -p 6379 INFO REPLICATION ``` 控制台打印与下文类似的内容。 ```shell # Replication role:slave master_host:192.168.0.150 master_port:6379 master_link_status:up master_last_io_seconds_ago:0 master_sync_in_progress:0 slave_read_repl_offset:141945 slave_repl_offset:141945 slave_priority:100 slave_read_only:1 replica_announced:1 connected_slaves:0 master_failover_state:no-failover master_replid:3f94d3a380ddaffe4a34f50272dbed3c3814a5e1 master_replid2:0000000000000000000000000000000000000000 master_repl_offset:141945 second_repl_offset:-1 repl_backlog_active:1 repl_backlog_size:1048576 repl_backlog_first_byte_offset:1 repl_backlog_histlen:141945 ``` 如图所示。 ![image-20250312091754368](README.assets/image-20250312091754368.png) #### 哨兵日志 在控制执行以下命令 ```shell tail -200f /data/redis/log/redis-sentinel.log ``` 控制台打印与下文类似的内容。 ```shell 12555:X 12 Mar 2025 08:52:16.503 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo 12555:X 12 Mar 2025 08:52:16.503 # Redis version=6.2.17, bits=64, commit=00000000, modified=0, pid=12555, just started 12555:X 12 Mar 2025 08:52:16.503 # Configuration loaded 12555:X 12 Mar 2025 08:52:16.503 * monotonic clock: POSIX clock_gettime 12555:X 12 Mar 2025 08:52:16.504 * Running mode=sentinel, port=26379. 12555:X 12 Mar 2025 08:52:16.512 # Sentinel ID is 295964bab6a1d65c6d10b8d251e25668f90cd4f1 12555:X 12 Mar 2025 08:52:16.512 # +monitor master eadpmaster 192.168.0.150 6379 quorum 2 12555:X 12 Mar 2025 08:52:46.513 # +sdown master eadpmaster 192.168.0.150 6379 12555:X 12 Mar 2025 09:05:25.126 * +slave slave 192.168.0.152:6379 192.168.0.152 6379 @ eadpmaster 192.168.0.150 6379 12555:X 12 Mar 2025 09:05:25.129 * +slave slave 192.168.0.151:6379 192.168.0.151 6379 @ eadpmaster 192.168.0.150 6379 12555:X 12 Mar 2025 09:05:25.193 # -sdown master eadpmaster 192.168.0.150 6379 12555:X 12 Mar 2025 09:05:26.435 * +sentinel sentinel ab7b1b7d57fcdf380eef83111d6d52415ba6b302 192.168.0.152 26379 @ eadpmaster 192.168.0.150 6379 12555:X 12 Mar 2025 09:05:27.072 * +sentinel sentinel 9295b732a96f00a6e8b7e0463fb6a341d0dd106e 192.168.0.151 26379 @ eadpmaster 192.168.0.150 6379 ``` 如图所示。 ![image-20250312092215544](README.assets/image-20250312092215544.png) ### 应用连接 https://www.baeldung.com/spring-data-redis-properties **适用版本**:Spring Boot 2.+。 ```yaml spring: redis: # REDIS_PASSWORD的值 password: ZmkDbgaua3Rso33T timeout: 5000 sentinel: # REDIS_SENTINEL_NAME对应的值 master: eadpmaster # 哨兵的IP:REDIS_SENTINEL_PORT列表 nodes: 192.168.0.150:26379,192.168.0.151:26379,192.168.0.152:26379 lettuce: pool: max-active: 8 max-wait: -1 max-idle: 8 min-idle: 0 ``` **适用版本**:Spring Boot 3.+。 ```yaml spring: data: redis: # REDIS_PASSWORD的值 password: ZmkDbgaua3Rso33T timeout: 5000 sentinel: # REDIS_SENTINEL_NAME对应的值 master: eadpmaster # 哨兵的IP:REDIS_SENTINEL_PORT列表 nodes: 192.168.0.150:26379,192.168.0.151:26379,192.168.0.152:26379 lettuce: pool: max-active: 8 max-wait: -1 max-idle: 8 min-idle: 0 ``` ## 异常情况 在`ARM64架构的Kylin Linux Advanced Server (V10)`部署哨兵模式时遇到了以下问题。 ![image-20250312090133463](README.assets/image-20250312090133463.png) 执行脚本的控制台日志如下。 ![image-20250312085157133](README.assets/image-20250312085157133.png) 在编译安装完成后,启动`redis.service`失败。 ![image-20250312090018317](README.assets/image-20250312090018317.png) 从日志可以看到报以下错误。 ```shell 12490:M 12 Mar 2025 08:52:16.188 # WARNING Your kernel has a bug that could lead to data corruption during background save. Please upgrade to the latest stable kernel. 12490:M 12 Mar 2025 08:52:16.188 # Redis will now exit to prevent data corruption. Note that it is possible to suppress this warning by setting the following config: ignore-warnings ARM64-COW-BUG ``` 如图所示。 ![image-20250312090236413](README.assets/image-20250312090236413.png) 根据日志提示,在每台服务上执行以下命令。 ```shell echo 'ignore-warnings ARM64-COW-BUG' >> /data/redis/conf/redis.conf systemctl start redis systemctl status redis ``` 可以看到添加配置后,服务启动。 ![image-20250312090602475](README.assets/image-20250312090602475.png)