云数据库 Redis 性能深度评测(阿里云、华为云、腾讯云、百度智能云)

news2025/1/17 1:05:18

在当今的云服务市场中,阿里云、腾讯云、华为云和百度智能云都是领先的云服务提供商,他们都提供了全套的云数据库服务,其中 Redis属于RDS 之后第二被广泛应用的服务,本次测试旨在深入比较这四家云服务巨头在Redis云数据库性能方面的表现,为企业在选择合适的云数据库时提供重要的参考依据。

我们将针对阿里云、腾讯云、华为云和百度智能云的 Redis 云数据库进行全方位的性能测试,包括读写性能、并发处理能力等方面的测试。通过这些测试,我们将对这四家云服务提供商的Redis云数据库进行客观、公正的比较,以便企业能够根据自身业务需求选择最适合的云数据库服务。

通过本次测试,我们希望为企业提供一份详实的报告,以便企业在选择Redis云数据库服务时能够做出明智的决策。同时,我们也希望通过本次测试推动云服务提供商在技术和服务方面不断创新和提升,为企业提供更加优质、高效的云服务。

 

测试结论

标准版评测详细数据和结论

详细数据

 

 

标准版对比总结:

  • 阿里云:整体性能排名第一,其中模型1中9/16个场景,模型3小Key读相关场景性能表现明显优于其它所有竞品

  • 百度智能云:全部29个场景中,9个场景排名第一,19个场景性能表现优于腾讯云与华为云;

  • 腾讯云:兼容Redis6.0,实际是1主1从3proxy部署架构,整体性能表现和华为差不多

  • 华为云:兼容Redis6.0, 1主1从部署,整体性能表现和腾讯差不多

我们把测试数据加权之后,标准版的整体排名:阿里云(1.262)>百度智能云(1.053)>腾讯云(0.644)>华为云(0.537)

 

集群版评测结论

详细数据

 

集群版本对比结论

  • 阿里云:在大key场景下性能退化严重,如hgetall、zrange、模型2、模型3涉及大key操作的场景性能打不上去

  • 百度智能云:各场景性能表现都比较好,没有明显性能短板

  • 腾讯云:在模型3-4KB以下场景性能均优于华为和百度

我们把测试数据加权之后,集群版本整体排名:华为云(1.328)>百度智能云(1.197)>腾讯云(1.124)>阿里云(0.373)

测试环境

厂商

云服务器1台

标准版8GB实例1台

集群版64GB实例1台

阿里云

Tair for Redis

规格族:计算型 c8y

实例规格:ecs.c8y.4xlarge

vCPU :16 vCPU

内存:32 GiB

处理器主频/睿频:2.75 GHz/-

内网带宽:最高 16 Gbps

付费模式:按量付费

商品类型:Tair for Redis

存储介质:内存

可用区类型:单可用区

实例类型:高可用

版本兼容性:Redis 6.0

架构类型:不启用集群

读写分离:关闭

分片规格:8GB

副本数:2副本

付费模式:按量付费

商品类型:Tair for Redis

存储介质:内存

可用区类型:单可用区

实例类型:高可用

版本兼容性:Redis 6.0

架构类型:启用集群

连接模式:代理模式

分片规格:8GB

副本数:2副本

分片数量:8

腾讯云

云数据库 Redis

规格族:计算型C6

实例规格:C6.4XLARGE32

vCPU :16 vCPU

内存:32 GiB

处理器主频/睿频:Intel Ice Lake(3.2GHz/3.5Ghz)

内网带宽:最高 18 Gbps

计费模式:按量付费

产品版本:内存版

兼容版本:6.2

架构版本:标准架构

内存容量:8GB

副本数量:1个(1主1副本)

计费模式:按量付费

产品版本:内存版

兼容版本:6.2

架构版本:集群架构

分片数量:8片

分片容量:8GB

副本数量:1个(1主1副本)

华为云

分布式缓存服务Redis版

规格族:通用计算增强型c6s

实例规格:c6s.4xlarge.2

vCPU :16 vCPU

内存:32 GiB

处理器主频/睿频:Intel Cascade Lake 2.6GHz

内网带宽:最高 7.5 Gbps

计费模式:按需计费

缓存类型:Redis

版本号:6.0

实例类型:主备

CPU架构:x86计算

副本数:2

实例规格:redis.ha.xu1.large.r2.8(8GB)

计费模式:按需计费

