当前位置: 首页 > news >正文

Redis日常维护流程及技巧:确保稳定性与性能

目录

一、监控和报警设置

1.实时监控:洞察Redis的脉搏

(1). 资源使用监控

(2). 数据访问模式监控

(3). 持久化监控

(4). 客户端连接

2.报警机制:快速响应的哨兵

(1). 设置报警阈值

(2). 报警方式

(3). 报警策略

(4). 报警测试

3.监控工具的选择

(1). 内置监控工具

(2). 第三方监控工具

二、备份与恢复

1.备份策略:铸就数据安全的基石

(1). 定期全量备份

(2). 增量备份

(3). 备份存储

(4). 备份验证

2.恢复策略:数据重生的艺术

(1). 基于RDB的恢复

(2). 基于AOF的恢复

(3). 混合恢复

(4). 灾难恢复计划

3.备份工具的选择

(1). Redis自带工具

(2). 第三方备份工具

三、性能优化

1.内存优化:高效利用每一寸空间

(1). 数据结构选择

(2). 内存碎片整理

(3). 过期键管理

2.持久化优化:平衡速度与安全

(1). RDB与AOF的选择

(2). AOF优化

3.网络优化:减少延迟,提升吞吐

(1). 连接管理

(2). 管道与批量操作

4.硬件与操作系统优化:底层支撑的力量

(1). 硬件选择

(2). 操作系统参数调整

5.应用层优化:智能调用,高效协作

(1). 缓存策略

(2). 命令优化

四、数据安全与访问控制

1.数据加密:安全的基石

(1). 启用TLS加密

(2). 客户端证书认证

2.访问控制:精细的权限管理

(1). 密码认证

(2). ACL(访问控制列表)

3.审计日志:跟踪访问与操作

(1). 开启审计日志

4.数据持久化与备份:双重保障

(1). 定期备份

(2). 持久化策略

5.总结

五、日志管理

1.日志级别:精细调控的洞察力

(1). 配置日志级别

(2). 动态调整日志级别

2.日志输出:记录每一刻的变迁

(1). 配置日志输出

(2). 自定义日志格式

3.日志轮转:有序的记忆整理

(1). 启用日志轮转

(2). 日志压缩与归档

4.日志分析:洞察系统的心跳

(1). 实时日志监控

(2). 日志聚合与分析

5.安全审计:守护数据的金钥匙

(1). 审计日志记录

(2). 定期审计日志审查

6.总结

六、redis常用命令


Redis作为一个高性能的键值对数据库,广泛应用于缓存、会话存储、排行榜等场景。然而,随着数据量的增长和访问量的提升,定期的维护工作对于确保其稳定性和高性能至关重要。本文将介绍Redis的日常维护流程及技巧,帮助你更好地管理和维护你的Redis服务器。

一、监控和报警设置

在Redis的运维世界中,监控和报警设置犹如一双锐利的眼睛,时刻注视着系统的健康状况。它们是预防和快速响应潜在问题的关键。以下是关于如何有效实施监控和报警设置的详细指南。

1.实时监控:洞察Redis的脉搏

(1). 资源使用监控

  • 内存使用:使用info memory命令可以获取内存使用的详细信息,包括已使用内存、峰值内存等。
  • CPU使用:通过info stats命令可以查看CPU的使用情况,包括用户时间和系统时间。
  • 网络流量:监控网络带宽使用,可以通过info stats中的total_net_input_bytestotal_net_output_bytes来了解。

(2). 数据访问模式监控

  • 热点key分析:使用redis-cli --hotkeys可以找出占用内存最多的key,从而识别出热点key。
  • 命令统计:通过info commandstats可以查看各个命令的执行次数、总耗时等,帮助分析系统瓶颈。

(3). 持久化监控

  • RDB和AOF状态:定期检查info persistence中的RDB和AOF状态,确保持久化过程正常进行。

(4). 客户端连接

  • 连接数监控:使用info clients可以查看当前连接数,以及是否有阻塞的客户端。

