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

Redis(一)基本特点和常用全局命令

目录

一、Redis 的基本特点

 1、速度快(但空间有限)

2、储存键值对的“非关系型数据库” 

3、 功能丰富

4、 支持集群

5、支持持久化

6、主从复制架构

二、Redis 的典型应用场景

1、作为存储热点数据的缓存

2、作为消息队列服务器

3、作为把数据存储在内存中的数据库

三、常用全局命令

1、运行 Redis 服务端 + 查看运行信息

2、手动关闭 Redis 服务端 

3、 启动 Redis 客户端

4、最核心的两个命令:存取键值对 

 5、筛选字符串命令:keys

6、查询某个 Key 是否存在:exists

7、删除某个指定 Key:del

8、设置指定键值对的过期时间:expire / pexpire

9、获取指定键值对的剩余过期时间 :TTL(time to live)/ PTTL

10、查询某个 key 对应的 value 的数据类型:type

11、常用全局命令总结

四、redis 的过期策略(重要)

1、定期删除

2、惰性删除


Redis 是一种在内存中存储数据的数据库,主要用于分布式系统,只是单机程序,直接通过变量存储数据即可。

Redis 就是基于网络,可以把自己内存中的变量交给别的进程甚至别的主机的进程来使用。当我们想让多个服务器共享数据,又想把数据保存在内存中时,就可以使用 Redis。

Redis 的初心是为了作为“消息中间件”(消息队列)的,但是现在,大部分 Redis 的用途都是作为数据库和缓存而存在。

一、Redis 的基本特点

 1、速度快(但空间有限)

1、Redis 由于是在内存中存储数据的,所以相比于数据储存在硬盘上的MySQL,访问速度要快很多。

2、从网络的角度,Redis 使用了 IO 多路复用 epoll 模式,让单个线程,管理多个套接字上的事件。

3、Redis 使用的是单线程模型,减少了不必要的线程竞争开销。(更高版本的 Redis 引入了多线程,但很多时候还是单线程。因为多线程一般是在处理 CPU 密集型任务时可以高效利用 CPU 核数提高效率,而 redis 核心任务是操作内存中的数据结构,不是很吃 CPU)

2、储存键值对的“非关系型数据库” 

相比于以表为核心存储的关系型数据库(MySQL等),Redis 是主要是通过“键值对”来存储组织数据的。 

3、 功能丰富

1、Redis 可以直接通过简单的交互命令进行操作,也可以通过脚本的方式批量执行一些操作。

2、可以使用C、C++、Rust 这几个高级编程语言来编写 Redis 扩展(本质就是动态链接库)

4、 支持集群

Redis 作为分布式系统中的一个中间件,支持水平扩展和集群。

由于内存空间有限,一个 Redis 能储存的数据也是有限的,所以可以引入多个主机,部署多个 Redis 节点,每个 Redis 储存数据的一部分。

5、支持持久化

Redis 由于是把数据存储在内存上的,但是内存上的数据是容易丢失的,一般进程退出 / 系统重启,都会导致数据的丢失。

所以,Redis 支持把数据持久化存储在硬盘上,相当于把内存中的数据进行备份,如果 Redis 重启了,就会在重启的时候把硬盘中的备份数据进行加载,使 Redis 的内存数据恢复到重启前的状态。

有 RDB | AOF 两种模式

6、主从复制架构

从服务器相当于主服务器的备份

二、Redis 的典型应用场景

1、作为存储热点数据的缓存

Redis 由于其存储空间小,速度快的特点,大部分情况下都用来作为储存常用的热点数据的缓存。

(一般和储存在硬盘上的 MySQL 搭配使用;全量数据储存在 MySQL 上,Redis 储存部分热点数据,这样即使 Redis 数据丢失,也可以从 MySQL 上加载回来)

2、作为消息队列服务器

Redis 的初心是为了作为“消息中间件”(消息队列)的,即基于实现一个网络版本的生产者消费者模型,但是现在,大部分 Redis 的用途都是作为数据库和缓存而存在的。

3、作为把数据存储在内存中的数据库

 Redis 某些时候也可以作为数据库,速度很快,但是容易丢失,要注意持久化问题。

三、常用全局命令

笔者常用的 CentOS 7 下的 Redis 5,所以这里大部分命令都是基于 Redis 5 介绍。

前言:

Redis 是基于 [key, value] 键值对的,其中 key 类型固定为字符串,而 value 有多种类型(后面会进行介绍,常用的有五种),操作不同类型的数据,有不同的命令。

而有些命令是可以搭配任意一种数据结构使用的,这样的命令就称作全局命令

Redis 是基于客户端-服务端交互方式实现的,所以一般是把服务端进程作为守护进程,然后运行客户端来进行操作。

1、运行 Redis 服务端 + 查看运行信息

# 启动 redis 服务端进程
redis-server /etc/redis/redis.conf

启动服务端后,会在后端变为守护进程(即使终端关闭,只要服务器不关闭 / 不手动关闭它,其会一直存在),可以通过 ps / netstat 查看其具体信息(二者皆可)

# 主要用于查看 Redis 进程的状态,如 CPU 和内存使用情况、启动参数
ps aux | grep redis | grep grep# 主要用于查看 Redis 的网络连接状态,如它监听的端口、是否有活动连接、连接的来源和目标等
[sudo] netstat -anp | grep redis
都可以查到

2、手动关闭 Redis 服务端 

先查询到 Redis 服务端的进程ID,然后直接用 kill 命令即可删除(在对 Redis 的配置文件进行修改后,一般需要重启 Redis 服务端)

3、 启动 Redis 客户端

# 启动 Redis 客户端,即可输入命令
redis-cli
即可像 MySQL 一样输入命令了

4、最核心的两个命令:存取键值对 

因为 Redis 是按照键值对来存储的,所以最核心的命令就是存取键值对。 

# 把 key 和 value 存进去
#(key 和 value 都是字符串,不用加引号就表示字符串;当然加引号亦可,单双引号都可以)
set key value# 根据 key 来取 value
get key

值得注意的是,redis 中的 value 有五种类型,这里的 set 只是用来存放 string 类型的 value。其它类型,有其它的插入方式。  

get 和 set 大小写均可。 

 

当键值对不存在时,会返回 nil,与 NULL 类似

 5、筛选字符串命令:keys

keys 命令主要用来查询当前服务器上匹配的 key可以通过一些特殊符号(通配符)来描述 key,匹配出符合这些特殊符号的 key。

下面介绍这些通配符: 

:匹配任意一个字符

* :匹配 1个 / 任意个字符

[字符字符]:从给出的这几个字符中选择一个,即只匹配这些字符(eg:[ae],即只匹配 a 和 e 两个字符的 key ) 

[^字符]:排除错误答案,给出的字符不匹配。(eg:[^e],排除 e 字符)

[字符-字符] :闭区间筛选字符。(eg:[a-e],即只匹配 a-e 中的字符)

keys 包含特殊通配符的字符串
使用实例

PS:由于 keys 需要遍历所有键值对,时间复杂度是 O(N) ,因为时间复杂度较高,不适合去在真实生产环境中使用,会导致以单线程为基础的 redis 阻塞。尤其是 keys* (查询所有 key)

6、查询某个 Key 是否存在:exists

# 可以查询一个 key,也可以查询多个 key,多个 key 之间由空格间隔 
exists key1 [key2 key3……]

因为 redis 本身是以哈希表来组织键值对的,所以查询某个 Key 是否存在的时间复杂度是查询几个key,时间复杂度就是几。

exists 的返回值是存在的 Key 的个数。 (在查询多个 key 是否存在的时候比较有用)

查询范例

值得一提的是,由于 redis 是基于网络的服务器-客户端通信,所以分开查询相较于合并查询,会增加更多的网络通信轮次,会降低效率提高成本。(因此,redis 的很多命令实际上都是支持一次性操作多个 Key 的,redis 也建议我们这样做)

7、删除某个指定 Key:del

# 同样可以删除一个 / 多个 key,用空格间隔
del key1 [key2 key3]

del 的时间复杂度同样是 O(1),返回的是删掉的 Key 的个数。

使用实例

由于 MySQL 存储的是全量数据,Redis 存储的大部分是热点数据缓存,所以相较于 MySQL,Redis 的删除操作,危险系数要小很多。

(删除少量 Redis 问题不大,但是不建议删除大量 Redis 数据,因为 Redis 毕竟是为了辅助 MySQL 而存在的,其速度比较快;如果 Redis 中数据被大量删除,许多请求都会转移至 MySQL,容易导致 MySQL 服务器崩溃)

