009.Redis Predixy + Sentinel 架构

Predixy介绍

Predixy概述

Predixy 是一款高性能全特征redis代理,支持redis-sentinel和redis-cluster。

https://github.com/joyieldInc/predixy/blob/master/doc/config_CN.md

Predixy特性

参考:Predixy特性

Predixy配置

predixy的配置类似redis, 具体配置项的含义在配置文件里有详细解释,请参考下列配置文件:

  • predixy.conf:整体配置文件,会引用下面的配置文件;
  • cluster.conf:用于Redis Cluster时,配置后端redis信息;
  • sentinel.conf:用于Redis Sentinel时,配置后端redis信息;
  • auth.conf:访问权限控制配置,可以定义多个验证密码,可每个密码指定读、写、管理权限,以及定义可访问的健空间;
  • dc.conf:多数据中心支持,可以定义读写分离规则,读流量权重分配;
  • latency.conf:延迟监控规则定义,可以指定需要监控的命令以及延时时间间隔。

提示:提供这么多配置文件实际上是按功能分开了,所有配置都可以写到一个文件里,也可以写到多个文件里然后在主配置文件里引用进来。

基础准备

环境准备

  • 安全预设

根据实际情况,关闭防火墙和SELinux。

[root@redis01 ~]# systemctl disable firewalld --now
[root@redis01 ~]# sed -i 's/=enforcing/=disabled/g' /etc/selinux/config

注意:以上操作需要在所有节点上执行。

  • 节点规划
角色主机名IP地址软件规划
Redis Masterredis01172.24.8.11Redis Server
Redis01 的 Slaveredis02172.24.8.12Redis Server
Redis01 的 Slaveredis03172.24.8.13Redis Server
Predixy 代理predixy172.24.8.14Predixy Proxy
  • 配置主机名
    建议配置内部主机名解析。
[root@redis01 ~]# cat >> /etc/hosts << EOF
172.24.8.11 redis01
172.24.8.12 redis02
172.24.8.13 redis03
172.24.8.14 predixy
EOF

时钟服务

主从架构建议保证时钟服务正确,具体时钟配置参考:NTP服务器

001.Chrony时间服务器

  • ntpd服务查看
[root@redis01 ~]# ntpq -np
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
*116.62.13.223   100.100.61.92    2 u   28   64  377   34.750   24.098   4.261
+203.107.6.88    100.107.25.114   2 u   13   64  377   47.745   18.287   8.121
  • chrony服务查看
[root@redis01 ~]# chronyc sources -v

变量准备

为实现自动化部署,自动化分发相关文件,提前定义相关主机名、IP组、变量等。

[root@redis01 ~]# vim redisnodes.sh                             #确认相关主机名和IP
#!/bin/bash
#***************************************************************#
# ScriptName: redisnodes.sh
# Author: xhy
# Create Date: 2025-02-22 01:44
# Modify Author: xhy
# Modify Date: 2025-02-22 01:44
# Version: v1
#***************************************************************#

# 集群 SENTINEL 机器 IP 数组
export ALL_IPS=(172.24.8.11 172.24.8.12 172.24.8.13)

# 集群 SENTINEL IP 对应的主机名数组
export ALL_NAMES=(redis01 redis02 redis03)

互信配置

为了方便远程分发文件和执行命令,本方案配置 redis01 节点到其它节点的 ssh信任关系,即免秘钥管理所有其他节点。

[root@redis01 ~]# source redisnodes.sh                                  #载入变量
    