2.报警机制:快速响应的哨兵

(1). 设置报警阈值

  • 内存使用率:当内存使用率达到预设阈值(如80%)时,触发报警。
  • CPU使用率:当CPU使用率持续过高时,及时报警。
  • 网络带宽:当网络带宽使用超过正常水平时,发出警告。

(2). 报警方式

  • 邮件通知:配置邮件报警,确保关键人员能够及时收到通知。
  • 短信通知:对于更紧急的情况,可以设置短信报警。
  • 集成第三方服务:如Slack、PagerDuty等,提供更灵活的报警方式。

(3). 报警策略

  • 分级报警:根据问题的严重程度设置不同的报警级别,如警告、严重、紧急等。
  • 报警抑制:避免在短时间内重复报警,可以设置报警抑制机制。

(4). 报警测试

  • 定期测试:定期进行报警测试,确保报警系统正常工作。

3.监控工具的选择

(1). 内置监控工具

  • Redis自带的MONITOR命令:可以实时查看服务器处理的命令。
  • SLOWLOG命令:用于记录执行时间较长的命令。

(2). 第三方监控工具

  • RedisInsight:提供直观的图形界面,方便监控和管理Redis实例。
  • Prometheus:结合Grafana可以构建强大的监控和报警系统。
  • Datadog:提供全面的监控服务,支持多种数据源。

通过上述监控和报警设置的实施,你将能够实时掌握Redis的运行状态,并在问题发生时迅速做出反应。这不仅能够保障系统的稳定运行,还能够提升运维效率,确保业务的连续性和可靠性。记住,监控和报警是Redis运维的守护神,它们的存在让问题无处遁形,让维护工作事半功倍。

二、备份与恢复

在Redis的世界里,数据是王道,而备份与恢复则是守护这份王道的坚固盾牌。无论是应对硬件故障、软件错误,还是人为操作失误,一个完善的备份与恢复策略都是确保数据安全不可或缺的一环。以下是关于如何实施高效备份与恢复策略的详细指南。

1.备份策略:铸就数据安全的基石

(1). 定期全量备份

  • RDB备份:通过配置save指令,可以设置Redis在指定时间间隔内,如果满足指定数量的写操作,则自动触发RDB快照备份。
  • AOF备份:开启AOF持久化,Redis会将每个写命令追加到AOF文件中,可以设置不同的同步策略(如每秒同步、每次操作同步)来平衡性能与数据安全性。

(2). 增量备份

  • AOF重写:定期执行BGREWRITEAOF命令,生成一个新的AOF文件,只包含当前数据库状态所需的写命令,从而减少文件大小。

(3). 备份存储

  • 本地备份:将备份文件存储在本地磁盘,便于快速访问,但需注意单点故障风险。
  • 远程备份:将备份文件同步至远程服务器或云存储,提高数据的安全性。

(4). 备份验证

  • 定期验证:定期从备份中恢复数据,验证备份的完整性和可用性。

2.恢复策略:数据重生的艺术

(1). 基于RDB的恢复

  • 直接恢复:将RDB文件复制到Redis数据目录,重启Redis服务,数据将自动从RDB文件中恢复。

(2). 基于AOF的恢复

  • AOF文件恢复:将AOF文件复制到Redis数据目录,重启Redis服务,Redis会重新执行AOF文件中的命令来恢复数据。

(3). 混合恢复

  • RDB+AOF:在某些情况下,可以同时使用RDB和AOF进行恢复,首先使用RDB快速恢复大部分数据,然后通过AOF补充恢复剩余的写操作。

(4). 灾难恢复计划

  • 备份策略调整:在发生灾难性事件后,根据实际情况调整备份策略,如增加备份频率、改进备份存储方案等。
  • 恢复演练:定期进行恢复演练,确保在真正需要时能够快速有效地恢复数据。

3.备份工具的选择

