Redis【性能 01】Redis 5.x 6.x 7.x 共5个不同版本延迟及性能测试对比分析(单机版默认配置)

news2024/9/24 19:21:27

延迟及性能测试比对分析过程

    • 1.环境说明
    • 2.测试结果
        • Version 5.0.3【待优化版本】
        • Version 5.0.7【云服务器使用的版本】
        • Version 5.0.14【5.x最终版】
        • Version 6.2.12【6.x最终版】
        • Version 7.2-rc1【当前最新的发布候选版】
    • 3.汇总分析
      • 3.1 延迟测试结果汇总
      • 3.1 性能测试结果汇总
    • 4.其他参数

1.环境说明

使用的是腾讯的云服务器1核心2G内存50G存储的乞丐版,系统信息如下:

[root@tcloud ~]# rpm -qi centos-release
Name        : centos-release
Version     : 7
Release     : 9.2009.1.el7.centos
Architecture: x86_64
Install Date: Tue 19 Jan 2021 06:23:16 PM CST
Group       : System Environment/Base
Size        : 44787
License     : GPLv2
Signature   : RSA/SHA256, Thu 03 Dec 2020 12:35:28 AM CST, Key ID 24c6a8a7f4a80eb5
Source RPM  : centos-release-7-9.2009.1.el7.centos.src.rpm
Build Date  : Mon 23 Nov 2020 11:08:41 PM CST
Build Host  : x86-01.bsys.centos.org
Relocations : (not relocatable)
Packager    : CentOS BuildSystem <http://bugs.centos.org>
Vendor      : CentOS
Summary     : CentOS Linux release file
Description :
CentOS Linux release files

全部版本下载地址https://download.redis.io/releases/,Redis安装配置:

# 0.卸载
rm -rf /usr/local/redis

# 1.安装依赖否则报错【/bin/sh: cc: 未找到命令】
yum install gcc-c++ -y

# 2.解压文件
tar -zvxf redis-{版本号}.tar.gz

# 3.移动文件
mv ./redis-{版本号} /usr/local/redis-{版本号}

# 4.编译
cd /usr/local/redis-{版本号}/
make

# 5.安装
make PREFIX=/usr/local/redis-{版本号} install
# 如不添加PREFIX指定安装文件夹Linux会将可执行文件存放在/usr/local/bin、库文件会存放在/usr/local/lib、配置文件会存放在/usr/local/etc,其他的资源文件会存放在usr/local/share目录,不便于清理,指定安装文件夹后,使用 rm -rf /usr/local/redis 即可清除 Redis。

# 6.配置【保持默认】
vim /usr/local/redis-{版本号}/redis.conf
	# 后台启动
	daemonize yes

# 7.启动
./bin/redis-server ./redis.conf
# 测试使用默认分配器。
# redis内存管理方式:支持tcmalloc、jemalloc、malloc三种内存分配。
# 可使用 info Memory 命令查询碎片信息。

make MALLOC=jemalloc
# MALLOC 选项是用于指定使用的内存分配库。该选项可以指定链接器使用指定的内存分配库,从而将程序编译成使用指定库的可执行文件。
# MALLOC=jemalloc 指定链接器使用 jemalloc 库中的 malloc 函数来代替标准的 malloc 函数,以获得更好的性能。这对于一些需要更高内存效率和更低内存碎片的应用程序非常有用,已内置是Redis的默认选项。
# MALLOC=tcmalloc 指定链接器使用 tcmalloc 库中的 malloc 函数来代替标准的 malloc 函数,使用时需要安装。
# MALLOC=libc 指定链接器使用 GNU C 库中包含的 malloc 函数作为程序的默认内存分配函数,使用时需要安装。

为控制尽可能的控制变量,不同版本的Redis测试前重启服务器,测试命令为:

# 1.查看内存分配器的版本 info memory

