1024程序员节特辑 | ELK+ 用户画像构建个性化推荐引擎,智能实现“千人千面”

专栏集锦,赶紧收藏以备不时之需

Spring Cloud实战专栏:https://blog.csdn.net/superdangbo/category_9270827.html

Python 实战专栏:https://blog.csdn.net/superdangbo/category_9271194.html

Logback 详解专栏:https://blog.csdn.net/superdangbo/category_9271502.html

tensorflow专栏:https://blog.csdn.net/superdangbo/category_8691332.html

Redis专栏:https://blog.csdn.net/superdangbo/category_9950790.html

1024程序员节特辑文章:

1024程序员节特辑 | OKR VS KPI谁更合适?

1024程序员节特辑 | Spring Boot实战 之 MongoDB分片或复制集操作

Spring实战系列文章:

Spring实战 | Spring AOP核心秘笈之葵花宝典

Spring实战 | Spring IOC不能说的秘密?

国庆中秋特辑系列文章:

国庆中秋特辑(八)Spring Boot项目如何使用JPA

国庆中秋特辑(七)Java软件工程师常见20道编程面试题

国庆中秋特辑(六)大学生常见30道宝藏编程面试题

国庆中秋特辑(五)MySQL如何性能调优?下篇

国庆中秋特辑(四)MySQL如何性能调优?上篇

国庆中秋特辑(三)使用生成对抗网络(GAN)生成具有节日氛围的画作,深度学习框架 TensorFlow 和 Keras 来实现

国庆中秋特辑(二)浪漫祝福方式 使用生成对抗网络(GAN)生成具有节日氛围的画作

国庆中秋特辑(一)浪漫祝福方式 用循环神经网络(RNN)或长短时记忆网络(LSTM)生成祝福诗词

目录

  • 一、ELK介绍
  • 二、ELK安装部署
  • 三、ELK跟不同技术结合,实现“千人千面”
  • 四、ELK + 用户画像,用Java实现“千人千面”
  • 五、ELK + 用户画像,用Python实现“千人千面”

在这里插入图片描述

一、ELK介绍

ELK,全称 Elasticsearch、Logstash、Kibana,是一种流行的开源日志管理和分析平台。ELK Stack 的三个主要组件分别为 Elasticsearch(分布式搜索和分析引擎)、Logstash(数据收集和处理工具)以及 Kibana(数据可视化工具)。
在这里插入图片描述

1、发展历史
ELK 的历史可以追溯到 2012 年,当时 Elasticsearch 项目创始人 Shay Banon 发布了 Elasticsearch 的首个版本。随着项目的发展,Logstash 和 Kibana 相继诞生,并与 Elasticsearch 共同构成了 ELK Stack。
2、组件详细介绍

  1. Elasticsearch
    Elasticsearch 是一个高度可扩展的开源全文搜索和分析引擎,它基于 Apache Lucene 项目开发。Elasticsearch 提供了分布式、多台机器上的搜索和分析功能,能够快速存储、检索和分析大量数据。在 ELK Stack 中,Elasticsearch 负责存储和查询日志数据。
  2. Logstash
    Logstash 是一个数据收集和处理的强大工具,它可以从各种数据源(如日志文件、数据库和消息队列)收集数据,并对数据进行过滤、分析和格式化。Logstash 基于事件驱动架构,能够高并发地处理大量数据。在 ELK Stack 中,Logstash 负责从各种数据源收集日志数据,并将其发送到 Elasticsearch 进行存储和分析。
  3. Kibana
    Kibana 是一个用户友好的日志分析和可视化工具,它可以帮助用户通过图表、表格和仪表盘等直观的方式查看和分析日志数据。Kibana 基于 Web 界面,支持多种数据分析功能,如聚合、过滤和可视化。在 ELK Stack 中,Kibana 负责展示和分析 Elasticsearch 存储的日志数据。
    3、案例
  4. 日志收集和分析
    某公司有多个服务器,需要对各服务器的日志进行统一收集和分析。使用 ELK Stack,可以在各个服务器上安装 Filebeat,将日志收集到 Logstash,然后通过 Logstash 发送到 Elasticsearch 进行存储和分析。最后,通过 Kibana 进行可视化展示。
  5. 实时数据监控
    某公司在生产环境中需要实时监控各项关键指标,以确保系统的稳定运行。使用 ELK Stack,可以实时收集和分析各项指标数据,并通过 Kibana 进行可视化展示,以便实时了解系统运行状况。
  6. 安全事件分析
    某公司需要对安全事件进行实时监控和分析,以便及时发现并应对潜在的安全威胁。使用 ELK Stack,可以收集和分析安全事件数据,并通过 Kibana 进行可视化展示,以便快速识别异常并采取措施。
    4、总结
    ELK Stack 是一种强大的日志管理和分析工具,它可以帮助用户高效地收集、存储、分析和可视化大量日志数据。ELK Stack 的三个主要组件分别为 Elasticsearch(分布式搜索和分析引擎)、Logstash(数据收集和处理工具)以及 Kibana(数据可视化工具)。ELK Stack 在多个领域都有广泛的应用,如日志收集和分析、实时数据监控以及安全事件分析等。通过使用 ELK Stack,用户可以更加方便地管理和分析日志数据,从而提高运维效率。