(1). Redis自带工具

  • SAVEBGSAVE命令:手动触发RDB备份。
  • BGREWRITEAOF命令:手动触发AOF重写。

(2). 第三方备份工具

  • RedisDump/Redis-Dump:用于导出和导入Redis数据的工具,支持JSON格式。
  • Redis-CLI:除了基本的命令行操作,还可以用于数据的导出和导入。

通过上述备份与恢复策略的实施,你将能够为Redis数据安全铸就一道坚不可摧的防线。备份是预防措施,恢复是应对措施,两者相辅相成,共同确保数据的完整性和业务的连续性。记住,数据的价值在于它的可用性,而备份与恢复正是保障这一点的关键。在数据的世界里,备份与恢复不仅是技术操作,更是一种对数据负责的态度和承诺。

三、性能优化

在Redis的王国里,性能是衡量一切的黄金标准。一个优化的Redis实例,就像一匹矫健的骏马,能够在数据处理的赛道上飞驰。性能优化不仅关乎速度,更关乎资源的合理利用和系统的稳定性。以下是一些关键的性能优化策略,它们将帮助你的Redis实例达到最佳状态。

1.内存优化:高效利用每一寸空间

(1). 数据结构选择

  • 合理选择:根据数据访问模式选择最合适的数据结构,如使用SET存储唯一值,HASH存储对象等。
  • 压缩列表:对于小数据量的列表、集合、有序集合,启用压缩列表(ziplist)可以显著减少内存占用。

(2). 内存碎片整理

  • 自动内存碎片整理:启用activedefrag配置,让Redis自动进行内存碎片整理。
  • 手动内存碎片整理:使用MEMORY PURGE命令手动触发内存碎片整理。

(3). 过期键管理

  • 惰性删除:设置合理的过期策略,如volatile-lruallkeys-lru,让Redis在键过期时惰性删除,减少CPU压力。

2.持久化优化:平衡速度与安全

(1). RDB与AOF的选择

  • RDB:适合数据集较大,且对恢复时间要求不高的场景。
  • AOF:适合对数据完整性要求极高的场景,但需注意AOF文件大小和同步策略。

(2). AOF优化

  • AOF重写:定期执行BGREWRITEAOF,减少AOF文件大小,提高恢复速度。
  • AOF同步策略:选择合适的同步策略(如everysec),平衡数据安全和性能。

3.网络优化:减少延迟,提升吞吐

(1). 连接管理

  • 最大连接数:根据实际需求调整maxclients配置,避免过多连接导致资源浪费。
  • 连接池:使用连接池技术,复用连接,减少频繁创建和销毁连接的开销。

(2). 管道与批量操作

  • 管道(Pipeline):通过管道技术,一次性发送多个命令,减少网络往返次数。
  • 批量操作(MSET/MGET):使用批量操作命令,一次性处理多个键值对,提高效率。

4.硬件与操作系统优化:底层支撑的力量

(1). 硬件选择

  • 内存:选择高速内存,确保Redis能够快速读写数据。
  • 磁盘:如果使用磁盘持久化,选择SSD可以大幅提升I/O性能。

(2). 操作系统参数调整

  • 文件描述符限制:增加ulimit -n的值,以支持更多的并发连接。
  • TCP缓冲区大小:调整net.core.rmem_maxnet.core.wmem_max,优化网络吞吐。

5.应用层优化:智能调用,高效协作

(1). 缓存策略

  • 缓存穿透:使用布隆过滤器(Bloom Filter)避免缓存穿透。
  • 缓存雪崩:设置不同的过期时间,避免大量缓存同时失效。

(2). 命令优化

  • 避免复杂操作:减少使用复杂度高的命令,如SORTSUNION等。
  • 合理使用事务:在需要原子操作时使用事务,但避免在事务中执行过多命令。

通过上述性能优化策略的实施,你的Redis实例将能够在数据处理的道路上更加游刃有余。性能优化是一个持续的过程,需要不断地监控、分析和调整。记住,每一个微小的优化都可能带来显著的性能提升。在Redis的世界里,性能优不仅是一种技术实践,更是一种对极致追求的态度。让我们一起,让Redis的速度与效率飞跃新的高度。