# 2.延迟测试
./bin/redis-cli --intrinsic-latency 10
# 表示到目前为止最慢的一次运行的延迟是6890微秒。
Max latency so far: 6890 microseconds.
# 表示总共运行了151480390次,平均延迟为0.0660微秒/每次,即66.02纳秒/每次。
151480390 total runs (avg latency: 0.0660 microseconds / 66.02 nanoseconds per run).
# 表示最慢的一次运行比平均延迟慢了104370倍。
Worst run took 104370x longer than the average latency.

# 3.性能测试【测试三轮使用平均值】
./bin/redis-benchmark -q

2.测试结果

  1. 关于结果中的 PING_MBULK 和 PING_BULK

在 Redis 中,PING_MBULK 和 PING_BULK 都是用来测试与 Redis 服务器之间的连接是否正常的命令。但是,它们使用的协议和返回结果格式略有不同。

PING_MBULK 命令使用多个参数的批量请求(multi-bulk request)协议,它将一个字符串数组作为参数发送到 Redis 服务器,服务器返回对应的字符串数组作为响应。如果服务器正常运行,它将返回 “PONG” 字符串作为响应,而且需要注意的是,这个字符串响应可能包含在数组中。因此,PING_MBULK 请求发送到 Redis 服务器时,它的第一个参数应该是数组的长度,后面跟随着每个参数。例如,PING_MBULK 2 hello world 命令将发送一个长度为 2 的数组,包含字符串 “hello” 和 “world” 作为参数,并返回一个长度为 2 的数组,包含响应字符串 “PONG”。

PING_BULK 命令使用单个参数的批量请求(bulk request)协议,它将一个字符串作为参数发送到 Redis 服务器,服务器也将返回对应的字符串作为响应。PING_BULK 命令和 PING_MBULK 命令的唯一区别是参数格式的不同。PING_BULK 命令只需要一个字符串参数,例如 PING_BULK hello 命令将发送字符串 “hello” 作为参数,并且返回相同的字符串 “hello” 作为响应。

因此,虽然 PING_MBULK 和 PING_BULK 命令都可以用来测试连接是否正常,但是它们使用的协议和返回结果格式是不同的。如果你希望发送多个参数,可以使用 PING_MBULK 命令;如果你只需要一个参数,则可以使用 PING_BULK 命令。

我们暂且将其当作相同的。

  1. 关于性能测试结果数据

性能测试结果为了简洁清晰,去掉了单位requests per second和6.x\7.x的

  1. 图表说明

柱状图为了展示稳定性,折线图为了比对性能。

Version 5.0.3【待优化版本】

  • 内存分配器版本 mem_allocator:jemalloc-5.1.0
  • 延迟测试结果
# 1
150584708 total runs (avg latency: 0.0664 microseconds / 66.41 nanoseconds per run).
Worst run took 93393x longer than the average latency.
# 2
151425412 total runs (avg latency: 0.0660 microseconds / 66.04 nanoseconds per run).
Worst run took 121928x longer than the average latency.
# 3
151173847 total runs (avg latency: 0.0661 microseconds / 66.15 nanoseconds per run).
Worst run took 121453x longer than the average latency.
  • 性能测试结果
# 1
PING_INLINE: 63734.86
PING_BULK: 64641.24
SET: 63451.78
GET: 62421.97
INCR: 60496.07
LPUSH: 59916.12
RPUSH: 63051.70
LPOP: 62500.00
RPOP: 62227.75
SADD: 63532.40
HSET: 60938.45
SPOP: 64184.86
LPUSH (needed to benchmark LRANGE): 62111.80
LRANGE_100 (first 100 elements): 34590.11
LRANGE_300 (first 300 elements): 15938.79
LRANGE_500 (first 450 elements): 11619.80
LRANGE_600 (first 600 elements): 9228.50
MSET (10 keys): 54288.82
# 2
PING_INLINE: 63897.76
PING_BULK: 63613.23
SET: 60938.45
GET: 61500.61
INCR: 63734.86
LPUSH: 60459.49
RPUSH: 62695.92
LPOP: 60459.49
RPOP: 60642.81
SADD: 63211.12
HSET: 62500.00
SPOP: 64391.50
LPUSH (needed to benchmark LRANGE): 61842.92
LRANGE_100 (first 100 elements): 33692.72
LRANGE_300 (first 300 elements): 16147.26
LRANGE_500 (first 450 elements): 11687.71
LRANGE_600 (first 600 elements): 9188.64
MSET (10 keys): 54914.88
# 3
PING_INLINE: 61690.31
PING_BULK: 65316.79
SET: 62460.96
GET: 64474.53
INCR: 63938.62
LPUSH: 62266.50
RPUSH: 60569.35
LPOP: 59952.04
RPOP: 62853.55
SADD: 63011.97
HSET: 62853.55
SPOP: 63451.78
LPUSH (needed to benchmark LRANGE): 60459.49
LRANGE_100 (first 100 elements): 34602.07
LRANGE_300 (first 300 elements): 16155.09
LRANGE_500 (first 450 elements): 11665.89
LRANGE_600 (first 600 elements): 9236.17
MSET (10 keys): 53447.35