二、ELK安装部署

ELK 是指 Elasticsearch、Logstash 和 Kibana 三个开源工具的组合,通常用于大规模日志数据处理和可视化。以下是 ELK 的安装和部署步骤:

  1. 准备环境
    确保你的服务器满足以下要求:
  • 操作系统:Ubuntu 18.04 LTS
  • 内存:至少 4GB
  • 硬盘:至少 20GB
  1. 安装 Java
    在 Ubuntu 服务器上安装 Java,运行以下命令:
sudo apt-get update  
sudo apt-get install openjdk-11-jdk  

检查 Java 版本:

java -version  
  1. 下载并安装 Elasticsearch
    访问 Elasticsearch 官方网站下载合适版本的 Elasticsearch:https://www.elastic.co/downloads/elasticsearch
    下载完成后,将 Elasticsearch 压缩包上传到服务器,然后解压:
sudo mkdir -p /usr/share/elasticsearch  
sudo tar -xzf elasticsearch-7.10.2.tar.gz -C /usr/share/elasticsearch --strip-components=1  

设置 Elasticsearch 的环境变量:

export ES_HOME=/usr/share/elasticsearch  
export PATH=$PATH:$ES_HOME/bin  

创建 Elasticsearch 配置文件:

sudo tee /etc/elasticsearch/elasticsearch.yml << EOL  
cluster.name: my-cluster  
node.name: my-node  
network.host: 0.0.0.0  
http.port: 9200  
discovery.seed_hosts: ["host1", "host2"]  
cluster.initial_master_nodes: ["node-1", "node-2"]  
EOL  

启动 Elasticsearch:

sudo systemctl start elasticsearch  

检查 Elasticsearch 是否运行正常:

curl -X GET "localhost:9200/"  
  1. 下载并安装 Logstash
    访问 Logstash 官方网站下载合适版本的 Logstash:https://www.elastic.co/downloads/logstash
    在这里插入图片描述

下载完成后,将 Logstash 压缩包上传到服务器,然后解压:

sudo mkdir -p /usr/share/logstash  
sudo tar -xzf logstash-7.10.2.tar.gz -C /usr/share/logstash --strip-components=1  

创建 Logstash 配置文件:

sudo tee /etc/logstash/logstash.conf << EOL  
input {  beats {  port => 5044  }  
}
filter {  if "apache" in [$log][app] {  grok {  match => { "message" => "%{GREEDYDATA:apache_message}" }  }  } else if "nginx" in [$log][app] {  grok {  match => { "message" => "%{GREEDYDATA:nginx_message}" }  }  }  
}
output {  if "apache" in [$log][app] {  elasticsearch {  hosts => ["http://localhost:9200"]  index => "my-index-%{+YYYY.MM.dd}"  }  } else if "nginx" in [$log][app] {  elasticsearch {  hosts => ["http://localhost:9200"]  index => "my-index-%{+YYYY.MM.dd}"  }  }  
}
EOL  