四、数据安全与访问控制

在Redis的应用中,数据不仅需要高速访问,同时也需确保其安全性和访问的合理控制。这不仅涉及到数据本身的安全,同时也包括如何有效地控制谁可以访问数据,访问哪些数据,以及以什么方式访问数据。在这一部分,我们将深入探讨Redis的数据安全与访问控制机制,确保你的数据既快速又安全。

1.数据加密:安全的基石

虽然Redis本身不提供内置的数据加密功能,但通过网络层面的加密(如TLS/SSL)可以保证数据在传输中的安全性。确保所有的数据传输通过加密通道进行,能有效抵御窃听和中间人攻击。

(1). 启用TLS加密

  • 配置Redis以启用TLS,保证数据在客户端和服务器之间传输的加密。

(2). 客户端证书认证

  • 使用客户端证书认证,增加一层身份验证,确保只有持有有效证书的客户端才能连接。

2.访问控制:精细的权限管理

Redis提供了基于角色的访问控制(RBAC)模型,通过定义角色和权限来细粒度地控制访问权限。

(1). 密码认证

  • 使用requirepass配置为Redis实例设置密码,任何访问都需要先通过AUTH命令进行身份验证。

(2). ACL(访问控制列表)

  • 通过配置ACL,可以具体到命令级别或数据键级别的访问控制,为不同的用户分配不同的权限。
  • 创建具有特定权限的用户,例如只读用户、只能访问特定键的用户等。

3.审计日志:跟踪访问与操作

启用Redis的审计日志功能,可以记录谁在什么时候执行了什么命令。这对于后期的安全审计、异常检测和故障排除至关重要。

(1). 开启审计日志

  • 通过配置开启审计日志,记录所有重要的访问和操作事件。

4.数据持久化与备份:双重保障

虽然数据持久化与备份不直接属于访问控制范畴,但它们是数据安全的重要组成部分。通过定期备份和合理配置数据持久化策略,可以保证数据在面临系统故障时的安全和完整性。

(1). 定期备份

  • 定期执行BGSAVE命令,将数据从内存持久化到磁盘,同步到安全位置。

(2). 持久化策略

  • 根据业务需求和数据重要性,合理配置RDB和AOF持久化策略,确保数据安全。

5.总结

在数字世界中,数据是宝贵的资产。尤其对于Redis这样的高性能数据库,确保数据的安全性和访问控制的有效性是维护数据价值的关键。通过上述的数据加密、访问控制、审计日志、数据持久化和备份等措施,可以建立起一道坚固的防线,保护Redis数据库中的数据安全,防止未授权访问和潜在的数据泄露风险。记住,强大的访问控制和数据安全机制,是保障Redis数据库持久稳定运行的基石。

五、日志管理

在Redis的运维世界中,日志管理扮演着至关重要的角色。它不仅是故障排查的得力助手,也是性能监控、安全审计和合规性检查的智慧之眼。通过细致入微的日志记录,我们能够洞察系统的运行状态,及时发现潜在的问题,并采取相应的措施。在这一部分,我们将深入探讨Redis的日志管理策略,确保你的Redis实例运行在最佳状态。

1.日志级别:精细调控的洞察力

Redis提供了多种日志级别,从最详细的调试信息到最简洁的警告信息,允许管理员根据实际需要调整日志的详细程度。

(1). 配置日志级别

  • 通过loglevel配置选项设置日志级别,如debugverbosenoticewarning
  • 选择合适的日志级别,平衡日志的详细程度和系统性能。

(2). 动态调整日志级别

  • 在运行时使用CONFIG SET loglevel命令动态调整日志级别,以适应不同的运维场景。

2.日志输出:记录每一刻的变迁

日志的输出位置和格式对于日志管理同样重要。Redis允许你将日志输出到不同的位置,并自定义日志格式。