缓存类型:Redis

版本号:5.0

实例类型:Proxy集群

CPU架构:x86计算

规格选择模式:自定义分片

单分片容量:8GB

实例规格:redis.proxy.xu1.large.s8.64(64GB)

百度智能云云数据库 SCS

规格族:计算型C5

实例规格:bcc.c5.c16m32

vCPU :16 vCPU

内存:32 GiB

处理器主频/睿频:Intel Xeon Platinum 8350C-2.6GHz

内网带宽:最高 6 Gbps

计费模式:后付费

引擎类型: Redis

版本类型:社区版

架构类型:标准版

引擎版本:6.0

存储类型:高性能内存型

节点规格:cache.n1.large

副本数量: 2

计费模式:后付费

引擎类型: Redis

版本类型:企业版

架构类型:集群版

引擎版本:6.0

存储类型:高性能内存型

节点规格:cache.n1.large

分片数量:8片

副本数量: 2

测试工具

工具1:

压测工具:测试采用Redis Labs推出的多线程压测工具memtier_benchmark

使用方法:具体使用方法请参见 memtier_benchmark 虚机配置memtier-benchmark

使用到的测试选项:

./memtier_benchmark -s *** -a *** -p 8635 -c 4 -t 30 -n 1000000 --random-data --randomize --distinct-client-seed -d 128 --key-maximum=50331648 --key-minimum=1 --key-prefix= --ratio=1:0 --out-file=./result/result_small_128_set.log

工具2:

压测工具:开源Redis的redis-benchmark工具进行压测,它是Redis官方的性能测试工具

使用方法:为了确保工具支持--thread参数,测试时候使用最新的Redis版本进行编译,参见Redis开源项目

使用到的测试选项:

./src/redis-benchmark -h r-bp1s02ae14mr****.redis.rds.aliyuncs.com -p 6379 -a testaccount:Rp829dlwa -n 3000000 -r 10000000  -c 256 -t set -d 64 --threads 16

测试指标

  • OPS:每秒执行的读写操作数,单位为次/秒。

评测模型

测试模型1——基本数据结构KEY密集型测试

workload模型

workload模型编号

测试模型

参数设置

--command

Specify a command to send in quotes.

--command="${command}"

--test-time

Number of seconds to run the test

--test-time=300

数据模型

数据模型编号

数据模型

参数设置

value length-256

随机生成value,256字节

-d 256

测试模型2——KEY分散读写测试

workload模型

workload模型编号

测试模型

参数设置

100% Write

100%写操作(string set)

--ratio=1:0

100% Read

100%读操作(string get)

--ratio=0:1

50% Read+50% Write

50%读操作(string get)+ 50%写操作(string set)

--ratio=1:1

数据模型

数据模型编号

数据模型

参数设置

value length

随机生成value,数据大小在指定的范围之内

–data-size-range=1-10240

测试模型3——不同写入数据大小测试

workload模型

workload模型编号

测试模型

参数设置

-t

测试命令,包含SET, GET

-t "${command}"

-n

Total number of requests (default 100000)

-n 3000000

数据模型

数据模型编号

数据模型

参数设置

value length-256

value长度分别为16、128、256、1024、4096字节

-d ${value_length}

备注:模型3测试场景和工具参考阿里tair实例内存型(兼容Redis6.0)性能白皮书,需要使用redis-benchmark对SET、GET命令进行不同写入数据大小场景的测试,并给出测试指标。

测试方法

购买Redis实例,默认开启AOF和RDB,在云服务器上通过测试工具并发连接实例进行打压

模型1测试方法

固定参数:

bench_bin="memtier_benchmark"
thread=50
client=20
host="192.168.96.31"
port=6379
password="1234qwer"
data_size=256
test_time=300
key_maximum=300
key_prefix=""
command=$1
file=$2
start_time=$(date | awk '{print$4}')

echo "${bench_bin} -t ${thread} -c ${client} -s ${host} -p ${port} -a ${password} --distinct-client-seed --command="${command}"  --key-prefix="${key_prefix}" --key-minimum=1 --key-maximum=${key_maximum} --random-data --data-size=${data_size} --test-time=${test_time}  --out-file=out/${file}"

${bench_bin} -t ${thread} -c ${client} -s ${host} -p ${port} -a ${password} --distinct-client-seed --command="${command}"  --key-prefix="${key_prefix}" --key-minimum=1 --key-maximum=${key_maximum} --random-data --data-size=${data_size} --test-time=${test_time}  --out-file=out/${file}