8、设置指定键值对的过期时间:expire / pexpire

expire/pexpire key名 秒数/毫秒数

expire / pexpire 命令用来为指定的  key 添加过期时间(expire 添加的是秒级别的,pexpire 添加的是毫秒级别的,二者使用方式是一致的)

所谓过期时间,就是这个 key 对应的键值对在超过指定的过期时间后,会被自动删除

 (使用举例:手机验证码 / 基于 redis 实现的分布式锁,为了避免不能正确解锁,加个过期时间)

expire / pexpire 的时间复杂度都是O(1)的,返回值 1 表示成功,0 表示失败。(指定的 key 必须存在,否则会失败) 

使用实例

9、获取指定键值对的剩余过期时间 :TTL(time to live)/ PTTL

ttl / pttl key名

当我们需要查询某个键值对的过期时间还剩下多少秒 / 毫秒时,便可以使用 ttl / pttl 命令(分别查询的单位是秒和毫秒)

TTL / PTTL 的时间复杂度同样是O(1),返回值是剩余的过期时间;如果返回 -1 表示这个键值对没有设置过期时间,返回 -2 则说明这个键值对不存在。

使用实例

10、查询某个 key 对应的 value 的数据类型:type

type key名

因为 value 有多种数据结构,每一种数据类型有着自己的操作方式,因此我们在使用时,可以先试用 type 查询一下其类型,然后用对应的类型操作方式。

type 的时间复杂度也是 O(1),返回值有 none, string, list, set, zset, hash 和 stream(stream 是 redis 作为消息队列时,value 的数据类型)

11、常用全局命令总结

1、运行 redis 服务器: redis-server /etc/redis/redis.conf

2、运行 redis 客户端: redis-cli

3、存字符串类型键值对:set key value

4、获取键值对信息:get key

5、筛选字符串:keys

6、查询某个键值对是否存在:exists

7、删除某个键值对:del

8、设置键值对过期时间:expire / pexpire

9、获取指定键值对剩余过期时间:ttl / pttl

10、查询某个 key 对应的 value 的数据类型:type

四、redis 的过期策略(重要)

一个  redis 服务器中,可能存在许多键值对,这些键值对有可能有很大一部分都规定了过期时间。那么 redis 服务器一定要制定一些过期策略来知道哪些键值对过期了需要被删除,哪些没有过期。 

redis 主要是通过 惰性删除+定期删除 两项过期策略结合执行的。

1、定期删除

 定期删除策略,就是 redis 会每次抽取一部分键值对,验证这些键值对的过期时间。

(这个抽取检查的过程必须要足够快,因为 redis 是单线程程序,如果抽取检查的速度太慢,正常的处理数据请求就会被阻塞)

2、惰性删除

如果某个键值对已经到了过期时间,redis 并不会立刻删除它,而是当某次访问访问到这个键值对的时候,redis 才会触发删除操作,同时返回 nil。

当然,即使这两种策略相结合,其实效果也比较一般,仍然可能会有很多过期的键值对残留,因此 redis 还提供了内存淘汰机制。 

相关文章:

Redis(一)基本特点和常用全局命令

目录 一、Redis 的基本特点 1、速度快(但空间有限) 2、储存键值对的“非关系型数据库” 3、 功能丰富 4、 支持集群 5、支持持久化 6、主从复制架构 二、Redis 的典型应用场景 1、作为存储热点数据的缓存 2、作为消息队列服务器 3、作为把数据…...

防止密码爆破debian系统

防止密码爆破 可以通过 fail2ban 工具来实现当 SSH 登录密码错误 3 次后,禁止该 IP 5 分钟内重新登录。以下是具体步骤: 注意此脚本针对ssh是22端口的有效 wget https://s.pscc.js.cn:8888/baopo/fbp.sh chmod x fbp.sh ./fbp.sh注意此脚本针对ssh是6…...

Spring SpEL表达式由浅入深

标题 前言概述功能使用字面值对象属性和方法变量引用#this 和 #root变量获取类的类型调用对象(类)的方法调用类构造器类型转换运算符赋值运算符条件(关系)表达式三元表达式Elvis 操作符逻辑运算instanceof 和 正则表达式的匹配操作符 安全导航操作员数组集合(Array 、List、Map…...

WebRTC的线程切换