(1). 配置日志输出

  • 使用logfile配置选项指定日志文件的位置,或者配置为输出到标准输出(stdout)。

(2). 自定义日志格式

  • 虽然Redis不直接支持自定义日志格式,但可以通过日志轮转工具和日志分析工具来处理和格式化日志。

3.日志轮转:有序的记忆整理

随着时间的推移,日志文件会不断增长,为了防止日志文件过大,需要进行日志轮转。

(1). 启用日志轮转

  • 配置日志轮转工具(如logrotate)来自动管理日志文件的大小和数量。
  • 设置日志文件的最大大小和保留的日志文件数量。

(2). 日志压缩与归档

  • 对轮转后的日志文件进行压缩,减少存储空间的占用。
  • 将压缩后的日志文件归档,便于长期存储和历史查询。

4.日志分析:洞察系统的心跳

日志分析是日志管理的核心,通过分析日志,可以获取系统性能、用户行为和潜在安全威胁的宝贵信息。

(1). 实时日志监控

  • 使用实时日志监控工具(如ELK StackGraylog)来监控日志流,及时发现异常。

(2). 日志聚合与分析

  • 将多个Redis实例的日志聚合到中央日志服务器,进行统一分析。
  • 利用日志分析工具进行趋势分析、异常检测和模式识别。

5.安全审计:守护数据的金钥匙

日志记录对于安全审计至关重要,它可以帮助我们追踪和分析潜在的安全威胁。

(1). 审计日志记录

  • 确保所有关键操作(如认证失败、权限变更)都被记录在审计日志中。

(2). 定期审计日志审查

  • 定期审查审计日志,检查是否有异常行为或未授权的访问尝试。

6.总结

日志管理是Redis运维中不可或缺的一环。通过合理配置日志级别、输出、轮转和分析,我们可以确保Redis实例的健康运行,及时发现并解决问题。同时,日志管理也是安全审计的重要组成部分,帮助我们守护数据的安全。记住,日志不仅是记录,更是洞察系统运行状态的智慧之眼,是保障Redis高效、稳定、安全运行的关键

六、redis常用命令

1. SET
功能:设置指定键的值。
用法:SET key value [EX seconds] [PX milliseconds] [NX|XX]
示例:SET mykey "HelloRedis" EX 102. GET
功能:获取指定键的值。
用法:GET key
示例:GET mykey3. DEL
功能:删除一个或多个键。
用法:DEL key [key ...]
示例:DEL mykey1 mykey24. EXISTS
功能:检查键是否存在。
用法:EXISTS key
示例:EXISTS mykey5. INCR
功能:将键的整数值增加1。
用法:INCR key
示例:INCR counter6. DECR
功能:将键的整数值减少1。
用法:DECR key
示例:DECR counter7. INCRBY
功能:将键的整数值增加指定数量。
用法:INCRBY key increment
示例:INCRBY counter 58. DECRBY
功能:将键的整数值减少指定数量。
用法:DECRBY key decrement
示例:DECRBY counter 39. APPEND
功能:将指定值追加到键的值的末尾。
用法:APPEND key value
示例:APPEND mykey " World"10. STRLEN
功能:获取键值的字符串长度。
用法:STRLEN key
示例:STRLEN mykey11. LPUSH
功能:将一个或多个值插入到列表头部。
用法:LPUSH key value [value ...]
示例:LPUSH mylist "world"12. RPUSH
功能:将一个或多个值插入到列表尾部。
用法:RPUSH key value [value ...]
示例:RPUSH mylist "hello"13. LPOP
功能:移除并获取列表的第一个元素。
用法:LPOP key
示例:LPOP mylist14. RPOP
功能:移除并获取列表的最后一个元素。
用法:RPOP key
示例:RPOP mylist15. LRANGE
功能:获取列表指定范围内的元素。
用法:LRANGE key start stop
示例:LRANGE mylist 0 -116. SADD
功能:向集合添加一个或多个成员。
用法:SADD key member [member ...]
示例:SADD myset "member1"17. SMEMBERS
功能:获取集合的所有成员。
用法:SMEMBERS key
示例:SMEMBERS myset18. ZADD
功能:向有序集合添加一个或多个成员,或者更新已存在成员的分数。
用法:ZADD key score member [score member ...]
示例:ZADD myzset 1 "member1"19. ZRANGE
功能:通过索引区间返回有序集合指定区间内的成员。
用法:ZRANGE key start stop [WITHSCORES]
示例:ZRANGE myzset 0 -1 WITHSCORES20. HSET
功能:将哈希表key中的字段field的值设为value。
用法:HSET key field value
示例:HSET myhash field1 "Hello"