end_time=$(date|awk '{print$4}')

echo "${command}  start: ${start_time}  end: ${end_time}" >> run.log

压测命令:

sh press.sh "set __key__ __data__"  set
sh press.sh "get __key__" get 
sh press.sh "del __key__" del 
sh press.sh "hset __key__ __key__ __data__"  hset
sh press.sh "hmset __key__ __key__ __data__ __key__ __data__ __key__ __data__" hmset
sh press.sh "hget __key__ __key__" hget
sh press.sh "hmget __key__ __key__ __key__" hmget
sh press.sh "hgetall __key__" hgetall
sh press.sh "hdel __key__ __key__" hdel
sh press.sh "zadd __key__  __key__  __data__" zadd
sh press.sh "zcard __key__"  zcard
sh press.sh "zcount __key__ 1 __key__" zcount       
sh press.sh "ZRANGE __key__ 0  __key__ WITHSCORES" zrange
sh press.sh "zrank __key__ __data__" zrank
sh press.sh "zscore __key__ __data__"  zscore
sh press.sh "zrem __key__ __key__" zrem

模型2测试方法

以8GB标准版为例,模型的性能指标的测试方法如下所示:

希望本次的测试可以给大家提供选型参考。当能云厂商更新也很快,性能上也是你追我赶,后面我们会持续关注各个云厂商的性能变化,动态更新测试结果。

