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的日常维护工作中提供帮助。

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

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

相关文章

标准Modbus TCP双网口开关量模块

M140E以太网远程I/O无线数据采集模块是一款工业级、隔离设计、高可靠性、高稳定性和高精度数据采集模块,嵌入式32位高性能微处理器MCU,集成2路工业10/100M自适应以太网模块里面。提供多种I/O,支持标准Modbus TCP,可集成到SCADA、O…

Spring STOMP-连接到消息代理

STOMP 代理中继维护一个与消息代理的“系统”TCP 连接。这个连接仅用于来自服务器端应用程序的消息,不用于接收消息。您可以为此连接配置STOMP凭据(即STOMP帧的login和passcode头部)。这在XML命名空间和Java配置中都以systemLogin和systemPas…

CentOs搭建Kubernetes集群

kubeadm minikube 还是太“迷你”了,方便的同时也隐藏了很多细节,离真正生产环境里的计算集群有一些差距,毕竟许多需求、任务只有在多节点的大集群里才能够遇到,相比起来,minikube 真的只能算是一个“玩具”。 Kuber…

spring基础使用(案例)

基于xml使用: 准备: 1.Dao层(接口): public interface UserDao {public void save(); } 1.1 Dao层(实现类): public class UserDaoIim implements UserDao {Overridepublic vo…

Day53代码随想录动态规划part13:300.最长递增子序列、674. 最长连续递增序列、718. 最长重复子数组

Day52 动态规划part13 300.最长递增子序列 leetcode链接:300. 最长递增子序列 - 力扣(LeetCode) 题意:给你一个整数数组 nums ,找到其中最长严格递增子序列的长度。子序列是由数组派生而来的序列,删除&a…

23种设计模式(软考中级 软件设计师)

设计模式 23个设计模式,23个意图 1. 设计模式概要 设计模式的核心在于提供了相关问题的解决方案,使得人们可以更加简单方便的复用成功的设计和体系结构 设计模式的类别 创建型结构型行为型类工厂方法模式适配器模式(类)解释器模…

物联网五层架构分析

物联网五层架构分析 随着科技的迅速发展,物联网(IoT)作为日常生活中不可或缺的一部分,已融入人们的生活和工作中。物联网五层架构,包括感知层、网络层、数据层、应用层和业务层,扮演着关键的角色。 感知层 …

网络库-libcurl介绍

1.简介 libcurl 是一个功能强大的库,支持多种协议,用于数据传输。它广泛应用于实现网络操作,如HTTP、HTTPS、FTP、FTPS、SCP、SFTP等。libcurl 提供了丰富的 API,可以在多种编程语言中使用。 libcurl 主要特点 支持多种协议&am…

FreeRTOS计数型信号量

目录 一、计数型信号量简介 二、计数型信号量相关API 1、创建计数型信号量 2、释放计数型信号量 3、获取计数型信号量 4、获取计数型信号量的计数值 三、计数型信号量实操 1、实验需求 2、CubeMX配置 3、代码实现 一、计数型信号量简介 ①取值只有0与1两种状态的信号…

基于Springboot的滴答拍摄影

基于SpringbootVue的滴答拍摄影设计与实现 开发语言:Java数据库:MySQL技术:SpringbootMybatis工具:IDEA、Maven、Navicat 系统展示 用户登录 首页 摄影作品 摄影服务 摄影论坛 后台登录 后台首页 用户管理 摄影师管理 摄影作…

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

文章目录 去哪里下代码?怎么下代码?怎么装环境?命令行界面(CLI)指令和Python脚本区别?附录1 conda常用指令附录2 git常用指令附录3 项目代码文件作用 去哪里下代码? 下载代码请大家直接去 YOLOv8的官方仓库下载&#…

HTTP和HTTPS的区别和联系

目录 1. 简介2. TLS 握手过程3. 常见的加密算法3.1 对称加密算法3.2 非对称加密算法 1. 简介 HTTPS在HTTP的基础上引入了一个TLS层,采用密文进行传输,结合对称加密技术和非对称加密技术来实现数据的安全性和完整性。 客户端会生成随机密钥,…

让 计算机 将 数学 公式 表达式 的计算过程绘制出来 【mathematical-expression(MAE)】

目录 文章目录 目录介绍开始实战引入数学表达式计算库引入流程图代码生成库开始进行生成 介绍 大家好 今天我们来分享一个新知识,将数学表达式的整个计算过程,以及计算繁多结果在 Java 中绘制出来,计算机中的数学表达式计算的功能很常见了&a…

react 对输入做出反应与状态

React 提供了一种操作 UI 的声明性方式。您无需直接操作 UI 的各个部分,而是描述组件可能处于的不同状态,并在它们之间切换以响应用户输入。 声明式 UI 与命令式 UI 的比较 在设计 UI 交互时,可能会考虑 UI 如何响应用户操作而更改。考虑一…

[C语言]总览

目录 1. 框架、默认数据类型 2. 分支结构 (1). if ... else ... (2). switch ... case ... 3. 循环结构 (1). while (2). for (3). do ... while 4. 函…

区块链的跨链交互:从学校间交流看跨链技术

区块链是一种去中心化的分布式账本技术,它通过加密学和共识机制来确保数据的安全性和不可篡改性。每个区块链就像一所独立的学校,有自己的制度、学生和重点专业。它们各自运行,有时在同一领域展开不同的活动。随着区块链技术的不断发展&#…

【组合博弈】Outcome Classes

Outcome Classes 一个游戏 G G G的outcome函数代表这个游戏最终的结果,就是说这个游戏最后的赢家是谁。outcome函数是一个从游戏 G G G映射到四个结果的函数,四个结果分别是 L , R , P , N L, R, P, N L,R,P,N。意义如下表: ClassNameDefin…

学习笔记:Adaptive Platform(AP)适配到RTOS

一、背景 1、AP版本 Adaptive Platform AUTOSAR R20-11版本标准支持C14。CM模块支持DDS、SOME/IP协议 2、RTOS RTOS-A核,当前完全支持POSIX PSE51、POSIX PSE52接口,POSIX PSE53部分支持,POSIX PSE54基本不支持。详细接口参考&#xff1a…

第十四天:PHP 开发,输入输出类留言板访问 IPUA 头来源

1.PHP-全局变量$_SERVER 2.MYSQL-插入语法INSERT 3.输入输出-XSS&反射&存储 4.安全问题-XSS跨站&CSRF等 1.输入输出类安全问题 反射性xss 这个先准备一个数据,随便弄一个表名字,在随便弄一点数据存入即可 作为连接的数据库&#xff0c…