在这里插入图片描述

Version 5.0.7【云服务器使用的版本】

  • 内存分配器版本 mem_allocator:jemalloc-5.1.0
  • 延迟测试结果
# 1
150104030 total runs (avg latency: 0.0666 microseconds / 66.62 nanoseconds per run).
Worst run took 103602x longer than the average latency.
# 2
150460074 total runs (avg latency: 0.0665 microseconds / 66.46 nanoseconds per run).
Worst run took 159969x longer than the average latency.
# 3
149924658 total runs (avg latency: 0.0667 microseconds / 66.70 nanoseconds per run).
Worst run took 236686x longer than the average latency.
  • 性能测试结果
# 1
PING_INLINE: 61349.70                                                    
PING_BULK: 62656.64                                                    
SET: 61881.19                                                    
GET: 63091.48                                                    
INCR: 62150.41                                                    
LPUSH: 61199.51                                                    
RPUSH: 60132.29                                                    
LPOP: 60422.96                                                    
RPOP: 59523.81                                                    
SADD: 63331.22                                                    
HSET: 61614.29                                                    
SPOP: 64143.68                                                    
LPUSH (needed to benchmark LRANGE): 57603.69                                                    
LRANGE_100 (first 100 elements): 33658.70                                                    
LRANGE_300 (first 300 elements): 16350.56                                                    
LRANGE_500 (first 450 elements): 11745.36                                                    
LRANGE_600 (first 600 elements): 9299.73                                                    
MSET (10 keys): 52603.89                                                    
# 2
PING_INLINE: 62735.26                                                    
PING_BULK: 63091.48                                                    
SET: 61728.39                                                    
GET: 63371.36                                                    
INCR: 62893.08                                                    
LPUSH: 59701.50                                                    
RPUSH: 61050.06                                                    
LPOP: 61387.36                                                    
RPOP: 61804.70                                                    
SADD: 62421.97                                                    
HSET: 61387.36                                                    
SPOP: 61199.51                                                    
LPUSH (needed to benchmark LRANGE): 60496.07                                                    
LRANGE_100 (first 100 elements): 34376.07                                                    
LRANGE_300 (first 300 elements): 16144.66                                                    
LRANGE_500 (first 450 elements): 11893.43                                                    
LRANGE_600 (first 600 elements): 9187.80                                                    
MSET (10 keys): 51813.47                                                    
# 3
PING_INLINE: 60277.27                                                    
PING_BULK: 61199.51                                                    
SET: 62853.55                                                    
GET: 63492.06                                                    
INCR: 63131.31                                                    
LPUSH: 60827.25                                                    
RPUSH: 60679.61                                                    
LPOP: 61425.06                                                    
RPOP: 62539.09                                                    
SADD: 63331.22                                                    
HSET: 61766.52                                                    
SPOP: 64143.68                                                    
LPUSH (needed to benchmark LRANGE): 60716.46                                                    
LRANGE_100 (first 100 elements): 34387.89                                                    
LRANGE_300 (first 300 elements): 16441.96                                                    
LRANGE_500 (first 450 elements): 11851.15                                                    
LRANGE_600 (first 600 elements): 9350.16                                                    
MSET (10 keys): 53475.94                                                    

