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

Redis的使用和原理

目录

1.初识Redis

1.1 Redis是什么?

1.2 Redis的特性

1.2.1 速度快

1.2.2 基于键值对的数据结构服务器

1.2.3 丰富的功能

1.2.4 简单稳定

1.2.5 持久化

1.2.6 主从复制

1.2.7 高可用和分布式

1.3 Redis的使用场景

1.3.1 缓存

1.3.2 排行榜系统

1.3.3 计数器应用

1.3.4 社交网络

1.3.5 消息队列

2.Redis常见的数据类型

2.1 基本全局命令

2.1.1 KEYS

2.1.2 EXISTS

2.1.3 DEL

2.1.4 EXPIRE

2.1.5 TTL

2.1.6 TYPE

2.2 数据结构和内部编码


1.初识Redis

1.1 Redis是什么?

Redis是一个在内存中存储数据的中间件,用于作为数据库,用于作为数据缓存,在分布式系统中有很大的用处,由于Redis将所有的数据存储在内存中,所以Redis的读写性能非常高效

1.2 Redis的特性

1.2.1 速度快

1)Redis数据存储在内存中,所以就比访问硬盘的数据库快很多

2)Redis的核心功能都是比较简单的操作内存的数据结构

3)从网络的角读看,Redis使用了IO多路复用的方式,一个线程管理多个socket

4)Redis使用了单线程模型,减少了不必要的线程之间的竞争开销

1.2.2 基于键值对的数据结构服务器

Redis是一种基于键值对的NoSQL数据库,与很多键值对数据库不同的是,Redis中的值可以是由String、hash、list、set、zset(有序集合)、Bitmaps(位图)等多种数据结构和算法组成,因此Redis可以满足很多的应用场景

1.2.3 丰富的功能

除了5中数据结构,Redis海提供了许多额外的功能:

1)提供了键过期功能,可以用来实现缓存

2)提供了发布订阅功能,可以用来实现消息系统

3)支持Lua脚本功能,可以利用Lua创建出新的Redis命令

4)提供了简单的事务功能,能在一定程度上保证事务特性

5)提供了流水线功能,客户端能将一批命令一次性传到Redis,减少了网络的开销

1.2.4 简单稳定

Redis的简单主要表现在三个方面,首先,Redis的源码很少,相对于很多NoSQL数据库来说代码量相对要少很多。其次,Redis使用单线程模型,使得Redis服务端处理模型变得简单。最后,Redis不需要依赖其他操作系统中的类库,自己实现了事件处理的相关功能

1.2.5 持久化

通常看,将数据放在内存中不安全,一旦发生断电,重要的数据可能就会丢失,因此Redis提供了两种持久化的方式:RDB和AOF,使用两种策略将内存的数据保存到硬盘中,这样就保证了数据的可持久化

1.2.6 主从复制

Redis提供了复制功能,实现了多个相同的Redis副本,复制功能是分布式Redis的基础

1.2.7 高可用和分布式

Redis提供了高可用实现的Redis哨兵(Redis Sentinel),能够保证Redis结点的故障发现和故障自动转移,也提供了Redis集群(Redis Cluster),是真正的分布式实现,提供了高可用、读写和容量的扩展性

1.3 Redis的使用场景

1.3.1 缓存

缓存机制几乎在所有的网站都有使用,合理的使用缓存可以加速数据的访问速度,Redis提供了键值对过期时间设置,并且也提供了灵活控制最大内存和内存溢出后的淘汰策略

1.3.2 排行榜系统

Redis提供了列表和有序集合的结构,合理地使用这些数据结构可以很方便地构建各种排行榜系统

1.3.3 计数器应用

在视频网站中,每播放一次视频播放量就加1,如果并发量很大对于传统关系型数据的性能是⼀种挑战,Redis天然支持计数功能而且计数的性能也非常好,可以说是计数器系统的重要选择

1.3.4 社交网络