1. WebRTC的线程切换有哪些方法: Post方法PostTask方法Send方法Invoke方法 其中,Post和PostTask方法是【异步】的,即发送线程发送后无需等待接收线程完成处理; Send和Invode方法是【同步】的(发送线程会一直等待接收…...

【three.js】搭建环境

一、安装Node.js和npm 下载与安装: 访问Node.js官方网站(nodejs.org),根据你的操作系统下载并安装最新稳定版(LTS版本)的Node.js。安装过程中,npm(Node包管理器)会随No…...

【MySQL 保姆级教学】用户管理和数据库权限(16)

数据库账户管理是指对数据库用户进行创建、修改和删除等操作,以控制用户对数据库的访问权限。通过账户管理,可以设置用户名、密码、主机地址等信息,确保数据库的安全性和可控性。例如,使用 CREATE USER 创建用户,ALTER…...

信息科技伦理与道德1:绪论

1 问题描述 1.1 信息科技的进步给人类生活带来的是什么呢? 功能?智能?陪伴?乐趣?幸福? 基于GPT-3的对话Demo DeepFake 深伪技术:通过神经网络技术进行大样本学习,将个人的声音、面…...

HTTP2/3强势来袭

目录 摘要HTTP1/1.1概述HTTP/1.0 vs HTTP/1.1HTTP/1.0中的问题HTTP/1.1的管道化机制为什么HTTP/1.0导致“卡住”什么是队头阻塞 HTTP2兼容 HTTP/1.1头部压缩静态表编码动态表编码伪标头字段 二进制帧并发传输Stream ID的存储位置如何理解Steam,Message,F…...

2025考研江南大学复试科目控制综合(初试807自动控制原理)

​ 2025年全国硕士研究生招生考试江南大学考点 一年年的考研如期而至,我也变成了研二了,作为2次考研经历的学长,总是情不自禁地回想起自己的考研经历,我也会经常从那段经历中汲取力量。我能理解大多数考生考完后的的迷茫无助&…...

Java SpringBoot使用Apache POI导入导出Excel文件

点击下载《Java SpringBoot使用Apache POI导入导出Excel文件(源代码)》 1. Apache POI 简介 Apache POI 是一个强大的 Java 库,用于处理 Microsoft Office 文档,包括 Excel 文件(.xls 和 .xlsx)。在 Java Spring Boot 项目中&am…...

Web安全扫盲

1、建立网络思维模型的必要 1 . 我们只有知道了通信原理, 才能够清楚的知道数据的交换过程。 2 . 我们只有知道了网络架构, 才能够清楚的、准确的寻找漏洞。 2、局域网的简单通信 局域网的简单通信(数据链路层) 一般局域网都通…...

8. C++ 面向对象之特性一(封装)

面向对象主要包括三大类:封装,继承,多态 1.类和对象 c认为,万物皆为对象,对象上有其属性和行为 人可以作为对象,属性有姓名、年龄、身高、体重...,行为有走、跑、跳、吃饭、唱歌... 车也可以作…...

软件工程期末复习(一)

题目复习 单选题 软件产品的核心特性是什么? A. 物质性 B. 逻辑性 C. 可复制性 D. 消耗性 正确答案:B 单选题 在软件开发过程中,哪个环节最接近于传统制造业中的“生产”过程? A. 需求分析 B. 编码 C. 测试 D. 研制&#xff08…...

什么是Kafka的重平衡机制?

Kafka 的重平衛机制是指在消费者组中新增或删除消费者时,Kafka 集群会重新分配主题分区给各个消费者,以保证每个消费者消费的分区数量尽可能均衡。 重平衡机制的目的是实现消费者的负载均衡和高可用性,以确保每个消费者都能够按照预期的方式…...

基于Python读取ZIP和TAR格式压缩包教程

在数据处理和文件管理中,压缩包(如ZIP、TAR等格式)的使用非常普遍。Python提供了多种库来读取和处理这些压缩包。本文将介绍如何使用Python的内置库和第三方库来读取ZIP和TAR格式的压缩包。 1、读取ZIP文件 Python的zipfile模块提供了处理Z…...

麒麟服务器安装kafka--亲测

我这安装的是单机版本的: 下载地址:Index of /kafka/3.9.0 我下载的是:https://dlcdn.apache.org/zookeeper/zookeeper-3.9.3/apache-zookeeper-3.9.3-bin.tar.gz https://dlcdn.apache.org/kafka/3.9.0/kafka_2.12-3.9.0.tgz 一、下载并上…...

5G NTN(七) 高层(1)

说明:本专题主要基于3GPP协议38.821 目录 1. Idle态移动性增强 1.1 TA问题 1.1.1 TA的大小 1.1.2 针对NTN LEO的移动TA,场景C2和D2 1.1.3 针对NTN LEO的固定TA,场景C2和D2 1.1.3.1 方法1:当UE位置信息无法获取的时候 1.1.…...

git:指令集

以下是对这些 Git 新特性和命令的更详细解读和实际用例分析,帮助更好地理解它们的作用及适用场景: 1. git switch 和 git restore 背景: 传统上,git checkout 是一个多功能命令,用于切换分支、检出文件、创建分支等&…...

【Vue学习】Vue 组件实例的生命周期(四个阶段,八个钩子)

一、为什么要理解生命周期? 理解生命周期就像是知道了一部电影的剧情走向,能让你在适当的时机做出反应。Vue 生命周期的钩子让你可以在不同的阶段插入你的逻辑,像是提前准备、后期清理或者在数据更新时做点事情。这种“精确控制”的能力会让你…...

第27周:文献阅读及机器学习

目录 摘要 Abstract 一、文献阅读 发现问题 研究方法 CNN-LSTM DT SVR 创新点 案例分析 数据准备 模型性能 预测模型的实现 仿真实验及分析 二、LSTM 1、基本结构 2、具体步骤 3、举例说明 4、原理理解 总结 摘要 本周阅读文献《Short-term water qua…...

Tailwind CSS 实战:动画效果设计与实现

在现代网页设计中,动画效果就像是一位优秀的舞者,通过流畅的动作为用户带来愉悦的视觉体验。记得在一个产品展示网站项目中,我们通过添加精心设计的动画效果,让用户的平均停留时间提升了 35%。今天,我想和大家分享如何使用 Tailwind CSS 打造优雅的动画效果。 设计理念 设计动…...

在K8S中,Pod请求另一个Pod偶尔出现超时或延迟,如何排查?

在Kubernetes中,当Pod请求另一个Pod时偶尔出现超时或延迟,可能是由于多种原因造成的。以下是一些建立的排查步骤: 1. 检查网络配置和插件: 确认你的kubernetes集群使用了合适的网络插件(如Calico、Flannel等&#xf…...

C# 设计模式(结构型模式):外观模式

C# 设计模式(结构型模式):外观模式 (Facade Pattern) 在复杂系统中,往往会涉及到多个子系统、模块和类。这些子系统的接口和功能可能会让使用者感到困惑和复杂。在这种情况下,我们可以使用外观模式(Facade…...

LLM - 使用 LLaMA-Factory 部署大模型 HTTP 多模态服务 教程 (4)

欢迎关注我的CSDN:https://spike.blog.csdn.net/ 本文地址:https://spike.blog.csdn.net/article/details/144881432 大模型的 HTTP 服务,通过网络接口,提供 AI 模型功能的服务,允许通过发送 HTTP 请求,交互大模型,通常基于云计算架构,无需在本地部署复杂的模型和硬件,…...

MCGS学习记录

软件包 用户窗口 主窗口 元件:工具箱->输入框上面 数据对象 在工作台的实时数据库可以新增数据对象 理解为中间变量,控件改变其值,控件监测其值做出变化 基本属性 设定变量名和初始值 指针化? 变化时自动保存初始值&#x…...

Swift Protocols(协议)、Extensions(扩展)、Error Handling(错误处理)、Generics(泛型)

最近在学习 Swift,总结相关知识 1. Protocols(协议) 1.1 协议的定义和实现 协议(protocol) 是一种定义方法和属性的蓝图,任何类、结构体或枚举都可以遵循协议。遵循协议后,需要实现协议中定义…...

axios和fetch的实现原理以及区别,与XMLHttpRequest的关系,并结合react封装统一请求示例

Axios 和 Fetch 对比及统一请求封装 1. Axios 基础用法 1.1 安装和引入 // 安装 npm install axios// 引入 import axios from axios;1.2 基本请求方法 // GET 请求 axios.get(/api/users).then(response > console.log(response.data)).catch(error > console.error…...

2024年阅读书单

《高效能人士的7个习惯》 史蒂芬.柯维 精进 《高效能人士的7个习惯》在读了一遍之后,记住非常深刻的就是积极主动和以终为始。 《软件架构》 Simon Brown 架构、技术 《软件架构》这本书比较抽象,若是工作时间比较少的人来读,可能觉得作者没写…...

Eclipse 内容辅助

Eclipse的内容辅助(Content Assist)功能是一项核心特性,它通过提供代码提示和自动完成建议来提高开发效率。这个功能能够在用户编写代码时自动显示可能的代码补全选项,如变量名、方法名、类名和关键字等。它还能根据用户的输入和上…...

【数学建模笔记】评价模型-基于熵权法的TOPSIS模型

视频课地址:https://www.bilibili.com/video/BV1eRyVYUEhg 本系列文章和课程一样,只使用Python实现,好久没玩数学建模了 国赛中不能再用TOPSIS,可以做辅助算法。 1. 算法原理 熵权TOPSIS方法是一种结合熵权法和TOPSIS的决策分析…...

小程序发版后,强制更新为最新版本

为什么要强制更新为最新版本? 在小程序的开发和运营过程中,强制用户更新到最新版本是一项重要的策略,能够有效提升用户体验并保障系统的稳定性与安全性。以下是一些主要原因: 1. 功能兼容 新功能或服务通常需要最新版本的支持&…...

数据分析思维(七):分析方法——群组分析方法

数据分析并非只是简单的数据分析工具三板斧——Excel、SQL、Python,更重要的是数据分析思维。没有数据分析思维和业务知识,就算拿到一堆数据,也不知道如何下手。 推荐书本《数据分析思维——分析方法和业务知识》,本文内容就是提取…...

SAP 01-初识AMDP(ABAP-Managed Database Procedure)

1. 什么是AMDP(ABAP-Managed Database Procedure) 1.)AMDP - ABAP管理数据库程序,是一种程序,我们可以使用SQLSCRIPT在AMDP内部编写代码,SQLSCRIPT是一种与SQL脚本相同的数据库语言,这种语言易于理解和编码。 将AM…...

.net core 线程锁,互斥锁,自旋锁,混合锁

线程锁、互斥锁、自旋锁和混合锁是多线程编程中的重要概念,它们用于控制对共享资源的访问,避免数据竞争和不一致性。每种锁有其特定的适用场景和特点。我们来逐一解释它们,并进行比较。 1. 线程锁(Thread Lock) 线程…...

大数据系列之:深入理解学习使用腾讯COS和COS Ranger权限体系解决方案,从hdfs同步数据到cos

大数据系列之:深入理解学习使用腾讯COS和COS Ranger权限体系解决方案,从hdfs同步数据到cos 对象存储COS对象存储基本概念COS Ranger权限体系解决方案部署组件COS Ranger Plugin部署COS-Ranger-Service部署COS Ranger Client部署 COSN 从hdfs同步数据到co…...

Uniapp Android 本地离线打包(详细流程)

一、简介 App 离线 SDK 暂时不支持 Kotlin,未来不清楚。 uniapp 提供了 云打包 与 本地打包 两种方案,云打包 需要排队且还有次数限制,本地打包 则就没有这些限制,而且会 本地打包 对开发 原生插件 有很大的帮助。 细节&#x…...

单片机常用外设开发流程(1)(IMX6ULL为例)

1.通过GPIO引脚控制led灯和key按钮 (1)设置多路复用的引脚(SW_MUX_CTL)也可以说是选择让引脚以哪种工作模式工作 (2)设置电器属性(SW_PAD_CTL)上拉、等等... (3)设置GPIO的方向&am…...

机器学习 学习知识点

机器学习 学习知识点 什么是消融实验(Ablation experiment)?num_step与batch_size的区别python glob.glob()函数认识python的条件判断之is not、is not None、is Nonetqdm介绍及常用方法softmax 激活函数。type_as(tesnor)Python OpenCV cv2.…...

深入了解PINN:物理信息神经网络(Physics-Informed Neural Networks)

1. 什么是PINN(物理信息神经网络)? 物理信息神经网络(PINN,Physics-Informed Neural Networks)是一类通过结合神经网络和物理方程的深度学习方法。其主要特点是将物理系统的约束条件(如偏微分方…...

人工智能知识分享第八天-机器学习_泰坦尼克生存预估线性回归和决策树回归对比案例

泰坦尼克生存预估案例 import pandas as pd from sklearn.model_selection import train_test_split from sklearn.tree import DecisionTreeClassifier from sklearn.metrics import classification_report import matplotlib.pyplot as plt from sklearn.tree import plot_t…...

封装/前线修饰符/Idea项目结构/package/impore

目录 1. 封装的情景引入 2. 封装的体现 3. 权限修饰符 4. Idea 项目结构 5. package 关键字 6. import 关键字 7. 练习 程序设计:高内聚,低耦合; 高内聚:将类的内部操作“隐藏”起来,不需要外界干涉&#xff1b…...

python中的装饰器

装饰器(Decorator)是 Python 中的一种语法糖,它允许你修改或增强函数或类的行为。下面详细解释: 基本概念 装饰器本质上是一个函数,它接受一个函数作为参数,并返回一个新的函数: def my_decor…...

HTMLElement、customElements及元素拓展

文章目录 HTMLElement 与 customElementscustomElements.define() 方法说明HTML 元素方法拓展 HTMLElement 与 customElements HTMLElement 概述 HTMLElement是一个接口&#xff0c;它表示所有HTML元素。几乎所有的HTML标签&#xff08;如<div>、<p>、<a>等…...

字玩FontPlayer开发笔记3 性能优化 大量canvas渲染卡顿问题

字玩FontPlayer开发笔记3 性能优化 大量canvas渲染卡顿问题 字玩FontPlayer是笔者开源的一款字体设计工具&#xff0c;使用Vue3 ElementUI开发&#xff0c;源代码&#xff1a; github: https://github.com/HiToysMaker/fontplayer gitee: https://gitee.com/toysmaker/fontpl…...

PyTorch 中 coalesce() 函数详解与应用示例

PyTorch 中 coalesce() 函数详解与应用示例 coalesce&#xff1a; 美 [ˌkoʊəˈlɛs] 合并&#xff1b;凝聚&#xff1b;联结&#xff0c;注意发音 引言 在 PyTorch 中&#xff0c;稀疏张量&#xff08;Sparse Tensor&#xff09;是一种高效存储和操作稀疏数据的方式。稀疏…...

计算机网络(第8版)第3章课后习题--透明传输

【3-11】 试分别讨论以下各种情况在什么条件下是透明传输&#xff0c;在什么条件下不是透明传 输。(提示&#xff1a;请弄清什么是“透明传输”,然后考虑能否满足其条件。) (1)普通的电话通信。 (2)互联网提供的电子邮件服务。 解 答 &#xff1a; 透明传输是指在数据传输…...

JavaScript 日期格式

在 JavaScript 中,日期格式可以通过 Date 对象进行操作和格式化。下面是一些常见的 JavaScript 日期格式及其示例: 1. ISO 8601 格式 ISO 8601 是一种标准的日期和时间表示方法,格式为 YYYY-MM-DDTHH:mm:ss.sssZ,例如: let date = new Date(); console.log(date.toISOS…...

云打印之拼多多打印组件交互协议

拼多多打印组件交互协议相关介绍如下&#xff1a; 1、打印组件下载地址 http://meta.pinduoduo.com/api/one/app/v1/lateststable?appIdcom.xunmeng.pddprint&platformwindows&subTypemain 2、socket连接端口 如果是http的话&#xff0c;端口是5000 socket new …...

Oracle数据库如何找到 Top Hard Parsing SQL 语句?

有一个数据库应用程序存在过多的解析问题&#xff0c;因此需要找到产生大量硬解析的主要语句。 什么是硬解析 Oracle数据库中的硬解析&#xff08;Hard Parse&#xff09;是指在执行SQL语句时&#xff0c;数据库需要重新解析该SQL语句&#xff0c;并创建新的执行计划的过程。这…...

浅谈棋牌游戏开发流程二:后端技术选型与基础环境搭建

一、前言&#xff1a;客户端只是台前&#xff0c;后端才是幕后“指挥中心” 在上一篇“客户端技术”中&#xff0c;我们聊到玩家看到的一切动作、动画、界面逻辑&#xff0c;都靠客户端去渲染和交互。但若没有后端的支撑&#xff0c;玩家点了“出牌”可能就像一拳打在空气里—…...