欢迎大家访问百度智能云

  • 测试场景1:100% Write模型通过执行如下命令,设置value长度为1-10240字节内的随机大小,记录性能指标。

  • 测试场景2:100% Read模型通过执行如下命令,在写入的数据中均匀随机读取长度为1-10240字节的数据,记录性能指标。

  • 测试场景3:50% Read+50% Write模型通过执行如下命令,记录性能指标。

  • host=$1
    port=$2
    passwd=$3
    
    max_key=500000
    
    start_time=$(date | awk '{print$4}')
    ./memtier_benchmark -s ${host} -a ${passwd} -p ${port} -c 20 -t 50 --random-data --randomize --distinct-client-seed --data-size-range=1-10240 --key-maximum=${max_key} --key-minimum=1 --key-prefix= --ratio=1:0 --test-time=300 --out-file=out/${host}_${port}_set.log
    end_time=$(date|awk '{print$4}')
    
    echo "100% write  start: ${start_time}  end: ${end_time}" >> run.log
    
    start_time=$(date | awk '{print$4}')
    ./memtier_benchmark -s ${host} -a ${passwd} -p ${port}  -c 20 -t 50 --random-data --randomize --distinct-client-seed  --data-size-range=1-10240  --key-maximum=${max_key} --key-minimum=1 --key-prefix= --ratio=0:1 --test-time=300 --out-file=out/${host}_${port}_get.log
    end_time=$(date|awk '{print$4}')
    echo "100% read  start: ${start_time}  end: ${end_time}" >> run.log
    
    start_time=$(date | awk '{print$4}')
    ./memtier_benchmark -s ${host} -a ${passwd} -p ${port} -c 20 -t 50 --random-data --randomize --distinct-client-seed --data-size-range=1-10240  --key-maximum=${max_key} --key-minimum=1 --key-prefix= --ratio=1:1 --test-time=300 --out-file=out/${host}_${port}_set_get.log
    end_time=$(date|awk '{print$4}')
    echo "50% write + 50% read  start: ${start_time}  end: ${end_time}" >> run.log

    模型3测试方法

    使用开源的redis-benchmark工具进行压测,它是Redis官方的性能测试工具,为确保redis-benchmark工具支持--threads参数,测试时推荐使用最新的Redis版本进行编译。

    压测命令:

  • host=$1
    port=$2
    passwd=$3
    key_range=1000000
    #16
    echo "before 16: redis-cli -h ${host} -p ${port} -a ${passwd}  flushall"
    redis-cli -h ${host} -p ${port} -a ${passwd}  flushall
    sleep 10
    
    start_time=$(date | awk '{print$4}')
    ./redis-benchmark -h ${host} -p ${port} -a ${passwd} -n 3000000 -r ${key_range}  -c 256 -t set -d 16 --threads 16 > out/16_set
    end_time=$(date|awk '{print$4}')
    echo "16 bytes_SET  start: ${start_time}  end: ${end_time}" >> run.log
    
    start_time=$(date | awk '{print$4}')
    ./redis-benchmark -h ${host} -p ${port} -a ${passwd} -n 3000000 -r ${key_range}  -c 256 -t get -d 16 --threads 16  > out/16_get
    end_time=$(date|awk '{print$4}')
    echo "16 bytes_GET  start: ${start_time}  end: ${end_time}" >> run.log
    
    #128
    echo "before 128: redis-cli -h ${host} -p ${port} -a ${passwd}  flushall"
    redis-cli -h ${host} -p ${port} -a ${passwd}  flushall
    sleep 10
    
    start_time=$(date | awk '{print$4}')
    ./redis-benchmark -h ${host} -p ${port} -a ${passwd} -n 3000000 -r ${key_range}  -c 256 -t set -d 128 --threads 16  > out/128_set
    end_time=$(date|awk '{print$4}')
    echo "128 bytes_SET  start: ${start_time}  end: ${end_time}" >> run.log
    
    start_time=$(date | awk '{print$4}')
    ./redis-benchmark -h ${host} -p ${port} -a ${passwd} -n 3000000 -r ${key_range}  -c 256 -t get -d 128 --threads 16  > out/128_get
    end_time=$(date|awk '{print$4}')
    echo "128 bytes_GET  start: ${start_time}  end: ${end_time}" >> run.log
    
    #256
    echo "before 256: redis-cli -h ${host} -p ${port} -a ${passwd}  flushall"
    redis-cli -h ${host} -p ${port} -a ${passwd}  flushall
    sleep 10
    
    start_time=$(date | awk '{print$4}')
    ./redis-benchmark -h ${host} -p ${port} -a ${passwd} -n 3000000 -r ${key_range}  -c 256 -t set -d 256 --threads 16  > out/256_set
    end_time=$(date|awk '{print$4}')
    echo "256 bytes_SET  start: ${start_time}  end: ${end_time}" >> run.log
    
    start_time=$(date | awk '{print$4}')
    ./redis-benchmark -h ${host} -p ${port} -a ${passwd} -n 3000000 -r ${key_range}  -c 256 -t get -d 256 --threads 16  > out/256_get
    end_time=$(date|awk '{print$4}')
    echo "256 bytes_GET  start: ${start_time}  end: ${end_time}" >> run.log
    
    #1024
    echo "before 1024: redis-cli -h ${host} -p ${port} -a ${passwd}  flushall"
    redis-cli -h ${host} -p ${port} -a ${passwd}  flushall
    sleep 10
    
    start_time=$(date | awk '{print$4}')
    ./redis-benchmark -h ${host} -p ${port} -a ${passwd} -n 3000000 -r ${key_range}  -c 256 -t set -d 1024 --threads 16  > out/1024_set
    end_time=$(date|awk '{print$4}')
    echo "1024 bytes_SET  start: ${start_time}  end: ${end_time}" >> run.log
    
    start_time=$(date | awk '{print$4}')
    ./redis-benchmark -h ${host} -p ${port} -a ${passwd} -n 3000000 -r ${key_range}  -c 256 -t get -d 1024 --threads 16  > out/1024_get
    end_time=$(date|awk '{print$4}')
    echo "1024 bytes_GET  start: ${start_time}  end: ${end_time}" >> run.log
    
    #4096
    echo "before 4096: redis-cli -h ${host} -p ${port} -a ${passwd}  flushall"
    redis-cli -h ${host} -p ${port} -a ${passwd}  flushall
    sleep 10
    
    start_time=$(date | awk '{print$4}')
    ./redis-benchmark -h ${host} -p ${port} -a ${passwd} -n 3000000 -r ${key_range}  -c 256 -t set -d 4096 --threads 16  > out/4096_set
    end_time=$(date|awk '{print$4}')
    echo "4096 bytes_SET  start: ${start_time}  end: ${end_time}" >> run.log
    
    start_time=$(date | awk '{print$4}')
    ./redis-benchmark -h ${host} -p ${port} -a ${passwd} -n 3000000 -r ${key_range}  -c 256 -t get -d 4096 --threads 16  > out/4096_get
    end_time=$(date|awk '{print$4}')
    echo "4096 bytes_GET  start: ${start_time}  end: ${end_time}" >> run.log

    总体结论和分析

    综合性能排名:百度智能云>腾讯云>华为云>阿里云

  • 百度智能云标准版本和集群版本都排名第二,综合性能表现优于所有竞品,总体第一名,腾讯综合排名第二;

  • 通过测试我们发现阿里和华为长板特长,短板也特短,尤其是阿里云大key场景存在性能问题,尤其集群版拉低整体评分,排名第四

  • 华为排名第三。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1458710.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2024-02-19(Flume,DataX)