由于社交网站访问量通常比较大,而且传统的关系型数据不太合适保存这种类型的数据,Redis提供的数据结构可以相对比较容易地实现这些功能

1.3.5 消息队列

消息队列系统可以说是一个大型网站的必备基础组件,因为其具有业务解耦、非实时业务削峰等特性。Redis提供了发布订阅功能和阻塞队列的功能,对于一般的消息队列功能基本可以满足

2.Redis常见的数据类型

2.1 基本全局命令

Redis由5中数据结构,它们都是键值对中的值,对于键来说有一些通用的命令

2.1.1 KEYS

返回所有满足样式的key,例如

h?llo匹配hello,hallo和hxllo,?匹配任意一个字符

h*llo匹配hllo,hello,heeeello,*匹配0个或者多个任意字符

h[ae]llo匹配hello和hallo,[ae]只能匹配a和e

h[^e]匹配hallo,hxllo,[^e]排除e,其他都能匹配

h[a-b]llo匹配hallo和hbllo,只匹配a-b之间的范围,包含两侧边界

keys的时间复杂度是O(N),其中keys *(查询redis中的所有key)

2.1.2 EXISTS

判断某个key是否存在

时间复杂度:O(1)

返回值:key存在的个数

2.1.3 DEL

删除指定的key

时间复杂度:O(1)

返回值:删除掉key的个数

2.1.4 EXPIRE

为指定的key添加秒级的过期时间,key存活时间超过指定的值就会被自动删除

时间复杂度:O(1)

返回值:1表示设置成功,0表示设置失败

2.1.5 TTL

获取指定key的过期时间,秒级

时间复杂度:O(1)

返回值:剩余时间。-1表示没有关联过期时间,-2表示key不存在

2.1.6 TYPE

返回key对应的数据类型,Redis的所有key都是String,key对应的value可能会存在多种类型

时间复杂度:O(1)

返回值:none,string,list,set,zset,hash,stream

总结:

keys:用来查看匹配规则的key

exists:用来判定指定key是否存在

del:删除指定的key

expire:给key设置过期时间

ttl:查询key的过期时间

type:查询key对应的value的类型

2.2 数据结构和内部编码

type命令实际返回的就是当前键的数据结构类型,它们分别是:String、list、hash、set、zest,这些只是Redis对外的数据结构

Redis数据结构和内部编码

String

raw:最基本的字符串

int:redis通常也可以用来实现一些"计数"功能,当value是一个整数的时候,此时可能redis会直接使用int来保存

embstr:针对短字符串进行的特殊优化

hash

hashtable:最基本的哈希表

ziplist:压缩列表,当哈希表里面的元素比较少时,可能就优化成ziplist,从而节省空间

list

linkedlist:链表

ziplist:压缩列表

从Redis3.2开始,引入新的实现方式quicklist,它同时兼顾了linkedlist和ziplist的优点,其中quicklist就是一个链表,每个元素又是一个ziplist,兼顾到时间和空间

set

intset:集合中存的都是整数

zset

skiplist:跳表

上述每种数据结构都有至少两种以上的内部编码实现,其中可以通过object encoding命令来查询内部编码

hello对应值的内部编码时embstr,mylist对应值的内部编码时ziplist

Redis这样设计有两个好处:

1)可以改进内部编码,而对外的数据结构和命令没有任何影响,因此一旦开发出更优秀的内部编码,无需改动外部数据结构和命令,形成了高内聚低耦合,例如Redis3.2提供了quicklist,它是结合了ziplist和linkedlist两者的优点,为列表类型提供了一种更为优秀的内部编码实现,用户是感知不到的

2)多种内部编码实现可以在不同场景下发挥各自的优势,例如ziplist比较节省内存,但是在列表元素比较多的情况下,性能会下降,这时候Redis会根据配置选项将列表类型的内部实现转换为
linkedlist,整个过程用户也感知不到

相关文章:

Redis的使用和原理