在这里插入图片描述

Version 5.0.14【5.x最终版】

  • 内存分配器版本 mem_allocator:jemalloc-5.1.0
  • 延迟测试结果
# 1
151427848 total runs (avg latency: 0.0660 microseconds / 66.04 nanoseconds per run).
Worst run took 86041x longer than the average latency.
# 2
151490061 total runs (avg latency: 0.0660 microseconds / 66.01 nanoseconds per run).
Worst run took 98196x longer than the average latency.
# 3
145840102 total runs (avg latency: 0.0686 microseconds / 68.57 nanoseconds per run).
Worst run took 349797x longer than the average latency.
  • 性能测试结果
# 1
PING_INLINE: 60901.34      
PING_BULK: 62227.75      
SET: 63011.97      
GET: 63572.79      
INCR: 64102.57      
LPUSH: 60240.96      
RPUSH: 61387.36      
LPOP: 61690.31      
RPOP: 63211.12      
SADD: 63775.51      
HSET: 61804.70      
SPOP: 64599.48      
LPUSH (needed to benchmark LRANGE): 60024.01      
LRANGE_100 (first 100 elements): 34818.94      
LRANGE_300 (first 300 elements): 16423.06      
LRANGE_500 (first 450 elements): 11877.90      
LRANGE_600 (first 600 elements): 9272.14      
MSET (10 keys): 52164.84      
# 2
PING_INLINE: 63131.31      
PING_BULK: 63897.76      
SET: 61728.39      
GET: 63331.22      
INCR: 64061.50      
LPUSH: 62344.14      
RPUSH: 62617.41      
LPOP: 62656.64      
RPOP: 62735.26      
SADD: 61425.06      
HSET: 62972.29      
SPOP: 64935.07      
LPUSH (needed to benchmark LRANGE): 62500.00      
LRANGE_100 (first 100 elements): 35273.37      
LRANGE_300 (first 300 elements): 16134.24      
LRANGE_500 (first 450 elements): 11917.53      
LRANGE_600 (first 600 elements): 9272.14      
MSET (10 keys): 54644.81      
# 3
PING_INLINE: 61500.61      
PING_BULK: 64143.68      
SET: 63131.31      
GET: 63979.53
INCR: 63451.78      
LPUSH: 62150.41      
RPUSH: 61652.28      
LPOP: 60350.03      
RPOP: 63051.70      
SADD: 63816.21      
HSET: 61842.92      
SPOP: 64599.48      
LPUSH (needed to benchmark LRANGE): 61804.70      
LRANGE_100 (first 100 elements): 33967.39      
LRANGE_300 (first 300 elements): 16315.88      
LRANGE_500 (first 450 elements): 11687.71      
LRANGE_600 (first 600 elements): 9197.09      
MSET (10 keys): 53966.54      

在这里插入图片描述

Version 6.2.12【6.x最终版】

  • 内存分配器版本 mem_allocator:jemalloc-5.1.0
  • 延迟测试结果
# 1
150688768 total runs (avg latency: 0.0664 microseconds / 66.36 nanoseconds per run).
Worst run took 108059x longer than the average latency.
# 2
150739896 total runs (avg latency: 0.0663 microseconds / 66.34 nanoseconds per run).
Worst run took 94966x longer than the average latency.
# 3
151686617 total runs (avg latency: 0.0659 microseconds / 65.93 nanoseconds per run).
Worst run took 88433x longer than the average latency.
  • 性能测试结果【比5.x的多了ZADD、ZPOPMIN,汇总时不比对这几项】