1.flume中拦截器的作用:个人认为就是修改或者删除事件中的信息(处理一下事件)。 2.一些拦截器 Host Interceptor,Timestamp Interceptor,Static Interceptor,UUID Interceptor,Search and Rep…

C# OpenCvSharp DNN Image Retouching

目录 介绍 模型 项目 效果 代码 下载 C# OpenCvSharp DNN Image Retouching 介绍 github地址:https://github.com/hejingwenhejingwen/CSRNet (ECCV 2020) Conditional Sequential Modulation for Efficient Global Image Retouching 模型 Model Properti…

steam搬砖项目真的假的,2024年到底还能不能做?

2024年steam搬砖项目到底还能不能做,很多小伙伴比较关注国外steam搬砖项目,那steam搬砖到底需要什么东西就可以启动?它被很多人吹得天花乱坠,神神秘秘,高深莫测。甚至还有人说steam搬砖需要特定的环境和国外手机。 st…

【PX4-AutoPilot教程-TIPS】PX4控制无人机在Gazebo中飞行时由于视角跟随无人机在画面中心导致视角乱晃的解决方法

PX4控制无人机在Gazebo中飞行时由于视角跟随无人机在画面中心导致视角乱晃的解决方法 问题描述解决方法 问题描述 无人机在Gazebo中飞行时,无人机始终处于画面中央,会带着视角乱晃,在Gazebo中进行任何操作视角都无法固定。 观察Gazebo左侧Wo…

学习如何在js中指定按照数组中某一个值排序sort方法