目录 1.初识Redis 1.1 Redis是什么? 1.2 Redis的特性 1.2.1 速度快 1.2.2 基于键值对的数据结构服务器 1.2.3 丰富的功能 1.2.4 简单稳定 1.2.5 持久化 1.2.6 主从复制 1.2.7 高可用和分布式 1.3 Redis的使用场景 1.3.1 缓存 1.3.2 排行榜系统 1.3.3 计数器应用 1.3…...

扫描全能王的AI驱动创新与智能高清滤镜技术解析

目录 引言1、扫描全能王2、智能高清滤镜黑科技2.1、图像视觉矫正2.2、去干扰技术 3、实际应用案例3.1、打印文稿褶皱检测3.2、试卷擦除手写3.3、老旧文件处理3.4、收银小票3.5、从不同角度扫描文档 4、用户体验结论与未来展望 引言 在数字化时代背景下,文档扫描功能…...

【Linux】Linux系统配置,linux的交互方式

1.Linux系统环境安装 有三种方式 裸机安装或者双系统 -- 不推荐虚拟机安装 --- 不推荐云服务器/安装简单, 维护成本低——推荐, 未来学习效果好 我们借助云服务器 云服务器(Elastic Compute Service,ECS)的标准定义…...

Linux中--prefix命令使用及源码安装