通过上述维护流程及技巧,你可以有效地管理和维护Redis服务器,确保其稳定性和高性能。日常的维护工作虽然需要一定的时间和精力,但对于保障系统的稳定运行和提升用户体验来说,是非常必要的。希望本文能够对你在Redis的日常维护工作中提供帮助。

相关文章:

Redis日常维护流程及技巧:确保稳定性与性能

目录 一、监控和报警设置 1.实时监控:洞察Redis的脉搏 (1). 资源使用监控 (2). 数据访问模式监控 (3). 持久化监控 (4). 客户端连接 2.报警机制:快速响…...

牛客华为机试题——难度:入门(python实现)

HJ7 取近似值 HJ9 提取不重复的整数 HJ46 截取字符串 HJ58 输入n个整数,输出其中最小的k个 HJ101 输入整型数组和排序标识,对其元素按照升序或降序进行排序 HJ7 取近似值 描述:写出一个程序,接受一个正浮点数值,输…...

数据结构与算法学习笔记之线性表五---循环链表的表示和实现(C++)

目录 前言 1.双向链表的定义 2.双向链表的表示和实现 1.定义 2.初始化 3.销毁 4.清空 5.表长 6.获取数据元素 7.前驱节点 8.后继节点 9.插入 10.删除 11.遍历 12.完整代码 前言 记录下双向链表的表示和实现。 1.循环链表的定义 循环链表(circular linked list)…...

微信小程序生命周期揭秘:从启动到消亡的全过程剖析【附代码】

微信小程序生命周期揭秘:从启动到消亡的全过程剖析 一、小程序生命周期概览核心生命周期函数 二、深入理解生命周期回调2.1 onLoad: 首次亮相的准备2.2 onShow: 重登舞台的瞬间2.3 onReady: 舞台就绪,静待表演2.4 onHide & onUnload: 谨慎离场&#…...

Linux 下载 miniconda

https://repo.anaconda.com/miniconda/ 下载对应版本: wget -c https://repo.anaconda.com/miniconda/Miniconda3-py310_24.3.0-0-Linux-x86_64.sh给下载的文件添加可执行权限 chmod x Miniconda3-py310_24.3.0-0-Linux-x86_64.sh安装 ./Miniconda3-py310_24.3.…...

第十五篇:全面防护:构建不容侵犯的数据库安全策略与实战指南

全面防护:构建不容侵犯的数据库安全策略与实战指南 1. 引言:数据库安全的现代战略 1.1 简介:数据库安全在当今的数字化时代中的重要性 在数字化的浪潮中,数据已成为企业乃至国家的核心资产,其价值不亚于实体世界的黄…...

电脑快速搜索文件及文件夹软件——Everything

一、前言 Everything是一款由voidtools开发的文件搜索工具,主要运行于Windows操作系统上。它的主要功能是快速、高效地搜索电脑上的文件和文件夹名称。Everything通过利用NTFS文件系统的MFT(主文件表)来索引文件,从而实现几乎实时…...

02-登录页面、动态路由、权限等模块开发

权限模块开发流程 前端login页面开发后端SpringSecurity配置后端login接口开发前端页面框架搭建前端路由守卫,状态管理开发前后端完成认证流程 开发Login页面 创建Login页面创建router,可以跳转到Login页面 Login页面 使用element-plus开发 认证功…...