启动 Logstash:

sudo systemctl start logstash  
  1. 下载并安装 Kibana
    访问 Kibana 官方网站下载合适版本的 Kibana:https://www.elastic.co/downloads/kibana
    在这里插入图片描述

下载完成后,将 Kibana 压缩包上传到服务器,然后解压:

sudo mkdir -p /usr/share/kibana  
sudo tar -xzf kibana-7.10.2.tar.gz -C /usr/share/kibana --strip-components=1  

创建 Kibana 配置文件:

sudo tee /etc/kibana/kibana.yml << EOL  
server.port: 5601  
server.host: "0.0.0.0"  
elasticsearch.hosts: ["http://localhost:9200"]  
EOL  

启动 Kibana:

sudo systemctl start kibana  

在这里插入图片描述

检查 Kibana 是否运行正常,访问 http://your_server_ip:5601,如果看到 Kibana 的欢迎页面,则说明安装成功。

  1. 配置 Elasticsearch、Logstash 和 Kibana 的集成
    在 Elasticsearch 的配置文件中,添加以下内容:
http.port: 9200  
discovery.seed_hosts: ["host1", "host2"]  
cluster.initial_master_nodes: ["node-1", "node-2"]  

在 Logstash 的配置文件中,添加以下内容:

output {  elasticsearch {  hosts => ["http://localhost:9200"]  index => "my-index-%{+YYYY.MM.dd}"  }  
}

在 Kibana 的配置文件中,添加以下内容:

server.port: 5601  
server.host: "0.0.0.0"  
elasticsearch.hosts: ["http://localhost:9200"]  
  1. 启动 Elasticsearch、Logstash 和 Kibana
    在命令行中,分别启动 Elasticsearch、Logstash 和 Kibana:
sudo systemctl start elasticsearch  
sudo systemctl start logstash  
sudo systemctl start kibana  

现在,你已经成功安装并部署了 ELK。

三、ELK跟不同技术结合,实现“千人千面”

ELK 技术可以与多种技术结合,实现千人千面的需求。以下是一些建议,并结合具体案例和代码进行说明:

  1. ELK + 用户画像:
    用户画像是对用户的基本信息、兴趣爱好、消费习惯等进行建模。可以通过收集用户的行为数据,结合机器学习和大数据技术,分析用户的兴趣和需求。将分析结果存储在用户画像系统中,为用户提供个性化推荐。
    案列:
  • 收集用户行为数据,如搜索记录、浏览记录、购买记录等。
  • 使用机器学习算法(如决策树、SVM、聚类等)分析用户行为数据,构建用户画像。
  • 将用户画像与 ELK 结合,实现基于用户画像的个性化推荐。
  1. ELK + 协同过滤:
    协同过滤是一种基于用户历史行为数据的推荐算法,可以挖掘用户之间的相似性以及物品之间的相似性。通过协同过滤算法,可以为用户提供个性化推荐。
    案列:
  • 收集用户的历史行为数据,如评分、购买记录等。
  • 使用协同过滤算法(如基于用户的协同过滤、基于物品的协同过滤等)挖掘用户和物品之间的相似性。
  • 将协同过滤的结果与 ELK 结合,实现基于协同过滤的个性化推荐。
  1. ELK + 深度学习:
    深度学习可以在大规模数据上学习用户的兴趣和需求,为用户提供个性化推荐。可以通过神经网络、卷积神经网络、循环神经网络等算法进行深度学习。
    案列:
  • 收集用户行为数据,如点击记录、浏览记录等,并将其转化为适合深度学习模型输入的数据格式。
  • 使用深度学习模型(如神经网络、卷积神经网络、循环神经网络等)训练模型。
  • 将深度学习模型的输出与 ELK 结合,实现基于深度学习的个性化推荐。
    以上仅为示例,实际应用中可以根据业务需求和场景进行调整。在实际项目中,ELK 通常作为整个推荐系统的基础设施,与其他技术(如用户画像、协同过滤、深度学习等)相结合,实现千人千面的个性化推荐。