[root@redis01 ~]# wget http://down.linuxsb.com/myshell/mkpublickey.sh
[root@redis01 ~]# vim mkpublickey.sh                                    #确认IP
#……
# 检查参数
if [ $# -ne 1 ]; then
    echo "该脚本需要带上主机密码: $0 <密码>"
    exit 1
fi

# 主机列表(直接内置)
HOSTS=(
    172.24.8.11
    172.24.8.12
    172.24.8.13
)
#……

[root@redis01 ~]# bash mkpublickey.sh redhat123

提示:如上仅需在 redis01 节点上操作。

Redis安装前置优化

[root@redis01 ~]# chmod +x *.sh
[root@redis01 ~]# source redisnodes.sh
[root@redis01 ~]# for all_ip in ${ALL_IPS[@]}
  do
    echo -e "\n\n\033[33m[INFO] >>> ${all_ip}...\033[0m"
    sleep 2
    scp -rp /etc/hosts root@${all_ip}:/etc/hosts
    ssh root@${all_ip} "echo 'vm.overcommit_memory=1' > /etc/sysctl.d/redis-sysctl.conf"
    ssh root@${all_ip} "sysctl -p /etc/sysctl.d/redis-sysctl.conf"
    ssh root@${all_ip} "echo 'echo never > /sys/kernel/mm/transparent_hugepage/enabled' >> /etc/rc.d/rc.local"
  done

提示:如上仅需在 redis01 上操作。

Redis安装

Redis编译安装

建议使用编译安装。

[root@redis01 ~]# source redisnodes.sh
[root@redis01 ~]# for all_ip in ${ALL_IPS[@]}
  do
    echo -e "\n\n\033[33m[INFO] >>> ${all_ip}...\033[0m"
    sleep 2
    scp -rp /etc/hosts root@${all_ip}:/etc/hosts
    ssh root@${all_ip} "mkdir -p /tmp/redis-tmp /etc/redis/ /var/log/redis/"
    ssh root@${all_ip} << EOF
	  REIDS_VER=8.0.3
	  DOWNLOAD_URL="https://mirrors.huaweicloud.com/redis"
	  curl -L "\${DOWNLOAD_URL}/redis-\${REIDS_VER}.tar.gz" -o "/tmp/redis-\${REIDS_VER}.tar.gz"
	  tar xzvf "/tmp/redis-\${REIDS_VER}.tar.gz" -C /tmp/redis-tmp --strip-components=1 --no-same-owner
	  cd /tmp/redis-tmp
	  make -j4
	  make install PREFIX=/usr/local/redis
	  echo 'PATH=/usr/local/redis/bin:\$PATH' > /etc/profile.d/redis.sh
	  source /etc/profile.d/redis.sh
	  redis-cli -v
EOF
  done

提示:所有主从节点都需要安装Redis,如上可实现所有节点循环编译完成安装。

Redis服务单元

通过服务单元的方式管理Redis是更推荐的方式,更符合最佳实践。

[root@redis01 ~]# cat > /usr/lib/systemd/system/redis-server.service <<EOF
[Unit]
Description=Redis Server Manager
After=network.target
After=network-online.target
Wants=network-online.target
Documentation=https://redis.io/documentation

[Service]
ExecStart=/usr/local/redis/bin/redis-server /etc/redis/redis01_6379.conf
ExecStop=/usr/local/redis/bin/redis-cli shutdown
#Restart=on-failure
RestartSec=5
Type=forking

[Install]
WantedBy=multi-user.target
EOF

[root@redis01 ~]# source redisnodes.sh
[root@redis01 ~]# for redis_ip in ${ALL_IPS[@]}
  do
    echo -e "\n\n\033[33m[INFO] >>> ${redis_ip}...\033[0m"
    sleep 2
    scp -rp /usr/lib/systemd/system/redis-server.service root@${redis_ip}:/usr/lib/systemd/system/
    ssh root@${redis_ip} "mkdir -p /run/redis"
  done

提示:所有主从节点都建议使用服务单元的方式管理。

Redis主从部署

Redis 主节点配置

为了数据可靠性,同时开启AOF持久化。

[root@redis01 ~]# mkdir -p /var/lib/redis/redis01/ /var/log/redis/      #创建Redis RDB持久化文件保存路径

[root@redis01 ~]# vim /etc/redis/redis01_6379.conf
# 核心配置项:
bind 0.0.0.0 -::1                       # 允许所有IP连接
protected-mode no                       # 关闭保护模式
port 6379
daemonize yes
logfile /var/log/redis/redis01.log
dir /var/lib/redis/redis01

# 主从复制相关
repl-backlog-size 64mb                  # 复制积压缓冲区大小(建议1-2倍内存)
repl-backlog-ttl 3600                   # 缓冲区保留时间(秒)
repl-diskless-sync yes                  # 启用无盘复制(推荐)
repl-diskless-sync-delay 5              # 等待更多从节点加入(秒)
requirepass "StrongPassword123!" 

# 数据持久化
appendonly yes                              # 修改,启用AOF持久化
appendfilename "appendonly.aof"             # 默认,AOF主文件名
appenddirname "appendonlydir"               # 默认,AOF 分片文件目录
appendfsync everysec                        # 默认,同步策略(推荐值),每秒同步
#……

[root@redis01 ~]# systemctl restart redis-server
[root@redis01 ~]# systemctl enable redis-server

Redis 从节点配置

[root@redis02 ~]# mkdir -p /var/lib/redis/redis01/ /var/log/redis/      #创建Redis RDB持久化文件保存路径

[root@redis02 ~]# vim /etc/redis/redis01_6379.conf
#……
# 核心配置项:
bind 0.0.0.0 -::1                       # 允许所有IP连接
protected-mode no                       # 关闭保护模式
port 6379
daemonize yes
logfile /var/log/redis/redis01.log
dir /var/lib/redis/redis01

# 主从复制配置
replicaof 172.24.8.11 6379              # 关键配置:指定主节点
replica-read-only yes                   # 默认,从节点只读(推荐)
repl-diskless-load disabled             # 默认,从节点禁用无盘加载(避免风险)
masterauth "StrongPassword123!"         # 如果主节点有密码需配置

# 数据持久化
appendonly yes                              # 修改,启用AOF持久化
appendfilename "appendonly.aof"             # 默认,AOF主文件名
appenddirname "appendonlydir"               # 默认,AOF 分片文件目录
appendfsync everysec                        # 默认,同步策略(推荐值),每秒同步

[root@redis03 ~]# mkdir -p /var/lib/redis/redis01/ /var/log/redis/                      #redis03创建相应目录

[root@redis02 ~]# scp -rp /etc/redis/redis01_6379.conf root@172.24.8.13:/etc/redis/     #redis03相同配置

[root@redis02 ~]# systemctl restart redis-server
[root@redis02 ~]# systemctl enable redis-server

[root@redis03 ~]# systemctl restart redis-server
[root@redis03 ~]# systemctl enable redis-server
Redis 主从验证
[root@redis01 ~]# redis-cli -a "StrongPassword123!" -h redis01 -p 6379
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
redis01:6379> INFO replication

015

Redis哨兵部署

哨兵配置获取

从默认源码包中复制哨兵模式配置模板。

[root@redis01 ~]# cp -rp /tmp/redis-tmp/sentinel.conf /etc/redis/sentinel01_26379.conf

哨兵模式配置

  • redis01配置
[root@redis01 ~]# cat > /etc/redis/sentinel01_26379.conf << EOF
protected-mode no

# 默认,对外提供服务的端口
port 26379
# 开启后台运行
daemonize yes
# 设置哨兵日志文件
logfile "/var/log/redis/sentinel01.log"
# 哨兵sentinel工作目录
dir "/var/lib/redis/sentine01"

# 指定Redis主节点主机IP地址和端口
sentinel monitor mymaster 172.24.8.11 6379 2
# 配置连接密码,此处的密码需要与 redis.conf里面配置的连接密码一致
sentinel auth-pass mymaster StrongPassword123!
# 设置了主机多少毫秒无响应,则认为服务异常
sentinel down-after-milliseconds mymaster 30000
# 主备切换时,最多有多少个slave同时对新的master进行同步,这里设置为默认的1
sentinel parallel-syncs mymaster 1
# 故障转移的超时时间毫秒
sentinel failover-timeout mymaster 180000
# 8.0版本后必须显式声明才能自动发现
sentinel announce-ip 172.24.8.11
# 8.0版本后必须显式声明才能自动发现
sentinel announce-port 26379
sentinel resolve-hostnames no
sentinel announce-hostnames no
EOF
  • 配置服务单元
    通过服务单元的方式管理Redis是更推荐的方式,更符合最佳实践。
[root@redis01 ~]# vim /usr/lib/systemd/system/redis-sentinel.service
[Unit]
Description=Redis Sentinel
After=network.target
After=network-online.target
Wants=network-online.target
Documentation=https://redis.io/documentation

[Service]
ExecStart=/usr/local/redis/bin/redis-sentinel /etc/redis/sentinel01_26379.conf
ExecStop=/usr/local/redis/bin/redis-cli -p 26379 shutdown
Restart=always
RestartSec=5
Type=forking

[Install]
WantedBy=multi-user.target
  • 配置分发
    将服务单元和配置文件分发至所有其他节点,针对 sentinel announce-ipsentinel announce-port 每个节点单独配置。
[root@redis01 ~]# for all_ip in ${ALL_IPS[@]}
  do
    echo -e "\n\n\033[33m[INFO] >>> ${all_ip}...\033[0m"
    sleep 2
    ssh root@${all_ip} "mkdir -p /var/lib/redis/sentine01"
    scp -rp /etc/redis/sentinel01_26379.conf root@${all_ip}:/etc/redis/
    scp -rp /usr/lib/systemd/system/redis-sentinel.service root@${all_ip}:/usr/lib/systemd/system/
  done

[root@redis02 ~]# vim /etc/redis/sentinel01_26379.conf
#……
sentinel announce-ip 172.24.8.12                    # 8.0版本后必须显式声明才能自动发现
#……

[root@redis02 ~]# vim /etc/redis/sentinel01_26379.conf
#……
sentinel announce-ip 172.24.8.13                    # 8.0版本后必须显式声明才能自动发现
#……
#……

哨兵服务启动

所有节点相同配置,然后启动哨兵服务。

[root@redis01 ~]# for all_ip in ${ALL_IPS[@]}
  do
    echo -e "\n\n\033[33m[INFO] >>> ${all_ip}...\033[0m"
    sleep 5
    ssh root@${all_ip} "systemctl daemon-reload"
    ssh root@${all_ip} "systemctl enable redis-sentinel.service --now"
    ssh root@${all_ip} "systemctl restart redis-sentinel.service"
    ssh root@${all_ip} "systemctl status redis-sentinel.service"
  done

参考: 高可用之战:Redis Sentinal(哨兵模式)

确认验证

[root@redis01 ~]# redis-cli -h redis01 -p 26379 sentinel sentinels mymaster | grep 172
172.24.8.12
172.24.8.13

[root@redis01 ~]# redis-cli -h redis01 -p 26379 sentinel ckquorum mymaster                      #确认仲裁节点
OK 3 usable Sentinels. Quorum and failover authorization can be reached

Predixy代理部署

Predixy 安装

当前predixy最后7.0.1版本,但配置改动较大,该手册继续保持最常用的1.0.5版本。

[root@predixy ~]# mkdir -p /var/log/predixy/                            #创建predixy日志保存路径

[root@predixy ~]# wget https://gh.linuxsb.com/https://github.com/joyieldInc/predixy/releases/download/1.0.5/predixy-1.0.5-bin-amd64-linux.tar.gz

# 解压安装
[root@predixy ~]# tar xf predixy-1.0.5-bin-amd64-linux.tar.gz
[root@predixy ~]# mv predixy-1.0.5 /usr/local/predixy

Predixy 配置

  • 主配置文件
[root@predixy ~]# vim /usr/local/predixy/conf/predixy.conf
#……
Bind 0.0.0.0:7617
WorkerThreads 4                     # 建议设置为CPU核心数
Log /var/log/predixy/predixy.log    # 日志文件
LogRotate 1d                        # 日志轮转
Include auth.conf                   # 引入认证文件
#Include try.conf                   # 注释引入认证配置
Include sentinel.conf               # 引入后端sentinel节点配置
#……
  • 认证配置文件
[root@predixy ~]# vim /usr/local/predixy/conf/auth.conf
#……
Authority {
    Auth "PredixyPassword!" {             # 通过predixy连接进来的密码
        Mode admin
    }
}
  • 后端节点配置
[root@predixy ~]# vim /usr/local/predixy/conf/sentinel.conf
SentinelServerPool {
    Databases 16
    # 数据库密码
    Password "StrongPassword123!"           # Redis 实例的密码
    Hash crc16
    HashTag "{}"                            # Redis 集群使用的哈希标签
    Distribution modula
    # 读优先级(可调)
    MasterReadPriority 60                   # 主节点读取优先级
    StaticSlaveReadPriority 50              # 静态从节点优先级
    DynamicSlaveReadPriority 50             # 动态发现从节点优先级

    RefreshInterval 1
    ServerTimeout 1
    ServerFailureLimit 10                   # 后端失败阈值
    ServerRetryTimeout 1                    # 后端重试间隔(毫秒)
    KeepAlive 120

    # 主从分组配置(Group 名称自定义即可),其中第一个为主节点
    Group shard001 {
        + 172.24.8.11:26379
        + 172.24.8.12:26379
        + 172.24.8.13:26379
    }
    Group mymaster {
    }
}

predixy服务单元

通过服务单元的方式管理predixy是更推荐的方式,更符合最佳实践。

[root@redis01 ~]# cat > /usr/lib/systemd/system/predixy.service <<EOF
[Unit]
Description=Predixy Redis Proxy
After=network.target
After=network-online.target
Wants=network-online.target
Documentation=https://github.com/joyieldInc/predixy/blob/master/README_CN.md

[Service]
ExecStart=/usr/local/predixy/bin/predixy /usr/local/predixy/conf/predixy.conf
Restart=always
RestartSec=5
Type=simple

[Install]
WantedBy=multi-user.target
EOF

predixy服务启动

[root@predixy ~]# systemctl daemon-reload
[root@predixy ~]# systemctl enable predixy --now
[root@predixy ~]# systemctl status predixy

确认验证

状态验证

使用predixy连接redis。

[root@redis01 ~]# redis-cli -h 172.24.8.14 -p 7617
172.24.8.14:7617> AUTH PredixyPassword!
OK
172.24.8.14:7617> INFO

016

017

模拟故障

关闭redis01的服务进程。

[root@redis01 ~]# systemctl stop redis-server

观察故障后有没有实现自动切换的新master节点。

[root@redis01 ~]# redis-cli -a PredixyPassword! -h 172.24.8.14 -p 7617
172.24.8.14:7617> INFO
Server:172.24.8.13:6379
Role:master
Group:mymaster
DC:
CurrentIsFail:0
Connections:0
Connect:0
Requests:0
Responses:0
SendBytes:0
RecvBytes:0
<think>我们有一个Spring Boot的配置文件片段(可能是application.properties或application.yml),它配置了Redis相关的属性。具体配置项解释如下:1.`spring.redis.password`:设置连接Redis服务器的密码。这里密码是`SKIP(VoceOFZ4f@raNZ@cSJtfV9Zg)`,但实际使用时可能会被跳过(SKIP)?或者这是一个占位符?不过通常这就是密码字符串。2.`spring.redis.sentinel.master`:设置Sentinel模式下的主节点名称。这里为`acs_sentinel`,表示Sentinel监控的主节点名。3.`spring.redis.sentinel.nodes`:设置Sentinel节点列表,格式为`host:port`,多个节点用逗号分隔。这里配置了三个节点,都在同一台主机的不同端口上(55.11.162.174:26379,26380,26381)。4.`spring.redis.jedis.pool.max-idle`:连接池中最大空闲连接数,这里设置为10。5. `spring.redis.jedis.pool.min-idle`:连接池中最小空闲连接数,这里设置为10。6.`spring.redis.jedis.pool.max-wait`:当连接池资源耗尽时,调用者最大等待时间(毫秒),这里设置为2000毫秒(即2秒)。7.`spring.redis.jedis.pool.time-between-eviction-runs`:空闲连接逐出器运行的时间间隔(毫秒),这里设置为60000毫秒(即1分钟)。总结:这段配置用于配置SpringBoot应用通过Jedis连接RedisSentinel集群。其中指定了Sentinel的主节点名称、节点地址、连接密码以及连接池的相关参数。注意:由于配置了Sentinel,所以应用将以高可用的方式连接Redis,通过Sentinel节点来发现主节点和从节点。下面给出一个类似的配置在application.yml中的写法(如果使用的是yml格式):```yamlspring:redis:password: SKIP(VoceOFZ4f@raNZ@cSJtfV9Zg)sentinel:master: acs_sentinelnodes:55.11.162.174:26379,55.11.162.174:26380,55.11.162.174:26381jedis:pool:max-idle:10min-idle:10max-wait:2000time-between-eviction-runs:60000```相关问题:1.在SpringBoot中,除了使用properties文件,还可以使用什么格式的配置文件?2. RedisSentinel模式与集群模式有什么区别?3.连接池参数max-idle和min-idle设置成相同的值有什么优缺点?4.如何确保Redis密码的安全性?在配置文件中直接明文写入密码是否安全?</think>这段配置是 Spring Boot 应用中用于配置 Redis 客户端(特别是 Sentinel 模式)的属性设置。下面我将详细解释每个配置项的含义和作用: ### 配置项详解 #### 1. Redis 密码配置 ```properties spring.redis.password=SKIP(VoceOFZ4f@raNZ@cSJtfV9Zg) ``` - **作用**:设置连接到 Redis 服务器所需的密码 - **说明**: - `SKIP(...)` 可能是密码占位符或加密格式(实际使用时需替换为真实密码) - 在 Spring Boot 2.4+ 中,推荐使用 `spring.redis.password` 格式 - 如果不需要密码,可设置为空值 `spring.redis.password=` #### 2. Redis Sentinel 主节点配置 ```properties spring.redis.sentinel.master=acs_sentinel ``` - **作用**:指定 Sentinel 监控的主节点名称 - **说明**: - `acs_sentinel` 是 Sentinel 集群中定义的主节点名称 - 客户端通过此名称查找可用的主节点 #### 3. Redis Sentinel 节点配置 ```properties spring.redis.sentinel.nodes=55.11.162.174:26379,55.11.162.174:26380,55.11.162.174:26381 ``` - **作用**:配置 Sentinel 集群的节点地址 - **说明**: - 格式为 `IP:端口`,多个节点用逗号分隔 - 端口 `26379` 是 Sentinel 默认端口 - 客户端通过这些节点获取 Redis 主从拓扑信息 #### 4-7. 连接池配置(Jedis 实现) ```properties spring.redis.jedis.pool.max-idle=10 spring.redis.jedis.pool.min-idle=10 spring.redis.jedis.pool.max-wait=2000 spring.redis.jedis.pool.time-between-eviction-runs=60000 ``` | 配置项 | 作用 | 说明 | |--------|------|------| | `max-idle` | 最大空闲连接数 | 连接池中最多保持 10 个空闲连接 | | `min-idle` | 最小空闲连接数 | 连接池中至少保持 10 个空闲连接(避免频繁创建) | | `max-wait` | 最大等待时间 | 获取连接时最大等待 2000 毫秒(2秒) | | `time-between-eviction-runs` | 空闲连接检测间隔 | 每 60000 毫秒(1分钟)检测并回收空闲连接 | ### 配置对应的 Java 类 这些配置对应 Spring Boot 中的 `RedisProperties` 类: ```java @ConfigurationProperties(prefix = "spring.redis") public class RedisProperties { private String password; private Sentinel sentinel; private Jedis jedis; public static class Sentinel { private String master; private List<String> nodes; // getters/setters } public static class Jedis { private Pool pool; // getters/setters public static class Pool { private int maxIdle; private int minIdle; private long maxWait; private long timeBetweenEvictionRuns; // getters/setters } } } ``` ### 典型使用场景 ```java @RestController public class RedisController { @Autowired private RedisTemplate<String, Object> redisTemplate; @GetMapping("/cache") public String getCachedData() { ValueOperations<String, Object> ops = redisTemplate.opsForValue(); Object data = ops.get("cachedKey"); return data != null ? data.toString() : "No data"; } } ``` ### 配置验证方法 检查配置是否生效的代码示例: ```java @Component public class RedisConfigValidator implements ApplicationRunner { @Autowired private RedisConnectionFactory connectionFactory; @Override public void run(ApplicationArguments args) { try (RedisConnection connection = connectionFactory.getConnection()) { System.out.println("Redis连接成功!"); System.out.println("Ping响应: " + connection.ping()); } catch (Exception e) { System.err.println("Redis连接失败: " + e.getMessage()); } } } ``` ### 配置示意图 ```mermaid graph TD A[Spring Boot应用] --> B[Redis Sentinel集群] B --> C[主节点 Master] B --> D[从节点 Slave 1] B --> E[从节点 Slave 2] subgraph 配置详情 F[密码验证] --> G[Sentinel 发现] G --> H[连接池管理] end ``` ### 总结 此配置实现了: 1. 通过 Sentinel 实现 Redis 高可用 2. 使用密码进行安全认证 3. 配置连接池优化资源使用 4. 设置合理的连接超时和回收策略
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

木二_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值