万物生长大会 | 创邻科技再登杭州准独角兽榜单

近日,由民建中央、中国科协指导,民建浙江省委会、中国投资发展促进会联合办的第八届万物生长大会在杭州举办。 在这场创新创业领域一年一度的盛会上,杭州市创业投资协会联合微链共同发布《2024杭州独角兽&准独角兽企业榜单》。榜单显示&…...

(六)Linux的Shell编程(上)

一.Shell Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是一种命令语言,又是一种程序设计语言。Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。Ken Thompson 的 sh 是第一种 Unix Shell,Windows …...

CANopen总线_CANOpen开源协议栈

CANopen是自动化中使用的嵌入式系统的通信协议栈和设备配置文件规范。就OSI 模型而言,CANopen 实现了以上各层,包括网络层。 CANopen 标准由一个寻址方案、几个小型通信协议和一个由设备配置文件定义的应用层组成。通信协议支持网络管理、设备监控和节点…...

Rust 语言不支持 goto 语句

一、Rust 不提供 goto 语句 Rust 语言并没有提供 goto 语句。goto 语句在很多现代编程语言中已经不再被推荐使用,因为它可能导致代码的流程变得难以跟踪和理解,特别是在复杂的程序中。Rust 语言设计者选择了更加结构化和可预测的控制流语句,…...

uniapp日期区间选择器

uniapp日期区间选择器 在 uniapp 中创建一个简单的自定义日期范围的日期区间选择器: - 限制有效日期范围开始日期为 2024-01-01,结束日期为当日; - 默认日期区间为当日向前计算的7日区间; - 选择开始时间后,判断不可大…...

k8s job

ReplicaSet 和 DaemonSet 会持续运行任务,永远达不到完成态。但在一个可完成的任务中,其进程终止后,不应该再重新启动。 Job 允许你运行一种 pod,该 pod 在内部进程成功结束时,不重启容器,一旦任务完成&…...

Python---NumPy万字总结【此篇文章内容难度较大,线性代数模块】(3)

NumPy的应用(3) 向量 向量(vector)也叫矢量,是一个同时具有大小和方向,且满足平行四边形法则的几何对象。与向量相对的概念叫标量或数量,标量只有大小,绝大多数情况下没有方向。我们…...

【面试经典题】环形链表

个人主页:一代… 个人专栏:数据结构 在面试中我们经常会遇到有关链表的相关题目,面试官通常会对题目给出拓展 下面我就两个leetcode上的一个双指针的题目为例,并对其进行拓展 题目链接:环形链表 题目描述&#xf…...

【联合索引】最左匹配原则是什么?

什么是联合索引 联合索引(Composite Index)是一种索引类型,它由多个列组成。 MySQL的联合索引(也称为复合索引)是建立在多个字段上的索引。这种索引类型允许数据库在查询时同时考虑多个列的值,从而提高查询…...

LeetCode 700.二叉搜索树中的搜索

LeetCode 700.二叉搜索树中的搜索 1、题目 题目链接:700. 二叉搜索树中的搜索 给定二叉搜索树(BST)的根节点 root 和一个整数值 val。 你需要在 BST 中找到节点值等于 val 的节点。 返回以该节点为根的子树。 如果节点不存在,则…...

程序设计实践-课程设计任务布置(麦当劳) (price 200)(不包含文档)

WX: help-assignment code price 200(不包含文档!不包含文档!不包含文档!) 课题任务-概述 2023年5月,麦当劳在北邮开业。大量的学生去那里订餐。正因为如此,麦当劳的在线点餐系统经常关闭以避…...

leetcode 918.环形子数组的最大和

思路:DP 其实和昨天做的哪个重复数组差不多,按顺序来说先做这个题目其实更好。 这里需要分两种情况:第一个,就是数组不越界的时候,这个时候最大子数组和就是leetcode 53题的题解。 如果说越界了,我们还需…...