# 1
PING_INLINE: 62617.41                                      
PING_MBULK: 63816.21                                       
SET: 60496.07
GET: 63051.70
INCR: 63291.14 
LPUSH: 60975.61
RPUSH: 61957.87
LPOP: 60532.69 
RPOP: 60024.01 
SADD: 63451.78 
HSET: 61804.70 
SPOP: 63371.36 
ZADD: 61312.08 
ZPOPMIN: 63251.11                                          
LPUSH (needed to benchmark LRANGE): 59701.50               
LRANGE_100 (first 100 elements): 34199.73                  
LRANGE_300 (first 300 elements): 15989.77                  
LRANGE_500 (first 500 elements): 10660.98                  
LRANGE_600 (first 600 elements): 9031.79                   
MSET (10 keys): 51759.83                                   
# 2
PING_INLINE: 61312.08                                      
PING_MBULK: 63694.27                                       
SET: 61124.69
GET: 60679.61
INCR: 62774.64 
LPUSH: 61050.06
RPUSH: 60496.07
LPOP: 60975.61 
RPOP: 62227.75 
SADD: 63171.20 
HSET: 61804.70 
SPOP: 63979.53 
ZADD: 57736.72 
ZPOPMIN: 62972.29                                          
LPUSH (needed to benchmark LRANGE): 60096.15               
LRANGE_100 (first 100 elements): 34013.61                  
LRANGE_300 (first 300 elements): 15676.44                  
LRANGE_500 (first 500 elements): 10571.94                  
LRANGE_600 (first 600 elements): 9108.30                   
MSET (10 keys): 54288.82                                   
# 3
PING_INLINE: 62695.92                                      
PING_MBULK: 61199.51                                       
SET: 62111.80
GET: 63131.31
INCR: 63532.40 
LPUSH: 60864.27
RPUSH: 61804.70
LPOP: 59880.24 
RPOP: 60422.96 
SADD: 62972.29 
HSET: 62227.75 
SPOP: 63211.12 
ZADD: 61500.61 
ZPOPMIN: 63051.70                                          
LPUSH (needed to benchmark LRANGE): 58651.02               
LRANGE_100 (first 100 elements): 33355.57                  
LRANGE_300 (first 300 elements): 15770.38                  
LRANGE_500 (first 500 elements): 10511.93                  
LRANGE_600 (first 600 elements): 9005.76                   
MSET (10 keys): 53937.43

在这里插入图片描述

Version 7.2-rc1【当前最新的发布候选版】

使用redis-cli -v实际显示的版本为redis-cli 7.1.240

  • 内存分配器版本 mem_allocator:jemalloc-5.2.1【有所升级】
  • 延迟测试结果
# 1
145147429 total runs (avg latency: 0.0689 microseconds / 68.90 nanoseconds per run).
Worst run took 110893x longer than the average latency.
# 2
144972616 total runs (avg latency: 0.0690 microseconds / 68.98 nanoseconds per run).
Worst run took 142175x longer than the average latency.
# 3
143717969 total runs (avg latency: 0.0696 microseconds / 69.58 nanoseconds per run).
Worst run took 323797x longer than the average latency.
  • 性能测试结果【比5.x的多了ZADD、ZPOPMIN、XADD,汇总时不比对这几项】
# 1
PING_INLINE: 59276.82                          
PING_MBULK: 60642.81                           
SET: 56657.22
GET: 57537.40
INCR: 56593.10
LPUSH: 56721.50                                
RPUSH: 57142.86                                
LPOP: 55524.71
RPOP: 57045.07
SADD: 57770.08
HSET: 55096.42
SPOP: 59453.03
ZADD: 57110.22
ZPOPMIN: 58788.95                              
LPUSH (needed to benchmark LRANGE): 56850.48   
LRANGE_100 (first 100 elements): 24863.25      
LRANGE_300 (first 300 elements): 10794.47      
LRANGE_500 (first 500 elements): 7001.82       
LRANGE_600 (first 600 elements): 5853.09       
MSET (10 keys): 42716.79                       
XADD: 51652.89
# 2
PING_INLINE: 59311.98                          
PING_MBULK: 60864.27                           
SET: 54945.05
GET: 58309.04
INCR: 59066.75
LPUSH: 56689.34                                
RPUSH: 55679.29                                
LPOP: 56433.41
RPOP: 54674.69
SADD: 56401.58
HSET: 56915.20
SPOP: 59136.61
ZADD: 55096.42
ZPOPMIN: 57803.47                              
LPUSH (needed to benchmark LRANGE): 54975.26   
LRANGE_100 (first 100 elements): 25207.96      
LRANGE_300 (first 300 elements): 10735.37      
LRANGE_500 (first 500 elements): 7007.71       
LRANGE_600 (first 600 elements): 5928.03       
MSET (10 keys): 42301.18                       
XADD: 49504.95
# 3
PING_INLINE: 59311.98                          
PING_MBULK: 58479.53                           
SET: 56053.81
GET: 58479.53
INCR: 58105.75
LPUSH: 56465.27                                
RPUSH: 57339.45                                
LPOP: 56053.81
RPOP: 54674.69
SADD: 58479.53
HSET: 57045.07
SPOP: 58616.65
ZADD: 57045.07
ZPOPMIN: 58004.64                              
LPUSH (needed to benchmark LRANGE): 55710.31   
LRANGE_100 (first 100 elements): 25163.56      
LRANGE_300 (first 300 elements): 10778.19      
LRANGE_500 (first 500 elements): 6926.17       
LRANGE_600 (first 600 elements): 5850.01       
MSET (10 keys): 42444.82                       
XADD: 49925.11