1.prefix - 指定文件安装路径通常与configure搭配使用: 在安装源码时可使用下述命令指定源码安装路径: bogon:httpd-2.4.59 wancanchishenma$./configure --prefix/usr/local/apache 2.源码的安装一般由3个步骤组成:配置(configur…...

加速科技Flash存储测试解决方案 全面保障数据存储可靠性

Flash存储芯片 现代电子设备的核心数据存储守护者 Flash存储芯片是一种关键的非易失性存储器,作为现代电子设备中不可或缺的核心组件,承载着数据的存取重任。这种小巧而强大的芯片,以其低功耗、可靠性、高速的读写能力和巨大的存储容量&…...

数字化那点事:一文读懂数字乡村

一、数字乡村的定义 数字乡村是指利用信息技术和数字化手段,推动乡村社会经济发展和治理模式变革,提升乡村治理能力和公共服务水平,实现乡村全面振兴的一种新型发展模式。它包括农业生产的数字化、乡村治理的智能化、乡村生活的现代化等方面…...

彻底解决 macos中chrome应用程序 的 无法更新 Chrome 弹窗提示 mac自定义参数启动 chrome.app

mac系统中的chrome app应用在每次打开是都会提示一个 “无法更新 Chrome Chrome 无法更新至最新版本,因此您未能获得最新的功能和安全修复程序。” , 然而最新的chrome 程序似乎在某些情况下居然会出现 输入和显示不一致的情况,暂时不想升…...

等级保护 | 如何完成等保的建设整改

等级保护整改是等保基本建设的一个阶段。为了能成功通过等级测评,企业要根据等级保护建设要求,对信息和信息系统进行网络安全升级,对定级对象当前不满足要求的进行建设整改,包括技术层面的整改,也包括管理方面的整改。…...

开发微信小程序从开始到部署上线,哪些个流程需要付费

1. 微信公众平台账号注册 费用:300元人民币(这是企业账号的认证费用,个人账号不需要付费)。说明:如果你是企业或组织,需要进行微信公众平台的认证,这会产生费用。个人开发者可以免费注册账号&a…...

python r, b, u, f 前缀详解

1、r前缀 一般来说,\n’是一个换行符,是一个字符串;而加上r为前缀后,不会以任何特殊方式处理反斜杠。因此,r"\n" 是包含 ‘\’ 和 ‘n’ 的双字符字符串;示例如下: >>> pr…...

Go语言简介

Go语言 Go语言是由 Google 的 Robert Griesemer,Rob Pike 及 Ken Thompson 开发的一种静态强类型、编译型语言。 Go 语言(或称 Golang)是云计算时代的C语言。Go语言的诞生是为了让程序员有更高的生产效率,Go语言专门针对多处理器系统应用程序的编程进行了优化&…...

css持续学习

一、样式层叠 当一个css样式发生冲突时,比如多处给一个字体设置了不同的颜色,这个时候就需要样式层叠了,它会进行三种比较 比较重要性 重要性从高到低: 1.带有 important 的作者样式(作者样式就是开发者写的样式&…...

FFmpeg 关于AV1编码指导文档介绍

介绍 本篇博客主要介绍FFMpeg中关于AV1编码支持说明,主要根据官方wiki说明进行总结。官方wiki地址:AV1AV1是一种由Alliance for Open Media (AOMedia)开发的开源且免版税的视频编解码器,它在压缩效率上比VP9高出约30%,比H.264高出约50%。目前,FFmpeg支持三种AV1编码器:li…...

鸿蒙系统——强大的分布式系统

鸿蒙相比较于传统安卓最最最主要的优势是微内核分布式操作系统,具有面向未来,跨设备无缝协作,数据共享的全场景体验。下面简单来感受一下鸿蒙系统的多端自由流转。 自由流转概述 场景介绍 随着全场景多设备的生活方式不断深入,…...

centos7 安装单机MongoDB

centos7安装单机 yum 安装 1、配置yum源 vim /etc/yum.repos.d/mongodb.repo [mongodb-org-7.0] nameMongoDB Repository baseurlhttps://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/7.0/x86_64/ gpgcheck1 enabled1 gpgkeyhttps://www.mongodb.org/static/pgp…...

数据库回表介绍

索引覆盖 索引覆盖或称为覆盖索引,是数据库中的一种优化手段当我们在执行一个sql查询时,如果只需要查询某几个字段的值,并且这几个字段的数据都已经被包含在某一个索引中(而不是全表扫描),那么数据库引擎就会直接通过这个索引来取…...

python多继承的3C算法

python多继承的3C算法 有很多地方都说python多继承的继承顺序,是按照深度遍历的方式,其实python多继承顺序的算法,不是严格意义上的深度遍历,而是基于深度遍历基础上优化出一种叫3C算法 python多继承的深度遍历 class C:def ru…...

掌握Python编程的深层技能

一、Python基础语法、变量、列表、字典等运用 1.运行python程序的两种方式 1.交互式即时得到程序的运行结果 2.脚本方式把程序写到文件里(约定俗称文件名后缀为.py),然后用python解释器解释执行其中的内容2.python程序运行的三个步骤 python3.8 C:\a\b\c.py 1.先启动python3…...

Echarts地图实现:各省市计划录取人数

Echarts地图实现:各省市计划录取人数 实现功能 本文将介绍如何使用 ECharts 制作一个展示中国人民大学2017年各省市计划录取人数的地图。我们将实现以下图表形式: 地图:基础的地图展示,反映不同省市的录取人数。散点图&#xf…...

shell脚本if/else使用示例

if判断字符串是否为空实例if判断整数是否为奇数实例if判断整数是否为偶数实例if判断整数是否为正数实例if判断整数是否为负数实例输入两个字符串,输出字符串的大小关系输入学生的成绩判断是否合法输入学生的成绩判断是否及格判断平年闰年输入文件判断文件是否是普通…...

【D3.js in Action 3 精译】1.2.2 可缩放矢量图形(二)

当前内容所在位置 第一部分 D3.js 基础知识 第一章 D3.js 简介 1.1 何为 D3.js?1.2 D3 生态系统——入门须知 1.2.1 HTML 与 DOM1.2.2 SVG - 可缩放矢量图形 ✔️ 第一部分【第二部分】✔️第三部分(精译中 ⏳) 1.2.3 Canvas 与 WebGL&#x…...

Java中的Monad设计模式及其实现

Java中的Monad设计模式及其实现 在函数式编程中,Monad是一种重要的设计模式,用于处理包含隐含计算信息(如计算顺序、环境、状态、错误处理等)的计算。Monad提供了一种结构,使得可以将计算链式连接起来,每一…...

Dahlia Hart: Stylized Casual Character(休闲角色模型)

此包包含两个发型和两个服装,每个都有多种颜色选择。每个发型都适合与物理资源一起使用,并包含各种表情和音素混合形状。 下载:​​Unity资源商店链接资源下载链接 效果图:...

vector容器

以下是关于vector容器的总结 1、构造容器 2、容器赋值 3、获取容量capacity和大小size 4、插入和删除 5、数据存取 6、互换容器和预留空间 #include <iostream> #include <vector>using namespace std; // vector数据结构和数组非常相似&#xff0c;也称为单端数组…...

二进制常用知识整理<java>

1、进制转换&#xff1a; int转二进制&#xff1a; public static void main(String[] args) {int a 0b100;//0b表示后面的为二进制表示&#xff0c;0开始表示八进制System.out.println(a);System.out.println(Integer.toBinaryString(a));System.out.println(Integer.toStr…...

基于Docker的淘客返利平台部署

基于Docker的淘客返利平台部署 大家好&#xff0c;我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01;在本文中&#xff0c;我们将探讨如何利用Docker技术来部署一个淘客返利平台。Doc…...

【涵子来信科技潮流】——WWDC24回顾与暑假更新说明

期末大关&#xff0c;即将来袭。在期末之前&#xff0c;我想发一篇文章&#xff0c;介绍有关WWDC24的内容和暑假中更新的说明。本篇文章仅为个人看法和分享&#xff0c;如需了解更多详细内容&#xff0c;请通过官方渠道或者巨佬文章进行进一步了解。 OK, Lets go. 一、WWDC24 …...

重温react-08(createContext使用方式)

react中的createContext使用方式 简介一下&#xff0c;就是组件之间可以互相通信的比较好用的传值方式&#xff0c;话不多说直接上代码。 以下介绍的是类组件中的方式&#xff0c;在函数组件中不是如此使用的。 定义一个通用的方法 import { createContext } from "react…...

LInux后台运行程序

测试c代码 #include <stdio.h> #include <unistd.h> int main() {for (int i;; i) {printf("b数值 %d\n", i);fflush(stdout);sleep(3);} }使用CtrlZ可以将当前正在运行的程序放到后台并暂停它。如果你想要继续这个暂停的程序&#xff0c;可以使用fg命令…...

DEBOPIE框架:打造最好的ChatGPT交易机器人

本文介绍了如何利用 DEBOPIE 框架并基于 ChatGPT 创建高效交易机器人&#xff0c;并强调了在使用 AI 辅助交易时需要注意的限制以及操作步骤。原文: Build the Best ChatGPT Trading Bots with my “DEBOPIE” Framework 如今有大量文章介绍如何通过 ChatGPT 帮助决定如何以及在…...

C++ Thead多线程 condition_variable 与其使用场景---C++11多线程快速学习

std::condition_variable 的步骤如下&#xff1a; 创建一个 std::condition_variable 对象。 创建一个互斥锁 std::mutex 对象&#xff0c;用来保护共享资源的访问。 在需要等待条件变量的地方 使用 std::unique_lock<std::mutex> 对象锁定互斥锁 并调用 std::conditio…...

什么是前端开发?

前端开发是什么一种工作&#xff1f;这里以修房子举例&#xff1a; jquery根据数据去生成对应的html代码。首先得有一个html代码的“房屋构造”&#xff0c;然后根据数据去填充“房屋构造”的“血肉”&#xff0c;最后JavaScript通过事件等方法给一砖一瓦修好的房屋添加“灵魂…...

大数据面试题之Spark(1)

目录 Spark的任务执行流程 Spark的运行流程 Spark的作业运行流程是怎么样的? Spark的特点 Spark源码中的任务调度 Spark作业调度 Spark的架构 Spark的使用场景 Spark on standalone模型、YARN架构模型(画架构图) Spark的yarn-cluster涉及的参数有哪些? Spark提交jo…...

Spring Boot 和 Spring Framework 的区别是什么?

SpringFramework和SpringBoot都是为了解决在Java开发过程中遇到的各种问题而出现的。了解它们之间的差异&#xff0c;能够更好的帮助我们使用它们。 SpringFramework SpringFramework是一个开源的Java平台&#xff0c;它提供了一种全面的架构和基础设施来支持Java应用程序的开…...

JVM原理(四):JVM垃圾收集算法与分代收集理论

从如何判定消亡的角度出发&#xff0c;垃圾收集算法可以划分为“引用计数式垃圾收集”和“追踪式垃圾收集”两大类。 本文主要介绍的是追踪式垃圾收集。 1. 分代收集理论 当代垃圾收集器大多遵循“分代收集”的理论进行设计&#xff0c;它建立在两个假说之上&#xff1a; 弱分…...

1961 Springboot自习室预约系统idea开发mysql数据库web结构java编程计算机网页源码maven项目

一、源码特点 springboot 自习室预约管理系统是一套完善的信息系统&#xff0c;结合springboot框架和bootstrap完成本系统&#xff0c;对理解JSP java编程开发语言有帮助系统采用springboot框架&#xff08;MVC模式开发&#xff09;&#xff0c;系统具有完整的源代码和数据库…...

前端面试题(12)答案版

1. H5的新特性&#xff1f; 1) 更加语义化的标签,如<header>、<nav>、<article>等,便于网页结构的表达。 2) 新的多媒体标签,如<video>和<audio>,支持本地视频和音频的播放。 3) 本地存储API,如localStorage和sessionStorage,用于在客户端保存数…...

SpringMVC 域对象共享数据

文章目录 1、使用ServletAPI向request域对象共享数据2、使用ModelAndView向request域对象共享数据3、使用Model向request域对象共享数据4、使用map向request域对象共享数据5、使用ModelMap向request域对象共享数据6、Model、ModelMap、Map的关系7、向session域共享数据8、向app…...

每天五分钟深度学习框架pytorch:tensor向量之间常用的运算操作

本文重点 在数学中经常有加减乘除运算,在tensor中也不例外,也有类似的运算,本节课程我们将学习tensor中的运算 常见运算 加法+或者add import torch import numpy as np a=torch.rand(16,3,28,28) b=torch.rand(1,3,28,28) print(a+b) import torch import numpy as np a…...

【数据结构】(C语言):栈

栈&#xff1a; 线性的集合。后进先出&#xff08;LIFO&#xff0c;last in first out&#xff09;。两个指针&#xff1a;指向栈顶和栈底。栈顶指向最后进入且第一个出去的元素。栈底指向第一个进入且最后一个出去的元素。两个操作&#xff1a;入栈&#xff08;往栈尾添加元素…...

c++类成员指针用法

1&#xff09;C入门级小知识&#xff0c;分享给将要学习或者正在学习C开发的同学。 2&#xff09;内容属于原创&#xff0c;若转载&#xff0c;请说明出处。 3&#xff09;提供相关问题有偿答疑和支持。 c中新增类成员指针操作&#xff0c;为了访问方便&#xff0c;他是指…...

[240625] Continue -- 开源 Copilot | Web-Check 网站分析工具 | Story of EOL

目录 Continue -- 开源 CopilotWeb-Check 网站分析工具Web-Check 提供全面的网站分析功能Web-Check 支持多种部署方式&#xff1a;配置选项开发环境Web-Check 使用多种数据源进行分析 Story of EOLASCII 文本中的换行符问题 Continue – 开源 Copilot 让 Continue 和 Ollama 成…...

【Mac】Auto Mouse Click for Mac(高效、稳定的鼠标连点器软件)软件介绍

软件介绍 Auto Mouse Click for Mac 是一款专为 macOS 平台设计的自动鼠标点击软件&#xff0c;它可以帮助用户自动化重复的鼠标点击操作&#xff0c;从而提高工作效率。以下是这款软件的主要特点和功能&#xff1a; 1.自动化点击操作&#xff1a;Auto Mouse Click 允许用户录…...

javaSE知识点整理总结(下)、MySQL数据库

目录 一、异常 1.常见异常类型 2.异常体系结构 3.异常处理 &#xff08;1&#xff09;finally &#xff08;2&#xff09;throws 二、JDBC 1.JDBC搭建 2.执行SQL语句两种方法 三、MySQL数据库 1.ddl 2.dml 3.dql &#xff08;1&#xff09;字符函数 &#xff08;…...

Perl入门学习

Perl是一种强大的脚本语言&#xff0c;以其灵活性和文本处理能力而闻名&#xff0c;常用于系统管理、Web开发、生物信息学以及数据处理等领域。以下是Perl语言入门学习的一些关键点&#xff1a; ### 1. Perl简介 - **起源与特点**&#xff1a;Perl由Larry Wall在1987年创建&am…...

2024年7月计划(ue5肉鸽视频完成)

试过重点放在独立游戏上&#xff0c;有个indienova独立游戏团队是全职的&#xff0c;由于他们干了几个月&#xff0c;节奏暂时跟不上&#xff0c;紧张焦虑了。五一时也有点自暴自弃了&#xff0c;实在没必要&#xff0c;按照自己的节奏走即可。精力和时间也有限&#xff0c;放在…...

恢复策略(上)-撤销事务(UNDO)、重做事务(REDO)

一、引言 利用前面所建立的冗余数据&#xff0c;即日志和数据库备份&#xff0c;要将数据库从一个不一致的错误状态恢复到一个一致性状态&#xff0c;还需要相关的恢复策略&#xff0c;不同DBMS的事务处理机制所采用的缓冲区管理策略可能不同&#xff0c;发生故障后的数据库不…...

【鸿蒙学习笔记】位置设置

官方文档&#xff1a;位置设置 目录标题 align&#xff1a;子元素的对齐方式direction&#xff1a;官方文档没懂&#xff0c;看图理解吧 align&#xff1a;子元素的对齐方式 Stack() {Text(TopStart)}.width(90%).height(50).backgroundColor(0xFFE4C4).align(Alignment.TopS…...

41.HOOK引擎设计原理

上一个内容&#xff1a;41.HOOK引擎设计原理 在一个游戏里通过hook来完成各种各样的功能&#xff0c;比如hook点是a、b、c&#xff0c;然后a点会有它自己所需要的hook逻辑&#xff0c;b、c也是有它们自己的hook逻辑&#xff08;hook逻辑指的是hook之后要做的事&#xff09;&am…...

STM32启动流程 和 map文件的作用

一&#xff0c;启动流程 1. 复位/上电 2. 根据 BOOT0/BOOT1 确定程序从哪个存储位置执行 3. 初始化 SP 及 PC 指针 将 0X08000000 位置的栈顶地址存放在 SP 指针中 将 0x08000004 位置存放的向量地址装入 PC 程序计数器 4. 初始化系统时钟 5. 初始化用户堆栈 6. 进入main函数 二…...

华为昇腾×实在智能:让国产AI科技实实在在“飞得更高”

近年来&#xff0c;华为与实在智能合作持续深入&#xff0c;实在智能TARS大模型、实在Agent、IDP、IPA和RPA等模型和产品已广泛适配华为Kunpeng 920芯片、麒麟、统信等openEuler系列操作系统&#xff0c;基于华为“鲲鹏昇腾”的多样性算力底座和实在智能人工智能和超级自动化解…...

JAVA导出数据库字典到Excel

文章目录 1、查询某张表字段信息2、TableVo接收sql查询得到的数据3、excel导出4、导出案例 1、查询某张表字段信息 select column_name as columnName, -- 字段名 COLUMN_DEFAULT as colDefault, -- 默认值 column_key as columnKey, -- PRI-主键&#xff0c;UNI-唯一键&…...

Python脚本:将Word文档转换为Excel文件

引言 在文档处理中&#xff0c;我们经常需要将Word文档中的内容转换成其他格式&#xff0c;如Excel&#xff0c;以便更好地进行数据分析和报告。针对这一需求&#xff0c;我编写了一个Python脚本&#xff0c;能够批量处理指定目录下的Word文档&#xff0c;将其内容结构化并转换…...

C++ 类和对象 构造函数

一 类的6个默认成员函数&#xff1a; 如果一个类中什么成员都没有&#xff0c;简称为空类。 例&#xff1a; #include <iostream> class Empty {// 空类&#xff0c;什么成员都没有 }; 空类中真的什么都没有吗&#xff1f;并不是&#xff0c;任何类在什么都不写时&a…...

表单长时间无响应,页面失效提示

先贴代码&#xff0c;有时间在解释 <template><div :class"$style.root"><div>主页面</div><el-input v-model"txt" input"onChange" /></div> </template> <script> const TIME 10; //时间&…...

PyCharm中如何将某个文件设置为默认运行文件

之前在使用JetBrain公司的另一款软件IDEA的时候&#xff0c;如果在选中static main函数后按键altenter可以默认以后运行Main类的main函数。最近在使用PyCharm学习Python&#xff0c;既然同为一家公司的产品而且二者的风格如此之像&#xff0c;所以我怀疑PyCharm中肯定也有类似的…...

7.2秒!大众途昂尊荣四驱高速极限测试

大众途昂高速极限测试。你想知道大众途昂尊荣四驱在高速上的极限速度吗?今天来进行一场高速极限测试。动力方面搭载一台2.5TV6发动机,最大马力为299匹,最大扭矩为500牛米,官方百公里加速时间为7.2秒。大众途昂尊荣四驱是一款以性能出色、操控稳定而著称的SUV车型,无论是越…...

售24.69万元,智己L6新车型上市!产品力如何?

近日,智己旗下新车——2024款智己L6 Max 长续航欧版正式上市!定位为纯电中大型轿车。新车为新增车型,共推出了1款车型,售价为24.69万元,产品力如何呢?具体来了解一下!首先来看外观方面,新车采用了纯电车型惯用的封闭式格栅设计,搭配两侧个性犀利的大灯组,内部结构清晰…...

美国电动汽车电力需求跃升至新高

盖世汽车讯 据外媒报道,随着美国电动汽车保有量的持续提升,此类车型的电力消耗也迎来了提升。2024年前两个月中,美国电动汽车的用电量同比跃升了50%以上。美国能源信息署发布的数据显示,今年前2个月,美国电动汽车总用电量为158万MWh,而2023年同期为104万MWh。与2023年同期…...

Facebook:社交世界的接口

在当今数字时代&#xff0c;社交媒体已经成为了人们生活中不可或缺的一部分&#xff0c;而Facebook作为其中的巨头之一&#xff0c;扮演着至关重要的角色。本文将带您深入探索Facebook这张社交世界的画卷&#xff0c;全面了解这个令人着迷的平台。 起源与历程 Facebook的故事始…...

spring session+redis存储session,实现用户登录功能,并在拦截器里面判断用户session是否过期,过期就跳转到登录页面

在Spring应用中&#xff0c;使用Redis存储Session是一种常见的方式&#xff0c;可以实现分布式环境下的Session管理。以下是实现用户登录功能&#xff0c;并在拦截器中判断Session是否过期并跳转到登录页面的基本步骤&#xff1a; 添加依赖&#xff1a;首先&#xff0c;确保你的…...

mysql中的内连接与外连接

在MySQL中&#xff0c;内连接和外连接是用于从多个表中检索数据的两种不同的连接方式。 内连接&#xff08;INNER JOIN&#xff09;&#xff1a; 内连接返回两个表之间匹配的行。它只返回两个表中共同匹配的行&#xff0c;如果在一个表中没有匹配到对应的行&#xff0c;则不会显…...