学习如何在js中指定按照数组中某一个值排序sort方法 定义和用法排序数组按升序对数组中的数字进行排序按降序对数组中的数字进行排序获取数组中的最小值获取数组中的最大值获取数组中的最大值按字母顺序对数组进行排序,然后反转排序项的顺序(降序&#x…

植隆业务中台和金蝶云星空单据接口对接

植隆业务中台和金蝶云星空单据接口对接 源系统:金蝶云星空 金蝶K/3Cloud在总结百万家客户管理最佳实践的基础上,提供了标准的管理模式;通过标准的业务架构:多会计准则、多币别、多地点、多组织、多税制应用框架等,有效支持企业的运…

LeetCode 热题 100 | 二叉树(中下)

目录 1 基础知识 1.1 队列 queue 1.2 栈 stack 1.3 常用数据结构 1.4 排序 2 98. 验证二叉搜索树 3 230. 二叉搜索树中第 K 小的元素 4 199. 二叉树的右视图 菜鸟做题忘了第几周&#xff0c;躺平过了个年TT 1 基础知识 1.1 队列 queue queue<type> q…

Avalonia 初学笔记(1):环境配置

文章目录 相关链接前言Avalonia 官方文档Avalonia 环境配置我的本地环境下载Visual Studio Avalonia 插件 Avalonia 新建项目平台选择新建项目平台选择设计器选择扩展选择最终选择 默认项目运行 Avalonia 官方Demo总结 相关链接 Avalonia学习笔记 CSDN博客专栏 前言 最近想了解…

DAY55:动态规划(买卖股票的最佳时机3)

Leetcode: 309 最佳买卖股票时机含冷冻期 这道题比上面状态更多&#xff0c;是因为卖出股票后&#xff0c;你无法在第二天买入股票 (即冷冻期为1天)。 状态 状态一&#xff1a;持有股票状态&#xff08;今天买入股票&#xff0c;或者是之前就买入了股票然后没有操作&#xf…

SQL查询转化为 Elasticsearch 查询

使用SQL 转化为查询 Elasticsearch 支持 sql 语句转化为 elasticsearch 的 查询语句 第一步&#xff1a; 打开在线转换工具的网页&#xff0c;进入工具页面 第二步&#xff1a;在指定的输入框中输入需要转换的 sql 语句。 您学会了这么简单的办法

什么是 Wake-on-LAN?如何使用 Splashtop 远程喊醒电脑

在当今数字互联的世界里&#xff0c;远程访问电脑已不仅仅是一种便利&#xff0c;而是许多人的需要。无论是远程工作、IT 支持&#xff0c;还是管理整个网络中的计算机群&#xff0c;我们都必须掌握正确的工具和技术。 其中一项在远程访问中发挥关键作用的技术是 Wake-on-LAN …

AI:133-基于深度学习的工业质检自动化

🚀点击这里跳转到本专栏,可查阅专栏顶置最新的指南宝典~ 🎉🎊🎉 你的技术旅程将在这里启航! 从基础到实践,深入学习。无论你是初学者还是经验丰富的老手,对于本专栏案例和项目实践都有参考学习意义。 ✨✨✨ 每一个案例都附带有在本地跑过的关键代码,详细讲解供…

大数据信用报告查询方式一般有几种?哪种比较好?

在了解这个问题之前&#xff0c;想必你对大数据信用与人行信用的区别都是比较清楚了&#xff0c;本文呢就着重讲一下大数据信用报告查询方式有几种&#xff0c;哪种比较好&#xff0c;感兴趣的朋友不妨一起去看看。 大数据信用报告常见的三种查询方式&#xff1a; 一、二维码分…

SG-8201CJA(汽车可编程晶体振荡器)

爱普生的SG-8021CJA是一款符合AEC-Q100标准的晶体振荡器&#xff0c;专为要求苛刻的汽车/ADAS应用&#xff08;如激光雷达和相机ECU&#xff09;而设计。它采用爱普生的内部低噪声小数NPLL&#xff0c;输出 频率高达170MHz&#xff0c;相位抖动小于1/25&#xff0c;稳定性比之前…

SpringBoot+WebSocket实现即时通讯(二)

前言 紧接着上文《SpringBootWebSocket实现即时通讯&#xff08;一&#xff09;》 本博客姊妹篇 SpringBootWebSocket实现即时通讯&#xff08;一&#xff09;SpringBootWebSocket实现即时通讯&#xff08;二&#xff09;SpringBootWebSocket实现即时通讯&#xff08;三&…

【教3妹学编程-算法题】相同分数的最大操作数目 II

3妹&#xff1a;2哥&#xff0c;干嘛呢&#xff0c;怎么又在吃泡面 2哥 : 这不是过年下血本&#xff0c;给小侄子买了一个ps5吗&#xff0c; 哎&#xff0c;我自己都舍不得用&#xff0c;不能让人说咱小气不是。 3妹&#xff1a;神马&#xff0c;他才6岁吧&#xff0c; 就这么喜…

【4.1计算机网络】TCP-IP协议簇

目录 1.OSI七层模型2.常见协议及默认端口3.TCP与UDP的区别 1.OSI七层模型 osi七层模型&#xff1a; 1.应用层 2.表示层 3.会话层 4.传输层&#xff1a;TCP为可靠的传输层协议。 5.网络层 6.数据链路层 7.物理层 2.常见协议及默认端口 3.TCP与UDP的区别 例题1. 解析&#xff1…

APISIX 可观测性最佳实践

APISIX 介绍 Apache APISIX 是一个动态、实时、高性能的云原生 API 网关。它构建于 NGINX ngx_lua 的技术基础之上&#xff0c;充分利用了 LuaJIT 所提供的强大性能。 APISIX 主要分为两个部分&#xff1a; APISIX 核心&#xff1a;包括 Lua 插件、多语言插件运行时&#x…

2024年适合小白的副业—steam搬砖项目

对于普通人&#xff0c;找一个常年稳定&#xff0c;有个人全程带的项目难能可贵&#xff01; 别去想快速路&#xff0c;别去想挂机&#xff0c;作弊、别去想躺赚&#xff0c;否则最后又是竹篮打水一场空&#xff01;&#xff01; 普通人也可以靠steam搬砖项目这个翻身&#xf…

Net2FTP网站搭建并结合内网穿透实现远程访问本地个人文件

文章目录 1.前言2. Net2FTP网站搭建2.1. Net2FTP下载和安装2.2. Net2FTP网页测试 3. cpolar内网穿透3.1.Cpolar云端设置3.2.Cpolar本地设置 4.公网访问测试5.结语 1.前言 文件传输可以说是互联网最主要的应用之一&#xff0c;特别是智能设备的大面积使用&#xff0c;无论是个人…