在这里插入图片描述

3.汇总分析

3.1 延迟测试结果汇总

在这里插入图片描述
7.1.240版本外,延迟结果相差不大。

3.1 性能测试结果汇总

在这里插入图片描述
7.1.240版本外,性能测试结果相差不大,相对最好的是5.0.14,稳定性上5.0.14和7.1.240比较好,综合来说当前服务器最好的版本为5.0.14

4.其他参数

这里列举下比较重要的配置项

配置项名称配置项值范围说明
daemonizeyes、noyes表示启用守护进程,默认是no即不以守护进程方式运行。其中Windows系统下不支持启用守护进程方式运行。
port指定 Redis 监听端口,默认端口为 6379。
bind绑定的主机地址,如果需要设置远程访问则直接将这个属性备注下或者改为bind * 即可,这个属性和下面的protected-mode控制了是否可以远程访问 。
protected-modeyes 、no保护模式,该模式控制外部网是否可以连接redis服务,默认是yes,所以默认我们外网是无法访问的,如需外网连接redis服务则需要将此属性改为no。
timeout300当客户端闲置多长时间后关闭连接,如果指定为 0,表示关闭该功能
logleveldebug、verbose、notice、warning日志级别,默认为 notice
databases16设置数据库的数量,默认的数据库是0。整个通过客户端工具可以看得到
rdbcompressionyes、no指定存储至本地数据库时是否压缩数据,默认为 yes,Redis 采用 LZF 压缩,如果为了节省 CPU 时间,可以关闭该选项,但会导致数据库文件变的巨大。
dbfilenamedump.rdb指定本地数据库文件名,默认值为 dump.rdb
dir指定本地数据库存放目录
requirepass设置 Redis 连接密码,如果配置了连接密码,客户端在连接 Redis 时需要通过 AUTH 命令提供密码,默认关闭
maxclients0设置同一时间最大客户端连接数,默认无限制,Redis 可以同时打开的客户端连接数为 Redis 进程可以打开的最大文件描述符数,如果设置 maxclients 0,表示不作限制。当客户端连接数到达限制时,Redis 会关闭新的连接并向客户端返回 max number of clients reached 错误信息。
maxmemoryXXX 指定 Redis 最大内存限制,Redis 在启动时会把数据加载到内存中,达到最大内存后,Redis 会先尝试清除已到期或即将到期的 Key,当此方法处理 后,仍然到达最大内存设置,将无法再进行写入操作,但仍然可以进行读取操作。Redis 新的 vm 机制,会把 Key 存放内存,Value 会存放在 swap 区。配置项值范围列里XXX为数值。

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

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

相关文章

今天 国际青年节 “International Youth Day “

《劝学》孟郊 击石乃有火&#xff0c;不击元无烟。 人学始知道&#xff0c;不学非自然。 万事须己运&#xff0c;他得非我贤。 青春须早为&#xff0c;岂能长少年。 Strike stones to make it burn; No smoke unless you strike. Youre crude if you dont learn; And you…