四、ELK + 用户画像,用Java实现“千人千面”

ELK(Elasticsearch、Logstash、Kibana)是一个大数据处理和可视化平台,而用户画像则是根据用户的行为、兴趣、喜好等信息构建的用户模型。实现千人千面,即为目标用户提供个性化的内容和服务。
要实现 ELK + 用户画像的千人千面,你需要完成以下步骤:

  1. 收集用户数据:收集用户的行为数据、兴趣数据、喜好数据等。这些数据可以从用户的浏览记录、购买记录、搜索记录等渠道获取。
  2. 构建用户画像:根据收集到的用户数据,使用机器学习算法(例如决策树、支持向量机等)构建用户画像。用户画像包括用户的年龄、性别、职业、地域、消费水平等信息。
  3. 存储用户画像:将构建好的用户画像存储在 Elasticsearch 中,以便后续的查询和推荐。
  4. 实现推荐算法:使用 Logstash 处理用户行为数据,然后结合用户画像,实现个性化推荐。推荐算法可以使用基于内容的推荐、协同过滤、矩阵分解等。
  5. 输出推荐结果:将推荐结果可视化在 Kibana 中,提供给用户。
    以下是一个简化的 Java 代码示例,用于实现 ELK + 用户画像的千人千面:
    要安装所需的库,您需要执行以下步骤:
  6. 添加 Maven 依赖项
    在您的 Maven 项目的 pom.xml 文件中,添加以下依赖项:
<dependencies>  <dependency>  <groupId>org.elasticsearch</groupId>  <artifactId>elasticsearch</artifactId>  <version>7.9.3</version>  </dependency>  <dependency>  <groupId>com.fasterxml.jackson.core</groupId>  <artifactId>jackson-databind</artifactId>  <version>2.12.3</version>  </dependency>  
</dependencies>  
  1. 创建 UserProfile 类
    创建一个表示用户画像的类,包括用户 ID、年龄、性别、兴趣等属性。
public class UserProfile {  private String userId;  private int age;  private String gender;  private List<String> interests;// 构造函数、getter 和 setter 方法  
}
  1. 创建 UserProfileService
    创建一个 UserProfileService 类,用于处理用户画像的相关操作,如创建、更新、查询等。
import com.fasterxml.jackson.databind.ObjectMapper;  
import org.elasticsearch.action.search.SearchRequest;  
import org.elasticsearch.action.search.SearchResponse;  
import org.elasticsearch.client.RestHighLevelClient;  
import org.elasticsearch.index.query.QueryBuilders;  
import org.elasticsearch.search.builder.SearchSourceBuilder;  
import org.elasticsearch.search.fetch.FetchSourceContext;  
import org.elasticsearch.search.fetch.SearchHit;  
import org.elasticsearch.search.fetch.SearchHits;  
import org.elasticsearch.search.highlight.HighlightBuilder;  
import org.elasticsearch.search.highlight.HighlightField;
import java.io.IOException;  
import java.util.List;  
import java.util.stream.Collectors;
public class UserProfileService {  private RestHighLevelClient client;  private ObjectMapper objectMapper;public UserProfileService(RestHighLevelClient client) {  this.client = client;  this.objectMapper = new ObjectMapper();  }public UserProfile createOrUpdateUserProfile(UserProfile userProfile) throws IOException {  // 保存用户画像到 Elasticsearch  // ...  }public UserProfile getUserProfileById(String userId) throws IOException {  // 从 Elasticsearch 查询用户画像  // ...  }public List<UserProfile> getSimilarUserProfiles(String userId, int topN) throws IOException {  // 查询与目标用户相似的用户画像  // ...  }  
}
  1. 实现基于用户画像的推荐
    在 UserProfileService 中添加一个推荐方法,根据用户画像推荐相关商品。
public List<String> recommendItems(String userId, int topN) throws IOException {  // 分析用户行为数据,提取特征  SearchRequest searchRequest = new SearchRequest(INDEX_NAME);  SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();  searchSourceBuilder.query(QueryBuilders.matchQuery("user_id", userId));  // 设置分页和排序  searchSourceBuilder.from(0);  searchSourceBuilder.size(topN);  // 获取用户行为数据  SearchResponse searchResponse = client.search(searchRequest, RequestOptions.DEFAULT, searchSourceBuilder);  SearchHits<UserBehavior> searchHits = searchResponse.getHits(UserBehavior.class);  // 计算相似度  List<String> recommendedItems = searchHits.getSearchHits().stream()  .map(hit -> hit.getSourceAsString("item_name"))  .collect(Collectors.toList());  return recommendedItems;  
}
  1. 创建 UserBehavior 类
    创建一个表示用户行为的类,包括用户 ID、商品 ID、购买时间
import java.util.Date;
public class UserBehavior {  private String userId;  private String productId;  private Date purchaseTime;public UserBehavior(String userId, String productId, Date purchaseTime) {  this.userId = userId;  this.productId = productId;  this.purchaseTime = purchaseTime;  }// getter and setter methods@Override  public String toString() {  return "UserBehavior{" +  "userId='" + userId + '\'' +  ", productId='" + productId + '\'' +  ", purchaseTime=" + purchaseTime +  '}';  }  
}

五、ELK + 用户画像,用Python实现“千人千面”

以下是一个简单的基于 ELK 和 Python 实现用户画像的示例:

  1. 安装所需库:
pip install elasticsearch  
pip install logstash  
pip install kibana  
pip install pandas  
pip install scikit-learn  
  1. 编写 Python 脚本,实现用户画像分析和推荐:
import pandas as pd  
import numpy as np  
from sklearn.feature_extraction.text import TfidfVectorizer  
from sklearn.metrics.pairwise import cosine_similarity  
from elasticsearch import Elasticsearch
# 连接 Elasticsearch  
es = Elasticsearch([{'host': 'localhost', 'port': 9200}])
# 设置索引和类型  
index_name = 'user_behavior'  
type_name = 'log'
# 分析用户行为数据,提取特征  
def analyze_user_behavior(user_id):  query = {  'query': {  'match': {'user_id': user_id}  }  }  user_behavior = es.search(index=index_name, type=type_name, body=query)  user_behavior_df = pd.DataFrame(user_behavior['hits']['hits'])  user_behavior_df.drop(['_source'], axis=1, inplace=True)  return user_behavior_df
# 计算用户画像之间的相似度  
def calculate_similarity(user1, user2):  user1_behavior = analyze_user_behavior(user1)  user2_behavior = analyze_user_behavior(user2)  # 使用 TF-IDF 计算特征向量  vectorizer = TfidfVectorizer()  user1_features = vectorizer.fit_transform(user1_behavior['item_name'])  user2_features = vectorizer.fit_transform(user2_behavior['item_name'])  # 计算相似度  similarity = cosine_similarity(user1_features, user2_features)  return similarity
# 推荐物品  
def recommend_items(user_id, top_n):  # 获取所有用户的行为数据  all_user_behavior = analyze_user_behavior('all')  # 计算所有用户与当前用户的相似度  all_user_similarity = calculate_similarity(user_id, 'all')  # 获取相似度最高的前 top_n 个用户  top_n_users = all_user_similarity.argsort()[-top_n:][::-1]  # 获取 top_n 个用户的行为数据  top_n_user_behavior = [analyze_user_behavior(user) for user in top_n_users]  # 计算 top_n 个用户购买的物品  top_n_items = pd.concat([top_n_user_behavior[i]['item_name'] for i in range(top_n)], axis=1)  # 返回 top_n 个推荐物品  return top_n_items.reset_index(drop=True)
# 示例  
user_id = 'user1'  
top_n = 3  
recommended_items = recommend_items(user_id, top_n)  
print(f"给用户 {user_id} 推荐的前 {top_n} 个物品:{recommended_items}")  

这个示例仅用于说明如何结合 ELK 和 Python 实现基于用户画像的个性化推荐。实际应用中需要根据具体需求和场景进行调整。另外,推荐算法也可以根据业务需求选择其他更复杂的算法,如基于内容的推荐、协同过滤、深度学习等。

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

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

相关文章

易点易动上线招标管理模块:提升企业高效招标管理的解决方案

在当今竞争激烈的商业环境下&#xff0c;招标管理对于企业的成功至关重要。为了帮助企业实现高效的招标管理&#xff0c;易点易动固定资产管理系统上线了全新的招标管理模块。该模块涵盖了供应商资质审核、采购询价单、重新报价单、招标结果单、招标作废单等功能&#xff0c;为…

python爬虫采集企查查数据

企查查&#xff0c;一个查询企业信息的网站&#xff0c;这个网站也是网络爬虫选择采集的对象&#xff0c;这个网站反爬提别厉害&#xff0c;没有一定的爬虫技术&#xff0c;是无法采集成功的。 网络爬虫从企查查采集企业信息&#xff0c;如果想要看到完成的企业信息就需要登录后…

Python 爬虫实战之爬拼多多商品并做数据分析

Python爬虫可以用来抓取拼多多商品数据&#xff0c;并对这些数据进行数据分析。以下是一个简单的示例&#xff0c;演示如何使用Python爬取拼多多商品数据并进行数据分析。 首先&#xff0c;需要使用Python的requests库和BeautifulSoup库来抓取拼多多商品页面。以下是一个简单的…

10月份stable diffusion animatediff等插件使用指南,又来更新了

插件一直会更新&#xff0c;包含了基本市面上流行的90%插件&#xff0c;好用的插件更是不会错过&#xff0c;往期插件请看往期文章&#xff0c;如果你没有时间一直关注sd更新的进展&#xff0c;请关注我&#xff0c;一个月用几个小时看一下我的文章&#xff0c;最短时间跟进sd。…

【微服务】spring webflux响应式编程使用详解

目录 一、webflux介绍 1.1 什么是webflux 1.2 什么是响应式编程 1.3 webflux特点 二、Java9中响应式编程 2.1 定义事件流源 2.2 实现订阅者 三、Spring Webflux介绍 四、Reactor 介绍 五、Reactor 常用API操作 5.1 Flux 创建流操作API 5.2 Flux响应流的订阅 5.3 Fl…

Mybatis对数据库进行增删查改以及单元测试

这篇写的草率了&#xff0c;是好几天前学到&#xff0c;以后用来自己复习 UserInfo import lombok.Data;Data public class UserInfo {private int id;private String name;private int age;private String email;//LocalDateTime可用于接收 时间}Mapper UserMapper pack…

软考 系统架构设计师系列知识点之软件构件(1)

所属章节&#xff1a; 第2章. 计算机系统基础知识 第3节. 计算机软件 2.3.7 软件构件 1. 概述 构件又称为组件&#xff0c;是一个自包容、可复用的程序集。构建是一个程序集、或者说是一组程序的集合。这个集合可能会以各种方式体现出来&#xff0c;如源程序或二进制代码。这…

2023年中国多功能折叠刀产量、销量及市场规模分析[图]

多功能折叠刀是一种集多种功能于一身的刀具&#xff0c;通常包括切割、开瓶、剥皮、锯木等功能&#xff0c;可以通过折叠和展开的方式来实现不同的功能&#xff0c;具有便携、多用途、安全等特点&#xff0c;广泛应用于户外探险、露营、自驾旅行等场景。 多功能折叠刀行业分类…

Simian使用方法

1.下载 链接1&#xff1a;官网下载 链接2&#xff1a;压缩包 2.操作 1.双击exe启动 2.打开控制台&#xff0c;winR 输入cmd 3.输入操作语句 G:\1111\simian-2.5.10\bin\simian-2.5.10.exe -includes"G:\1111\test\*.cpp" -threshold3 > output.txt G:\1111\si…

利用TypeScript 和 jsdom 库实现自动化抓取数据

以下是一个使用 TypeScript 和 jsdom 库的下载器程序&#xff0c;用于下载zhihu的内容。此程序使用了 duoip.cn/get_proxy 这段代码。 import { JSDOM } from jsdom; import { getProxy } from https://www.duoip.cn/get_proxy;const zhihuUrl https://www.zhihu.com;(async (…

璞华科技再次赋能,助力成都市温江区“码”上维权不烦“薪” !

科技赋能护“薪”行动 “码”上维权不烦“薪” 为保障劳动者工资收入的合法权益&#xff0c;提升人社部门智能化咨询服务能力&#xff0c;2023年10月17日&#xff0c;成都市温江区人力资源和社会保障局发布“码上护薪”小程序&#xff0c;助力劳动者“码”上维权不烦”薪”。…

【Machine Learning】01-Supervised learning

01-Supervised learning 1. 机器学习入门1.1 What is Machine Learning?1.2 Supervised learning1.3 Unsupervised learning 2. Supervised learning2.1 单元线性回归模型2.1.1 Linear Regression Model&#xff08;线性回归模型&#xff09;2.1.2 Cost Function&#xff08;代…

学习编程语言需要熟悉库函数吗?

学习编程语言需要熟悉库函数吗? 我想答案肯定是需要的。 但不是盲目的挨个去记&#xff0c;几乎各个语言的库函数都极为丰富&#xff0c;逐个记忆的话是十分劝退的&#xff0c;而且也不可能全部熟悉&#xff0c;到用的时候该忘还是忘。最近很多小伙伴找我&#xff0c;说想要一…

AArch64 TrustZone

概述 本文我们介绍了 TrustZone 技术。通过CPU内置的硬件强制隔离&#xff0c;TrustZone 提供了一种高效的全系统安全设计。 我们介绍了如下功能&#xff1a;将 TrustZone 技术添加到处理器架构中&#xff0c;内存系统对于 TrustZone 的支持以及典型的软件架构。我们还介绍了…

利用MixProxy自动录制生成Pytest案例:轻松实现测试脚本编写!

前言 进行接口自动化时&#xff0c;有时候往往没有接口文档&#xff0c;或者文档更新并不及时&#xff0c;此时&#xff0c;想要获取相关接口&#xff0c;通过抓包是一种快速便捷的手段。抓包获取到接口后&#xff0c;开始写接口用例&#xff0c;此时需要复制请求url、请求参数…

React拖拽实践

当涉及到前端开发中的用户体验时&#xff0c;拖拽功能是一个常见而重要的需求。在React中&#xff0c;实现拖拽功能可以通过多种方式完成&#xff0c;但通常需要深刻理解React的状态管理、事件处理和DOM操作。本文将探讨React中拖拽的实践&#xff0c;包括基本原理、拖拽库的使…

Flutter 填坑录 (不定时更新)

一&#xff0c;内存爆表 > 图片缓存 /// State基类 class BaseState<T extends StatefulWidget> extends State<T>withAutomaticKeepAliveClientMixin,WidgetHelper,DialogHelper,EventListener {mustCallSupervoid initState() {if (isListenEvent()) {EventMa…

Python中Set()学习

二、set python 的 set 和其他语言类似, 是一个无序不重复元素集, 基本功能包括关系测试和消除重复元素。 set 和 dict 类似,但是 set 不存储 value 值的。 1、set 的创建 创建一个 set,需要提供一个 list 作为输入集合 set1=set([123,456,789]) print(set1)输出结果: …

全开源无加密跨境电商购物网站系统源码(无货源模式+多语言+多货币)

在全球化的时代背景下&#xff0c;跨境电商成为了越来越受欢迎的消费方式&#xff0c;而建立一个源码无加密多语言跨境购物网站系统是一个具有挑战性的任务&#xff0c;但完全可行。以下是这个过程的一些主要步骤&#xff1a; 1. 确定需求和功能规划&#xff1a;先确定网站需要…

IOday7

A进程 #include <head.h> int main(int argc, const char *argv[]) {pid_t cpidfork();if(cpid>0)//父进程向管道文件2写{ int wfd;if((wfdopen("./myfifo2",O_WRONLY))-1){ERR_MSG("open");return -1;} char buf[128]"";while(1){bze…