[Redis#7] set | 命令 | 集合 | 用户画像 | UV
目录
1. 特点
2. 常用命令
2.1 普通命令
2.2 集合间操作
2.3. 命令小结
3.内部编码
4. 应用场景
1. 构造用户画像
2. 计算用户之间的共同好友
3. 统计 UV
1. 特点
集合类型也是保存多个字符串类型的元素的,和 list 类型不同的是:
- 无序性:集合中的元素没有顺序。
- 唯一性:集合中的元素不允许重复。
容量:一个集合最多可以存储 (2^{32} - 1) 个元素。
- Redis除了⽀持集合内的增删查改操作,同时还⽀持多个集合取交集、并集、差集,合理地使⽤好集合类型,能在实际开发中解决很多问题
- set 中的元素,叫做 member
2. 常用命令
2.1 普通命令
SADD
- 描述:将一个或多个元素添加到集合中。
- 语法:
SADD key member [member ...]
- 时间复杂度:O(1)
- 返回值:本次添加成功的元素个数。
- 示例:
redis> SADD myset "Hello"
(integer) 1
redis> SADD myset "World"
(integer) 1
redis> SADD myset "World"
(integer) 0
第一次sadd
,set1
不存在,此时创建集合并且插入1 2 3
,返回3
表示成功插入三个数字。第二次sadd
,由于数字2 3
已经存在,所以只插入了4 5
,返回2
表示成功插入两个元素。
SMEMBERS
- 描述:获取集合中的所有元素。
- 语法:
SMEMBERS key
- 时间复杂度:O(N)
- 返回值:所有元素的列表。
- 示例:
redis> SMEMBERS myset
1) "Hello"
2) "World"
S IS MEMBER
- 描述:判断一个元素是否在集合中。
- 语法:
SISMEMBER key member
- 时间复杂度:O(1)
- 返回值:1 表示元素在集合中,0 表示不在或 key 不存在。
- 示例:
redis> SISMEMBER myset "one"
(integer) 1
redis> SISMEMBER myset "two"
(integer) 0
SCARD
-
- 描述:获取集合的基数(元素个数)。
- 语法:
SCARD key
- 时间复杂度:O(1)
- 返回值:集合中的元素个数。
- 示例:
redis> SCARD myset
(integer) 2
SPOP
-
- 描述:从集合中删除并返回一个或多个元素。
- 语法:
SPOP key [count]
- 时间复杂度:O(N),N 是 count
- 返回值:取出的元素。
- 注意:由于
set
内的元素是⽆序的,所以取出哪个元素实际是未定义⾏为,即可以看作随机的 - 示例:
redis> SPOP myset
"one"
redis> SPOP myset 3
1) "three"
2) "four"
3) "two"
官方文档中声明,spop
得到的值是随机的,就算是两个相同的集合,同样的操作得到的值也不一样。因为Redis
源码中给spop
增加了一个生成随机成员的过程,是真正做了随机功能。
SRANDMEMBER
- 获取
set
中的随即元素
srandmember key [count]
返回随机获取到的元素,count
表示要获取的元素个数。
、
SMOVE
-
- 描述:将一个元素从源集合移动到目标集合。
- 语法:
SMOVE source destination member
- 时间复杂度:O(1)
- 返回值:1 表示移动成功,0 表示失败。
- 示例:
redis> SMOVE myset myotherset "two"
(integer) 1
此处将set2
中的666
元素移动到了set1
中。
在移动过程中,可能出现以下两种情况:
member
已经在destination
中存在,此时会将member
从source
中删除,并且spop
返回1
视为移动成功member
在source
中不存在,此时spop
返回0
,表示移动失败
SREM
-
- 描述:将指定的元素从集合中删除。
- 语法:
SREM key member [member ...]
- 时间复杂度:O(N),N 是要删除的元素个数。
- 返回值:本次操作删除的元素个数。
- 示例:
redis> SREM myset "one"
(integer) 1
2.2 集合间操作
除了基本的集合命令,Redis
还提供了集合之间的一些命令。
set
支持交集(inter
)、并集(union
)、差集(diff
)
- SINTER
-
- 描述:获取给定集合的交集。
- 语法:
SINTER key [key ...]
- 时间复杂度:O(N * M),N 是 最小的集合元素个数,M 是最大的集合元素个数。
- 返回值:交集的元素。
- 示例:
redis> SINTER key1 key2
1) "c"
- SINTER STORE
-
- 描述:获取给定集合的交集 并保存到目标集合中。
- 语法:
SINTERSTORE destination key [key ...]
- 时间复杂度:O(N * M),N 是最小的集合元素个数,M 是最大的集合元素个数。
- 返回值:交集的元素个数。
- 示例:
redis> SINTERSTORE key key1 key2
(integer) 1
此处将set1
和set2
的交集输出到set4
中,sinterstore
返回3
表示交集有三个元素。
- SUNION
-
- 描述:获取给定集合的并集。
- 语法:
SUNION key [key ...]
- 时间复杂度:O(N),N 是给定的所有集合的总元素个数。
- 返回值:并集的元素。
- 示例:
redis> SUNION key1 key2
1) "a"
2) "c"
3) "e"
4) "b"
5) "d"
- SUNION STORE
-
- 描述:获取给定集合的并集 并保存到目标集合中。
- 语法:
SUNIONSTORE destination key [key ...]
- 时间复杂度:O(N),N 是给定的所有集合的总元素个数。
- 返回值:并集的元素个数。
- 示例:
redis> SUNIONSTORE key key1 key2
(integer) 5
- SDIFF
-
- 描述:获取给定集合的差集。
- 语法:
SDIFF key [key ...]
- 时间复杂度:O(N),N 是给定的所有集合的总元素个数。
- 返回值:差集的元素。
- 示例:
redis> SDIFF key1 key2
1) "a"
2) "b"
- SDIFFSTORE
-
- 描述:获取给定集合的差集 并保存到目标集合中。
- 语法:
SDIFFSTORE destination key [key ...]
- 时间复杂度:O(N),N 是给定的所有集合的总元素个数。
- 返回值:差集的元素个数。
- 示例:
redis> SDIFFSTORE key key1 key2
(integer) 2
2.3. 命令小结
命令 | 时间复杂度 |
SADD key element [element ...] | O(k),k 是元素个数 |
SREM key element [element ...] | O(k),k 是元素个数 |
SCARD key | O(1) |
SISMEMBER key element | O(1) |
SRANDMEMBER key [count] | O(n),n 是 count |
SPOP key [count] | O(n),n 是 count |
SMEMBERS key | O(k),k 是元素个数 |
SINTER key [key ...] / SINTERSTORE | O(m * k),k 是几个集合中元素最少的个数,m 是键个数 |
SUNION key [key ...] / SUNIONSTORE | O(k),k 是多个集合的元素个数总和 |
SDIFF key [key ...] / SDIFFSTORE | O(k),k 是多个集合的元素个数总和 |
3.内部编码
1.intset(整数集合)
- 当集合中的元素都是整数
- 并且元素的个数⼩于set-max-intset-entries配置(默认512个)时
Redis会选⽤intset来作为集合的内部实现,从⽽减少内存的使⽤
2.hashtable(哈希表)
- 当集合类型不满足以上条件,也就是成员数量太多,或者有成员不是
int
,那么采用hashtable
哈希表来实现set
。
4. 应用场景
1. 构造用户画像
- 标签保存:平台可以通过获取用户的信息和根据用户的浏览记录来分析用户的特征,给用户打标签。
-
- 示例:分析出用户是青年,就在 set 中加入 "青年" 标签;如果是男性,加入 "男性" 标签。可以来实现 一个用户的画像
- 命令:
sadd user:1:tags "青年" "男性"
- 标签共享:如果两家公司有商业合作,可以共享用户的标签。获取到其他公司的标签后,加入到自己的标签集中,自动去重。
-
- 示例:
sadd user:1:tags tag1 tag2 tag5
sadd user:2:tags tag2 tag3 tag5
...
sadd user:k:tags tag1 tag2 tag4
- 思考:所以 我们平时看到的信息推送,其实是存在 信息茧房 的
2. 计算用户之间的共同好友
- 功能实现:QQ 等社交平台常用此功能,基于集合 求交集来实现好友推荐。
-
- 示例:A 和 B 是好友,A 和 C 是好友,B 和 C、D 是好友,系统会把 D 推荐给 A。
- 命令:
sadd user:A:friends B C
sadd user:B:friends A C D
sinter user:A:friends user:B:friends
3. 统计 UV
- 去重功能:主要用于统计独立访客数(UV),每个用户访问服务器会产生 UV,但同一用户多次访问不会增加 UV。
-
- 示例:存储在 set 中的 UV 会按用户去重。
- 命令:
sadd uv_set user1
sadd uv_set user2
sadd uv_set user1 # 不会增加 UV
scard uv_set # 获取 UV 数量
总结
- 用户画像:通过标签管理和共享,构建详细的用户画像。
- 共同好友:利用集合 求交集,推荐潜在的好友。
- UV 统计:利用集合的 去重功能,准确统计独立访客数。
相关文章:
[Redis#7] set | 命令 | 集合 | 用户画像 | UV
目录 1. 特点 2. 常用命令 2.1 普通命令 2.2 集合间操作 2.3. 命令小结 3.内部编码 4. 应用场景 1. 构造用户画像 2. 计算用户之间的共同好友 3. 统计 UV 1. 特点 集合类型也是保存多个字符串类型的元素的,和 list 类型不同的是: 无序性&…...
中介者模式 (Mediator Pattern)
文章目录 中介者模式 (Mediator Pattern)原理优点缺点示例代码场景描述1. 定义中介者接口2. 实现具体中介者3. 定义同事类接口4. 实现具体同事类5. 客户端代码输出结果 UML 类图使用场景小结 中介者模式 (Mediator Pattern) 中介者模式是一种 行为型设计模式,用来降…...
PVE 软路由单网口——VLAN 实践
从VLAN交换机出发,到PVE的Linux Bridge 、Linux VLAN,再到iKuai等软路由软件的设置,尽可能的了解VLAN设置细节,避免踩坑。 本文使用的快速切换CIDR的脚本 PVE 调试之“一键设置网络连接的以太网的CIDR“——“.PS1 脚本” 默认…...
搭建一个基于Web的文档管理系统,用于存储、共享和协作编辑文档
搭建一个基于Web的文档管理系统,用于存储、共享和协作编辑文档 本项目采用以下架构: NFS服务器: 负责存储文档资料。Web服务器: 负责提供文档访问和编辑功能。SELinux: 负责权限控制,确保文档安全。Git服务器: 负责存储文档版本历史&#x…...
【QT】控件8
1.QDial 通过调节旋钮位置来控制窗口的不透明度: void Widget::on_dial_valueChanged(int value) {qDebug()<<value;this->setWindowOpacity((double)value/100); }效果演示: 2.Date/Time Edit 计算两个日期的差值 ui界面设计 计算按钮按下…...
asyncio.to_thread 详解及示例代码
asyncio.to_thread 详解及示例代码 1. asyncio.to_thread() 简介函数签名返回值 2. 示例代码示例 1: 执行阻塞的 I/O 操作示例 2: 执行阻塞的 CPU 密集型操作 3. 注意事项4. 总结 在异步编程中,asyncio 是 Python 中用于编写异步代码的标准库。然而,有时…...
MYSQL字段变更
修改字段长度 ALTER TABLE tqt_sp_prod.t_receipt_order_head MODIFY COLUMN CUS_CONTRACT_CD VARCHAR(50) COMMENT 客户合同编号;添加varchar类型字段 AFTER 此处指在loc_cd字段后面 ALTER TABLE m_product ADD COLUMN FIXED_ASSET_NUM VARCHAR(100) DEFAULT NULL COMME…...
【通俗理解】步长和学习率在神经网络中是一回事吗?
【通俗理解】步长和学习率在神经网络中是一回事吗? 【核心结论】 步长(Step Size)和学习率(Learning Rate, LR)在神经网络中并不是同一个概念,但它们都关乎模型训练过程中的参数更新。 【通俗解释&#x…...
力扣-位运算-8【算法学习day.48】
前言 ###我做这类文章一个重要的目的还是给正在学习的大家提供方向和记录学习过程(例如想要掌握基础用法,该刷哪些题?)我的解析也不会做的非常详细,只会提供思路和一些关键点,力扣上的大佬们的题解质量是非…...
C++ 字符串中数字识别
【问题描述】 输入一个字符串,含有数字和非数字字符,如“sumabc234;while(abc700)tab{ass346;bssabc267;}”,将其中连续的数字作为一个整数,依次存放到一个数组nums中。例如,234放在nums[0],700放在nums[1…...
计算机毕业设计Python+卷积神经网络股票预测系统 股票推荐系统 股票可视化 股票数据分析 量化交易系统 股票爬虫 股票K线图 大数据毕业设计 AI
温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 作者简介:Java领…...
jvm-49-linux 服务器 cpu 使用率升高应该如何排查分析?
拓展阅读 JVM FULL GC 生产问题 I-多线程通用实现 JVM FULL GC 生产问题 II-如何定位内存泄露? 线程通用实现 JVM FULL GC 生产问题 III-多线程执行队列的封装实现,进一步抽象 jvisualvm java 性能分析工具 jvm-44-jvm 内存性能分析工具 Eclipse Me…...
FPGA存在的意义:为什么adc连续采样需要fpga来做,而不会直接用iic来实现
FPGA存在的意义:为什么adc连续采样需要fpga来做,而不会直接用iic来实现 原因ADS111x连续采样实现连续采样功能说明iic读取adc的数据速率 VS adc连续采样的速率adc连续采样的速率iic读取adc的数据速率结论分析 FPGA读取adc数据问题一:读取adc数…...
Web开发基础学习——HTML, CSS, JavaScript 的区别和联系
Web开发基础学习系列文章目录 第一章 基础知识学习之HTML, CSS, JavaScript 的区别和联系 文章目录 Web开发基础学习系列文章目录前言一、定义说白了,就是HTML负责网页的内容,CSS负责网页的格式,JS负责网页的交互。 二、 功能三、联系四、示…...
通义灵码走进北京大学创新课堂丨阿里云云原生 10 月产品月报
云原生月度动态 云原生是企业数字创新的最短路径。 《阿里云云原生每月动态》,从趋势热点、产品新功能、服务客户、开源与开发者动态等方面,为企业提供数字化的路径与指南。 趋势热点 🥇 通义灵码走进北京大学创新课堂,与 400…...
Facebook Messenger背后的技术架构:即时通讯的实现之道
Facebook Messenger,作为全球最受欢迎的即时通讯应用之一,每天承载着数十亿的消息交换。其背后支撑这一流畅通讯体验的技术架构,融合了大量先进的技术和创新的解决方案。本文将从技术角度,深入探讨Facebook Messenger如何实现即时…...
前端css实例
前端css实例 一、带条纹的表格 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>条纹样式的表格<…...
电阻改善信号完整性
1.为什么电路端接电阻能改善信号完整性 由于电信号在PCB上传输,因此在PCB设计中可以把PCB走线认为是信号的通道,当该通道的 物理结构(线宽,线到参考面的距离等)发生变化,特别是有一些突变时,都会…...
如何选择合适的主键id?
目录标题 MySQL主键一定是自增的吗?自增id、uuid、雪花算法 谁更合适?详细聊聊 UUID详细聊聊 雪花算法 在数据库设计中,选择合适的主键对于数据表的性能和数据完整性都非常重要。接下来,让我们探讨一下自增id、uuid和雪花算法&…...
OpenMP出现Stack Overflow及其疑问
今天对着《OpenMP核心技术指南》练习OpenMP,其中一个案例: #include <stdio.h> #include <math.h> #include <omp.h>#define ITER 100000000void main() {int i;double A[ITER];for (i 0; i < ITER; i)A[i] 2.0 * i;#pragma omp parallel{/…...
vscode查找函数调用
在 VS Code 中,要查找 C 语言函数的调用列表,有以下几种方法可以使用,具体取决于项目的规模和你的需求: 方法 1: 使用全局查找功能 步骤: 打开全局查找: 按 CtrlShiftF (Windows/Linux) 或 CmdShiftF (Ma…...
网络安全-网络安全审计
网络安全审计是为了确保网络系统的安全性和完整性,防范潜在的网络攻击和数据泄露风险。 审计步骤: 1.确定审计目标:明确审计的目的和范围,例如审计网络设备、服务器、应用程序或数据库等。 2.收集信息:收集审计范围…...
刷LeetCode hot100--1.哈希表
哈希表--查找一个元素在不在数组/map/set中 目前用到的数据结构: std::unordered_set哈希表无序否否O(1)O(1) std::unordered_map哈希表key无序key不可重复key不可修改O(1)O(1) 1. 两数之和 - 力扣(LeetCode) 30min 几个问题 1.原来想…...
鸿蒙生态崛起的机遇有什么
鸿蒙生态系统的崛起为各个领域带来了多个机遇,主要体现在以下几个方面: 智能设备的互联互通:鸿蒙系统旨在实现不同设备之间的无缝连接,为物联网(IoT)设备的发展提供了良好的基础。这将推动智能家居、智慧城…...
写入json和读取json文件
/// <summary> ///写入文件 /// </summary> /// <param name"Stns"></param> /// <returns></returns> public ActionResult WriteJsonFile(string Stns) { strin…...
【Java基础入门篇】前言
Java基础入门篇 本系列内容主要针对Java基础知识,总共包含四大部分内容: 变量、数据类型和运算符控制语句和递归算法面向对象和JVM底层分析数组和排序 学习需要具备: IDEA编译器 JDK1.8版本 写在前面 在Java入门的最开始,我们需…...
LangChain——管道提示词 缓存
管道提示词 管道提示词可以将多个提示组合在一起。当我们想要使用部分提示时,这会很有用。这里可以通过PipelinePrompt来完成。 PipelinePrompt由两部分组成: 最终提示:返回的最终提示;管道提示:元组列表,…...
LangGPT社区创始人云中江树:用热爱与坚持点燃实战营课堂
书生大模型实战营第 4 期正在火热进行中,在这里,我们见证了众多同学的成长与进步。今天,让我们一起走进第 4 期导师、结构化提示词 LangGPT 社区创始人云中江树的故事。他的故事不仅是对知识改变命运的生动诠释,更是一段关于热爱与…...
Admin.NET框架使用宝塔面板部署步骤
文章目录 Admin.NET框架使用宝塔面板部署步骤🎁框架介绍部署步骤1.Centos7 部署宝塔面板2.部署Admin.NET后端3.部署前端Web4.访问前端页面 Admin.NET框架使用宝塔面板部署步骤 🎁框架介绍 Admin.NET 是基于 .NET6 (Furion/SqlSugar) 实现的通用权限开发…...
18:(标准库)DMA二:DMA+串口收发数据
DMA串口收发数据 1、DMA串口发送数据2、DMA中断串口接收定长数据包3、串口空闲中断DMA接收不定长数据包4、串口空闲中断DMA接收不定长数据包DMA发送数据包 1、DMA串口发送数据 当串口的波特率大于115200时,可以通过DMA1进行数据搬运,以防止数据的丢失。如…...
Unity 导出 xcode 工程 并给 Info.plist 文件添加字段
Unity 导出 xcode 工程 并给 Info.plist 文件添加字段 在 Editor 文件夹下新建 xxx.cs 脚本 实现静态方法 [PostProcessBuild]public static void OnPostprocessBuild(BuildTarget target, string pathToBuiltProject){// Unity 导出 Xcode 工程自动调用这个方法 }例子 一 us…...
打造高质量技术文档的关键要素(结合MATLAB)
在技术的浩瀚海洋中,一份优秀的技术文档宛如精准的航海图。它不仅是知识传承的载体,也是团队协作的桥梁,更是产品成功的幕后英雄。打造出色的技术文档并非易事,以下将从多个方向探讨如何做到这一点。 文章目录 方向一:…...
C语言-数组
数组的创建 数组结构式 数组类型 数组名称 数组大小 内容 列如 char Arr[3]{1,2,3} int Arr[3]{1,2,3} 注意:在C99之前,【】中需要一个常量才可以 数组的初始化 初始化就是给它赋值,初始化分为完全初始化和非完全初始化 完全初始化…...
hhdb数据库介绍(10-19)
监控 智能物理拓扑 物理拓扑图主要以服务器为视角展示集群组件与服务器的所属关系,同时可查看服务器资源的使用情况以及各集群组件服务运行状态。使用前需保证为集群服务器配置了可用的SSH连接信息,否则只能查看当前服务器与集群组件的所属关系&#x…...
AI开发:生成式对抗网络入门 模型训练和图像生成 -Python 机器学习
阶段1:GAN是个啥? 生成式对抗网络(Generative Adversarial Networks, GAN),名字听着就有点“对抗”的意思,没错!它其实是两个神经网络互相斗智斗勇的游戏: 生成器(Gene…...
68 mysql 的 临键锁
前言 我们这里来说的就是 我们在 mysql 这边常见的 一种锁, 行临键锁 虽然 在平时我们用到的不是很多, 我们这里 主要是 讲一下 它的主要的触发的场景 行临键锁 等价于 行锁 间隙锁, 行间隙锁是一个 左开右开的区间, 行临键锁 是一个左开右闭的区间 但是 它 和 行锁的差异…...
(十一)Python3 接口自动化测试,Pytest-Allure报告的使用
(十一)Python3 接口自动化测试,Pytest-Allure报告的使用 1、安装和使用 1、安装pytest和allure-pytest插件: pip install pytest allure-pytest 2、在你的pytest测试用例中使用allure装饰器或者上下文管理器来生成报告。 例如,你可以使用@allure.feature装饰器来标记特性…...
【Rust 学习笔记】Rust 基础数据类型介绍(一)
博主未授权任何人或组织机构转载博主任何原创文章,感谢各位对原创的支持! 博主链接 博客内容主要围绕: 5G/6G协议讲解 高级C语言讲解 Rust语言讲解 文章目录 Rust 基础数据类型介绍(一)一、固定宽…...
深入理解Oracle DB的锁和闩
1. 引言 本文深入介绍Oracle DB的锁和闩。 2. Oracle DB 锁的基本概念 2.1 定义与作用 锁是 Oracle 数据库用于控制并发访问的一种机制。它用于防止多个事务同时对同一数据进行不一致的操作,确保数据的完整性和一致性。例如,当一个事务正在更新一行数…...
mcu上一种利用伪随机数防止mac地址冲突的方法
一 前言 前段时间开发的一个带tcp功能的项目,出现了mac地址冲突的问题,领导让随机生成一个mac地址,因此研究了下随机数。 二 预研 1.硬随机数 硬随机数又叫真随机数,英文名称”true random number generator“,即通过硬件随机数…...
C# 索引器(Indexer)
文章目录 前言一、索引器的语法规则二、索引器的用途及与属性的对比三、索引器的重载 前言 在 C# 编程中,索引器(Indexer)是一项极具特色且实用的语言特性,它赋予了对象一种独特的访问方式,使得对象能够如同数组一般&a…...
【大数据学习 | Spark-SQL】定义UDF和DUAF,UDTF函数
1. UDF函数(用户自定义函数) 一般指的是用户自己定义的单行函数。一进一出,函数接受的是一行中的一个或者多个字段值,返回一个值。比如MySQL中的,日期相关的dateDiff函数,字符串相关的substring函数。 先…...
Springboot集成通义大模型
1.先到阿里云平台开头阿里云白炼账号,创建apiKey 2. 引入maven依赖 <dependency><groupId>com.alibaba</groupId><artifactId>dashscope-sdk-java</artifactId><version>2.8.3</version></dependency><!-- htt…...
Xilinx PCIe高速接口入门实战(一)
引言:本文对Xilinx 7 Series Intergrated Block for PCI Express PCIe硬核IP进行简要介绍,主要包括7系列FPGA PCIe硬核资源支持、三IP硬核差异、PCIe硬核资源利用等相关内容。 1. 概述 1.1 7系列FPGA PCIe硬件资源支持 7系列FPGA对PCIe接口最大支持如…...
区块链游戏的新观察:自治世界能否成为未来链游的突破口?
区块链游戏(链游)作为加密领域的创新方向,一直被寄予厚望。然而,尽管各类链游层出不穷,大多只是靠代币激励一时爆火,缺乏持久吸引力。这种现象让人对链游未来的发展充满疑虑:是否有一种全新的设…...
Linq中的投影运算 (C#):Select、SelectMany、Zip
投影是指将对象转换为一种新形式的操作,该形式通常只包含那些将随后使用的属性。 通过使用投影,您可以构造从每个对象生成的新类型。 可以投影属性,并对该属性执行数学函数。 还可以在不更改原始对象的情况下投影该对象。 1、Select 下面的…...
GPU 服务器厂家:怎样铸就卓越 AI 算力?
文章来源于百家号:GPU服务器厂家 今天咱来聊聊 GPU 服务器厂家那些事儿,而这其中衡量 AI 算力的因素可是关键所在哦。 先讲讲计算速度这一块。咱都知道 AI 那复杂的活儿,像训练超厉害的图像识别模型,得处理海量图像数据&#x…...
数据结构与算法——N叉树(自学笔记)
本文参考 N 叉树 - LeetBook - 力扣(LeetCode)全球极客挚爱的技术成长平台 遍历 前序遍历:A->B->C->E->F->D->G后序遍历:B->E->F->C->G->D->A层序遍历:A->B->C->D->…...
浏览器的数据六种存储方法比较 :LocalStorage vs. IndexedDB vs. Cookies vs. OPFS vs. WASM-SQLite
在构建该 Web 应用程序,并且希望将数据存储在用户浏览器中。也许您只需要存储一些小标志,或者甚至需要一个成熟的数据库。 我们构建的 Web 应用程序类型发生了显着变化。在网络发展的早期,我们提供静态 html 文件。然后我们提供动态渲染的 h…...
Rust个人认为将抢占C和C++市场,逐渐成为主流的开发语言
本人使用C开发8年、C#开发15年、中间使用JAVA开发过项目、后期在学习过程中发现了Rust语言说它是最安全的语言,能够解决C、C的痛点、于是抽出一部分时间网上买书,看网上资料进行学习,这一学习起来发现和其它语言比较起来,在编码的…...