Syncthing文件同步 - 免费搭建开源的文件自动同步服务器并公网远程访问【私人云盘】

文章目录 1. 前言2. Syncthing网站搭建2.1 Syncthing下载和安装2.2 Syncthing网页测试2.3 注册安装cpolar内网穿透 3. 本地网页发布3.1 Cpolar云端设置3.2 Cpolar本地设置 4. 公网访问测试5. 结语 1. 前言 在数据爆炸的当下&#xff0c;每天都会产生海量的数据&#xff0c;这些…

SQL注入攻防入门详解

毕业开始从事winform到今年转到 web &#xff0c;在码农届已经足足混了快接近3年了&#xff0c;但是对安全方面的知识依旧薄弱&#xff0c;事实上是没机会接触相关开发……必须的各种借口。这几天把sql注入的相关知识整理了下&#xff0c;希望大家多多提意见。 &#xff08;对于…

ACIS的拓扑基础数据结构

在ACIS中,拓扑基础数据结构按照从低维到高维的顺序包括: Vertex(顶点):表示空间中的一个点,用于定义点的位置和属性。Edge(边):由两个顶点连接而成,具有方向属性,用于定义直线段和圆弧。Coedge(共面边):表示面的边缘,也就是一条边可以被多个面共享。Coedge有两个…

SpringCloud学习(七)——统一网关Gateway

文章目录 1. 网关介绍2. 网关搭建2.1 引入依赖2.2 创建启动类2.3 编写配置2.4 测试 3. 路由断言工厂4. 路由过滤器4.1 过滤器配置4.2 全局过滤器4.3 过滤器执行顺序 5. 跨域问题处理 1. 网关介绍 到现在&#xff0c;我们可以使用Nacos对不同的微服务进行注册并管理配置文件&am…

淘宝天猫公布618整体活动节奏

5月4日消息&#xff0c;淘宝直播618选品会近日在杭州成功举办&#xff0c;淘宝直播商品中心团队和天猫、全球购行业小二在会上与商家、达人主播等参会人士探讨如何选品才能打动消费者、如何保障货品的质量安全、如何完善商品的售后服务等问题&#xff0c;共同分析直播电商行业中…

verilog驱动LCD显示彩条、字符

verilog驱动LCD显示彩条、字符 一、简介 LCD&#xff08;liquid crystal display&#xff09;:液晶显示器 TFT&#xff1a;薄膜晶体管 LCD屏幕接口&#xff1a;常见的LCD屏幕接口有&#xff1a;RGB、MCU、LVDS、MIPI等 RGB LCD接口原理图&#xff1a;其中MISO、MOSI是IIC接…

Acjudge #P1004. 整除三元组

蒟蒻来讲题&#xff0c;还望大家喜。若哪有问题&#xff0c;大家尽可提&#xff01; Hello, 大家好哇&#xff01;本初中生蒟蒻讲解一下Acjudge #P1004. 整除三元组! 原题 题目背景 潍坊高新OI社区打算开讲“数论”了&#xff0c;大家赶紧来学习一下“整除”吧。 题目描述 …

第一章 数字图像本质及基础操作

系列文章目录 第一章 图像本质及基础操作 文章目录 系列文章目录前言一、数字图像的本质二、图像基础理论1.色彩空间1.1 RGB模型1.2 HSV模型1.3 HSL模型1.4 YUV模型1.5 灰度图1.6 OpenCV中色彩空间转换 2.图片的存储3.图像参数 三、图像的基础操作及OpenCV画图1.图像的基础操作…

Hololens2开发指南

练习 - 导入和配置资源 - Training | Microsoft Learn unity需要高版本 用2019.4.30支持平台这没有openxr 用2020.3.36可以&#xff0c;2021版本也可以出现

代码随想录算法训练营第三十天 | 航班问题、二维回溯