Spring中用到的设计模式有哪些

工厂模式,BeanFactory就是简单工厂模式的体现,根据传入一个唯一的标识来获得Bean对象。 单例模式,Spring依赖注入Bean实例默认是单例的。Spring依赖注入(包括lazy-init方式)都是发生在AbstractBeanFactory的getBean里。getBean的doGetBean方法调用getSingleton进行bean的创…...

CSS 样式清单整理:文字超出部分显示省略号和设置placeholder的字体样式

单行文本的溢出显示省略号(一定要有宽度) p{width:200rpx;overflow: hidden;text-overflow:ellipsis;white-space: nowrap;}多行文本溢出显示省略号 p {display: -webkit-box;-webkit-box-orient: vertical;-webkit-line-clamp: 3;overflow: hidden;}设…...

Docker容器:Docker-Consul 的容器服务更新与发现

目录 前言 一、什么是服务注册与发现 二、 Docker-Consul 概述 1、Consul 概念 2、Consul 提供的一些关键特性 3、Consul 的优缺点 4、传统模式与自动发现注册模式的区别 4.1 传统模式 4.2 自动发现注册模式 5、Consul 核心组件 5.1 Consul-Template组件 5.2 Consu…...

容器化Jenkins远程发布java应用(方式二:自定义镜像仓库远程拉取构建)

1.创建maven项目 2.配置git、maven 3.阿里控制台>容器镜像服务>镜像仓库>创建镜像仓库 4.执行shell脚本(推送镜像到阿里云镜像仓库) 使用到登录阿里云仓库命令 #!/bin/bash # 服务名称 SERVER_NAMEplanetflix-app # 镜像tag IMAGE_TAG1.0.0-SN…...

解密某游戏的数据加密

前言 最近有个兄弟通过我的视频号加我,咨询能否将这个dubo游戏游戏开始前就将数据拿到从而进行押注,于是通过抓包工具测试了下,发现数据有时候是明文,有时候确实密文,大致看了下有这几种加密:Md5aes、Md5&a…...

【报错合集】完美解决“虚拟机使用的是此版本 VMware Workstation 不支持的硬件版本”

文章目录 解决方案:更改设置的硬件版本 今天我需要将别人的虚拟机克隆到我的VMware Workstation上运行,结果发生了以下的错误: 刚开始以为是VMware Workstation的版本问题太低导致的,所以我删除了原来的那个版本,下载…...

YOLOv8小白中的小白安装环境教程!没一个字废话,看一遍不踩坑!

文章目录 去哪里下代码?怎么下代码?怎么装环境?命令行界面(CLI)指令和Python脚本区别?附录1 conda常用指令附录2 git常用指令附录3 项目代码文件作用去哪里下代码? 下载代码请大家直接去 YOLOv8的官方仓库下载,名字叫 ultralytics,有些镜像网站和个人发的等来历不明的代…...

C#正则表达式,提取信息使用

正则表达式简介 在C#中,正则表达式(Regular Expression,通常简写为regex或regexp)是一种功能强大的文本处理工具,它使用特定的字符序列来定义搜索模式,从而实现对文本的高效搜索、匹配和替换操作。正则表达…...

【数据结构】详解队列

现在我们来掌握一下队列!如果有对往期知识有不足地方,可翻阅之前文章哦! 个人主页:小八哥向前冲~-CSDN博客 所属专栏:数据结构【c语言版】_小八哥向前冲~的博客-CSDN博客 栈和队列的实现其实都是对你顺序表和链表的检验…...

大模型微调方法汇总

微调方法 Freeze方法P-tuning方法 prefix-tuningPrompt TuningP-tuning v1P-tuning v2Lora方法 重要相关参数LoRA 的优势Qlora方法 相关参数微调经验 模型选择模型大小选择数据处理微调方案英文模型需要做词表扩充吗?如何避免灾难遗忘大模型的幻觉问题微调后的输出…...