回溯法小结 本周小结&#xff01;&#xff08;回溯算法系列三&#xff09; | 代码随想录 (programmercarl.com) 性能分析 子集问题分析&#xff1a; 时间复杂度&#xff1a;O(n 2n)&#xff0c;因为每一个元素的状态无外乎取与不取&#xff0c;所以时间复杂度为O(2n)&…

蚁群算法-车辆配载率的路径优化

车辆配送路径优化问题可描述为&#xff1a;某商超配送中心要使用一定数量的车辆对一批货物进行配送服务&#xff0c;要求在不超过车辆的额定载重量和额定容积的条件下&#xff0c;安排这些货物的装载&#xff0c;使得车辆利用率最高。 针对以上问题做出假设&#xff1a; (1) 只…

Python学习笔记(1)

《Python编程&#xff1a;从入门到实践》学习笔记 python编程软件PyCharm Community Edition 2022.3.2&#xff0c;快捷键&#xff1a;Ctrl/ 表示注释Python代码。 一、变量的命名和使用 1.变量名只能包含字母、数字和下划线。变量名可以字母或下划线打头&#xff0c;但不能以数…

Java开发初学者实用网站

1.慕课网&#xff08;http://www.imooc.com&#xff09;&#xff1a;提供了大量的Java在线教程和视频。 优点 1.广泛的开放性&#xff1a;大规模、开放性和受众广 2.透明性&#xff1a;根据不同兴趣、准备情况和时间来学习所需课程 3.优质资源易获取性&#xff1a;让每位学生…

Python每日一练(20230504)

目录 1. 课程表 Course Schedule I 2. 课程表 Course Schedule II &#x1f31f; 每日一练刷题专栏 &#x1f31f; Golang每日一练 专栏 Python每日一练 专栏 C/C每日一练 专栏 Java每日一练 专栏 1. 课程表 Course Schedule I 你这个学期必须选修 numCourses 门课程&a…

linux ll命令是什么

ll并不是linux下一个基本的命令&#xff0c;它实际上是ls -l的一个别名。 # 查看指定目录下的内容&#xff0c;默认查看当前目录下内容 ls [-ald] [目录名] # 目录名不填写&#xff0c;默认为当前目录。 # -a&#xff1a;列出的全部的文件&#xff0c;包括隐藏文件 # -l&#x…

医院PACS系统源码,各种类型图像专业的图像处理功能,海量数据存储与检索

RIS/PACS系统源码 RIS/PACS系统源码在预约登记、分诊叫号、技师检查、诊断报告、临床浏览、科室管理等环节满足全院相关科室的要求。在医学影像下载、浏览、处理中满足速度快、强化常用功能、方便阅片等要求。满足放射、超声、内镜、病理等影像科室的业务需求。通过与HIS、LIS…

阿里云AMD服务器CPU:AMD EPYC Genoa 9T34处理器性能

阿里云AMD服务器AMD EPYC Genoa 9T34处理器&#xff0c;主频3.4 GHz&#xff0c;单核睿频最高3.75 GHz&#xff0c;计算性能稳定&#xff0c;阿里云百科分享AMD EPYC™ Genoa 9T34性能测评&#xff1a; 目录 AMD EPYC™ Genoa 9T34 AMD EPYC™ Genoa 9T34 阿里云AMD服务器性…

基于YOLOv4的目标检测系统(附MATLAB代码+GUI实现)

摘要&#xff1a;本文介绍了一种MATLAB实现的目标检测系统代码&#xff0c;采用 YOLOv4 检测网络作为核心模型&#xff0c;用于训练和检测各种任务下的目标&#xff0c;并在GUI界面中对各种目标检测结果可视化。文章详细介绍了YOLOv4的实现过程&#xff0c;包括算法原理、MATLA…

Windows中批量修改DNS记录

最近由于公网映射的IP需要更换&#xff0c;有一批DNS记录需要修改。对于使用Windows管理的DNS记录&#xff0c;可以使用Powershell批量导出记录更新后再批量修改。 首先使用Powershell将DNS服务器上test.local这个区域里的所有A记录导出 Get-DnsServerResourceRecord -Comput…