一个专为云原生环境设计的高性能分布式文件系统
大家好,今天给大家分享一款开源创新的分布式 POSIX 文件系统JuiceFS
,旨在解决海量云存储与各类应用平台(如大数据、机器学习、人工智能等)之间高效对接的问题。
项目介绍
JuiceFS
是一款面向云原生设计的高性能分布式文件系统,在 Apache 2.0 开源协议下发布。提供完备的 POSIX 兼容性,可将几乎所有对象存储接入本地作为海量本地磁盘使用,亦可同时在跨平台、跨地区的不同主机上挂载读写。
JuiceFS
提供了丰富的 API,适用于各种形式数据的管理、分析、归档、备份,可以在不修改代码的前提下无缝对接大数据、机器学习、人工智能等应用平台,为其提供海量、弹性、低价的高性能存储。运维人员不用再为可用性、灾难恢复、监控、扩容等工作烦恼,专注于业务开发,提升研发效率。同时运维细节的简化,对 DevOps 极其友好。
核心特点
1.高度兼容性
-
POSIX 兼容:完全兼容 POSIX 标准,这意味着它可以像本地文件系统一样被使用,现有的应用程序无需修改即可无缝对接 JuiceFS,确保了业务工作流的连续性。无论是文件的读写、目录操作还是权限管理等,都与传统 POSIX 文件系统一致,为用户提供了熟悉的操作体验。
-
Hadoop 兼容:其 Hadoop Java SDK 与 Hadoop 2.x 和 3.x 以及 Hadoop 生态系统中的各种组件完美兼容。这使得在大数据处理场景中,JuiceFS 可以作为 Hadoop 的底层存储系统,与 Hive、Spark 等大数据工具无缝集成,为大数据分析和处理提供高效的存储支持。
-
S3 兼容:提供 S3 兼容的接口(S3 Gateway),使得用户可以使用 S3 的 API 来访问 JuiceFS,方便了与基于 S3 接口的现有应用和服务的集成。对于已经熟悉 S3 接口的用户来说,可以快速上手使用 JuiceFS,降低了迁移成本。
2.云原生特性
提供 Kubernetes CSI Driver,这使得在 Kubernetes 容器编排环境中使用 JuiceFS 变得非常容易。用户可以将 JuiceFS 作为持久卷(Persistent Volume)挂载到 Kubernetes 容器中,为容器化应用提供可靠的共享存储,满足容器化应用在数据存储和共享方面的需求,适应云原生应用的快速部署和弹性扩展要求。
3.共享与一致性
-
可共享性:作为共享文件存储,支持数千个客户端同时进行读写操作。这在多用户、多任务的分布式环境中非常重要,例如在企业内部多个团队共享数据、大规模分布式计算任务中多个节点协同工作等场景下,JuiceFS 能够保证数据的一致性和完整性,提高团队协作效率和计算任务的执行效率。
-
强一致性:确保对文件系统的修改在所有挂载相同文件系统的服务器上立即可见。这种强一致性保证了数据的实时性和准确性,避免了因数据不一致导致的应用错误或数据冲突问题,特别适用于对数据一致性要求极高的应用场景,如金融交易系统、实时数据处理系统等。
4.性能优势
-
低延迟与高吞吐量:在性能表现上,JuiceFS 具有出色的低延迟特性,延迟可低至几毫秒,能够快速响应文件操作请求。同时,其吞吐量可以近乎无限扩展(取决于对象存储的大小),在大规模数据读写场景中表现优异。例如,在大数据分析任务中,能够快速读取和处理海量数据,提高数据分析的效率。
-
高效的缓存机制:通过在客户端和元数据引擎中使用缓存,进一步提升了文件系统的性能。客户端缓存可以加速对常用数据的访问,减少对对象存储的频繁访问,降低网络延迟的影响;元数据引擎缓存则提高了元数据的访问速度,加快了文件操作的响应时间。
5.数据安全与管理
-
数据加密:支持数据在传输过程和存储时的加密,用户可以选择合适的加密算法来保护数据的安全性。这对于存储敏感数据(如用户隐私数据、企业机密信息等)至关重要,防止数据在网络传输或存储过程中被窃取或篡改。
-
全局文件锁:支持 BSD 锁(flock)和 POSIX 记录锁(fcntl),用于在多进程或多线程环境中对文件进行并发控制。这确保了在多个客户端同时访问和修改文件时的数据一致性和完整性,避免了文件损坏或数据丢失的风险。
-
数据压缩:提供数据压缩功能,支持 LZ4 或 Zstandard 等压缩算法,帮助用户节省存储空间,降低存储成本。特别是对于存储大量文本数据、日志文件等可压缩性较高的数据类型,效果显著。
技术架构
JuiceFS 文件系统由三个部分组成:
JuiceFS 客户端:协调对象存储和元数据存储引擎,实现 POSIX、Hadoop、Kubernetes、S3 Gateway 等文件系统接口。
数据存储:支持多种存储介质,如本地磁盘、公有 / 私有云对象存储、HDFS 等存储数据。
元数据引擎:存储文件名、大小、权限组、创建 / 修改时间、目录结构等元数据信息,支持 Redis、MySQL、SQLite、TiKV 等引擎。
JuiceFS
中存储的每个文件以固定大小拆分为 “Chunk”,默认上限为 64 MiB。每个Chunk由一个或多个 “Slice” 组成,Slice的长度根据文件的写入方式而变化。每个Slice由大小固定的 “Block” 组成,默认为 4 MiB。这些Block最终会存储在对象存储中;同时,文件的元数据信息及其Chunk、Slice和Block将通过 JuiceFS 存储在元数据引擎中。
应用场景
大数据分析:JuiceFS与主流计算引擎(如Spark、Presto、Hive等)无缝衔接,提供无限扩展的存储空间,运维成本几乎为0,性能远好于直接对接对象存储。
机器学习:POSIX兼容使得JuiceFS可以支持所有机器学习、深度学习框架,方便的文件共享还能提升团队管理、使用数据效率。
Kubernetes:JuiceFS支持Kubernetes CSI,为容器提供解耦的文件存储,令应用服务可以无状态化,方便地在容器间共享数据。
共享工作区:可以在任意主机挂载,没有客户端并发读写限制,POSIX兼容已有的数据流和脚本操作。
数据备份:在无限平滑扩展的存储空间备份各种数据,结合共享挂载功能,可以将多主机数据汇总至一处,做统一备份。
安装使用
安装
JuiceFS 有良好的跨平台能力,支持在几乎所有主流架构的各类操作系统上运行,包括且不限于 Linux、macOS、Windows 等。
JuiceFS 客户端只有一个二进制文件,你可以下载预编译的版本直接解压使用,也可以用源代码手动编译。
一键安装
一键安装脚本适用于 Linux 和 macOS 系统,会根据你的硬件架构自动下载安装最新版 JuiceFS 客户端。
# 默认安装到 /usr/local/bin
curl -sSL https://d.juicefs.com/install | sh -
安装预编译客户端
你可以在 GitHub发布页 找到最新版客户端下载地址,每个版本的下载列表中都提供了面向不同 CPU 架构和操作系统的预编译版本,请注意识别选择,例如:
以 x86 架构的 Linux 系统为例,下载文件名包含 linux-amd64 的压缩包,在终端依次执行以下命令:
# 获取最新的版本号
JFS_LATEST_TAG=$(curl -s https://api.github.com/repos/juicedata/juicefs/releases/latest | grep 'tag_name' | cut -d '"' -f 4 | tr -d 'v')# 下载客户端到当前目录
wget "https://github.com/juicedata/juicefs/releases/download/v${JFS_LATEST_TAG}/juicefs-${JFS_LATEST_TAG}-linux-amd64.tar.gz"# 解压安装包tar -zxf "juicefs-${JFS_LATEST_TAG}-linux-amd64.tar.gz"# 安装客户端
sudo install juicefs /usr/local/bin
完成上述 4 个步骤,在终端执行 juicefs
命令,返回帮助信息,则说明客户端安装成功。
更多安装方式,请阅读官方安装指南。
使用
本文只列举了单机使用方式,分布式模式,请阅读官方使用文档。
JuiceFS 文件系统由「对象存储」
和「数据库」
共同驱动。除了对象存储,还支持使用本地磁盘、WebDAV 和 HDFS 等作为底层存储。因此,可以使用本地磁盘和 SQLite 数据库快速创建一个单机文件系统用以了解和体验 JuiceFS。
创建文件系统
创建文件系统使用客户端提供的 format 命令,一般格式为:
juicefs format [command options] META-URL NAME
[command options]
:设定文件系统的存储介质,留空则默认使用本地磁盘作为存储介质,路径为 “$HOME/.juicefs/local”(darwin/macOS),”/var/jfs”(Linux) 或 “C:/jfs/local”(Windows);META-URL
:用来设置元数据存储,即数据库相关的信息,通常是数据库的 URL 或文件路径;NAME
:是文件系统的名称。
以 Linux 系统为例,以下命令创建了一个名为 myjfs 的文件系统:
juicefs format sqlite3://myjfs.db myjfs
创建完成将返回类似下面的输出:
2021/12/14 18:26:37.666618 juicefs[40362] <INFO>: Meta address: sqlite3://myjfs.db
[xorm] [info] 2021/12/14 18:26:37.667504 PING DATABASE sqlite3
2021/12/14 18:26:37.674147 juicefs[40362] <WARNING>: The latency to database is too high: 7.257333ms
2021/12/14 18:26:37.675713 juicefs[40362] <INFO>: Data use file:///Users/herald/.juicefs/local/myjfs/
2021/12/14 18:26:37.689683 juicefs[40362] <INFO>: Volume is formatted as {Name:myjfs UUID:d5bdf7ea-472c-4640-98a6-6f56aea13982 Storage:file Bucket:/Users/herald/.juicefs/local/ AccessKey: SecretKey: BlockSize:4096 Compression:none Shards:0 Partitions:0 Capacity:0 Inodes:0 EncryptKey:}
从返回的信息中可以看到,该文件系统使用 SQLite 作为元数据存储引擎,数据库文件位于当前目录,文件名为 myjfs.db,保存了 myjfs 文件系统的所有信息。
由于没有指定任何存储相关的选项,客户端默认使用本地磁盘作为存储介质,根据返回的信息, myjfs 的存储路径为 file:///Users/herald/.juicefs/local/myjfs/
,即当前用户目录下的 .juicefs/local/myjfs/
。
挂载文件系统
挂载文件系统使用客户端提供的 mount 命令,一般格式为:
juicefs mount [command options] META-URL MOUNTPOINT
与创建文件系统的命令类似,挂载文件系统需要提供以下信息:
[command options]
:用来指定文件系统相关的选项,例如:-d 可以实现后台挂载;META-URL
:用来设置元数据存储。即数据库相关的信息,通常是数据库的 URL 或文件路径;MOUNTPOINT
:指定文件系统的挂载点。
以下命令将 myjfs 文件系统挂载到 ~/jfs 文件夹:
juicefs mount sqlite3://myjfs.db ~/jfs
默认情况下,客户端会在前台挂载文件系统。就像你在上图中看到的那样,程序会一直运行在当前终端进程中,使用 Ctrl + C
组合键或关闭终端窗口,文件系统会被卸载。
为了让文件系统可以在后台保持挂载,你可以在挂载时指定 -d
或 --background
选项,即让客户端在守护进程中挂载文件系统:
juicefs mount sqlite3://myjfs.db ~/jfs -d
执行以下命令可以将挂载点 ~/jfs 卸载:
juicefs umount ~/jfs
项目地址
https://github.com/juicedata/juicefs
一个专为云原生环境设计的高性能分布式文件系统 - BTool博客 - 在线工具软件,为开发者提供方便
相关文章:
一个专为云原生环境设计的高性能分布式文件系统
大家好,今天给大家分享一款开源创新的分布式 POSIX 文件系统JuiceFS,旨在解决海量云存储与各类应用平台(如大数据、机器学习、人工智能等)之间高效对接的问题。 项目介绍 JuiceFS 是一款面向云原生设计的高性能分布式文件系统&am…...
【Elasticsearch】开启大数据分析的探索与预处理之旅
🧑 博主简介:CSDN博客专家,历代文学网(PC端可以访问:https://literature.sinhy.com/#/literature?__c1000,移动端可微信小程序搜索“历代文学”)总架构师,15年工作经验,…...
【算法】欧几里得与拓展欧几里得算法
目录 一、欧几里得算法 二、拓展欧几里得算法 2.1 裴蜀定理 2.2 拓展欧几里得算法 2.3 例题 三、线性同余方程 3.1 概念 3.2 例题 一、欧几里得算法 欧几里得算法又称辗转相除法,可用于求解两个数的最大公约数 其思路: gcd(a, b) gcd(b, a%b…...
组合数的求法
1.如果是多组查询的话,需要用数组去储存阶乘的值 n!/(m!(n-m)!) P4071 [SDOI2016] 排列计数 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) #include<cstdio> #include<iostream> #include<map> #include<cstring> #include<cmath&g…...
【环境搭建】更新Docker Compose到v2.x版本以支持--profile选项
Docker版本陈旧也是搭建的环境起不来的一个重要原因,比如 --profile 选项是 Docker 20.10.0 版本及以上版本才开始支持的,在 Docker Compose v2.1(及以上版本)中引入用于对服务进行分组和按需启动。 更新 Docker Compose 到 v2.x…...
解决 java -jar 报错:xxx.jar 中没有主清单属性
问题复现 在使用 java -jar xxx.jar 命令运行 Java 应用程序时,遇到了以下错误: xxx.jar 中没有主清单属性这个错误表示 JAR 文件缺少必要的启动信息,Java 虚拟机无法找到应用程序的入口点。本文将介绍该错误的原因以及如何通过修改 pom.xm…...
AIGC-----AIGC在虚拟现实中的应用前景
AIGC在虚拟现实中的应用前景 引言 随着人工智能生成内容(AIGC)的快速发展,虚拟现实(VR)技术的应用也迎来了新的契机。AIGC与VR的结合为创造沉浸式体验带来了全新的可能性,这种组合不仅极大地降低了VR内容的…...
【博主推荐】C#的winfrom应用中datagridview常见问题及解决方案汇总
文章目录 1.datagridview绘制出现鼠标悬浮数据变空白2.datagridview在每列前动态添加序号2.1 加载数据集完成后绘制序号2.2 RowPostPaint事件绘制 3.datagridview改变行样式4.datagridview后台修改指定列数据5.datagridview固定某个列宽6.datagridview某个列的显示隐藏7.datagr…...
Selenium 自动化测试demo
场景描述: 模拟用户登录页面操作,包括输入用户名、密码、验证码。验证码为算数运算,如下: 使用到的工具和依赖: 1. Selenium:pip install selenium 2. 需要安装浏览器驱动:这里使用的是Edge 3…...
深度神经网络模型压缩学习笔记二:离线量化算法和工具、实现原理和细节
文章目录 一、离线量化基础概念二、离线量化难点三、离线量化算法介绍四、离线量化工具介绍五、离线量化工具整体设计结构六、离线量化工具代码解读七、实践:Dipoorlet量化MobileNet 一、离线量化基础概念 二、离线量化难点 三、离线量化算法介绍 四、离线量化工…...
uni-app运行 安卓模拟器 MuMu模拟器
最近公司开发移动端系统,使用真机时每次调试的时候换来换去的麻烦,所以使用模拟器来调试方便。记录一下安装和连接的过程 一、安装MuMu模拟器 百度搜索MuMu模拟器并打开官网或者点这里MuMu模拟器官网 点击下载模拟器 安装模拟器,如果系统…...
网络安全,文明上网(6)网安相关法律
列举 1. 《中华人民共和国网络安全法》: - 这是中国网络安全的基本法律,于2017年6月1日开始实施。该法律明确了网络运营者的安全保护义务,包括采取数据分类、重要数据备份和加密等措施。 2. 《中华人民共和国数据安全法》: …...
Perforce Automation With Python
11/2024 出版 MP4 |视频:h264, 19201080 |音频:AAC,44.1 KHz 语言:英语 |大小: 2.65 GB |时长: 5 小时 18 分钟 使用 Python 脚本简化与 Perforce 版本控制系统相关的生产流程 您将学 到什么 …...
卷积神经网络学习记录
目录 神经网络基础定义: 基本组成部分 工作流程 卷积层(卷积定义)【CONV】: 卷积层(Convolutional Layer) 特征提取:卷积层的主要作用是通过卷积核(或滤波器)运算提…...
Spring Cloud Alibaba
What is SCA Spring Cloud Alibaba致力于提供微服务开发的一站式解决方案。此项目包含开发分布式应用服务的必需组件,方便开发者通过Spring Cloud编程模型轻松使用这些组件来开发分布式应用服务。 依托Spring Cloud Alibaba,您只需要添加一些注解和少量…...
【AI绘画】Midjourney进阶:色调详解(上)
博客主页: [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: AI绘画 | Midjourney 文章目录 💯前言💯Midjourney中的色彩控制为什么要控制色彩?为什么要在Midjourney中控制色彩? 💯色调白色调淡色调明色调 💯…...
【滑动窗口】找到字符串中所有字母异位词
文章目录 找到字符串中所有字母异位词 class Solution { public:vector<int> findAnagrams(string s, string p) {vector<int> ret;int sLen s.size(), pLen p.size(), validChar;// 母串长度比子串长度还小 直接返回空vectorif (sLen < pLen)return ret;// …...
C++:final 关键字用于阻止类被继承或阻止虚函数被进一步重写
final 关键字的作用 C11 引入了 final 关键字,用于阻止类被继承或阻止虚函数被进一步重写。 防止类被继承:在类声明后添加 final,表示该类不能被继承。防止虚函数被重写:在虚函数声明后添加 final,表示该虚函数在派生…...
sql漏洞
目录 SQL漏洞产生的原因 未对用户输入进行验证和过滤: 动态SQL语句的拼接: 不安全的数据库配置: 缺乏安全意识和培训: 使用过时的技术或框架: 如何避免SQL漏洞产生 使用参数化查询: 对用户输入进行…...
SQL 复杂查询
目录 复杂查询 一、目的和要求 二、实验内容 (1)查询出所有水果产品的类别及详情。 查询出编号为“00000001”的消费者用户的姓名及其所下订单。(分别采用子查询和连接方式实现) 查询出每个订单的消费者姓名及联系方式。 在…...
在 PyTorch 训练中使用 `tqdm` 显示进度条
在 PyTorch 训练中使用 tqdm 显示进度条 在深度学习的训练过程中,实时查看训练进度是非常重要的,它可以帮助我们更好地理解训练的效率,并及时调整模型或优化参数。使用 tqdm 库来为训练过程添加进度条是一个非常有效的方式,本文将…...
PYNQ 框架 - 时钟系统 + pl_clk 时钟输出不准确问题
目录 1. 简介 2. PS 时钟计算 2.1 计算框架 2.2 KV260 的参考时钟 2.3 PL_CLK 设置 3. 测试 3.1 Block design 3.2 引脚绑定 3.3 使用 AD2 测量 3.4 调整分频 4. PYNQ 时钟驱动 4.1 源码解析 4.2 查看 PL_CLK 4.3 配置 PL_CLK 5. 总结 1. 简介 ZYNQ MPSoC 具有…...
【Reinforcement Learning】强化学习下的多级反馈队列(MFQ)算法
📢本篇文章是博主强化学习(RL)领域学习时,用于个人学习、研究或者欣赏使用,并基于博主对相关等领域的一些理解而记录的学习摘录和笔记,若有不当和侵权之处,指出后将会立即改正,还望谅…...
Cocos编辑器
1、下载 下载地址:https://www.cocos.com/creator-download 2、编辑器界面介绍 官方链接:https://docs.cocos.com/creator/3.8/manual/zh/editor/ 3、项目结构 官方链接:https://docs.cocos.com/creator/3.8/manual/zh/getting-started/…...
Linux kernel 堆溢出利用方法(三)
前言 本文我们通过我们的老朋友heap_bof来讲解Linux kernel中任意地址申请的其中一种比赛比较常用的利用手法modprobe_path(虽然在高版本内核已经不可用了但ctf比赛还是比较常用的)。在通过两道道近期比赛的赛题来讲解。 Arbitrary Address Allocation…...
文心一言与千帆大模型平台的区别:探索百度AI生态的双子星
随着人工智能技术的迅猛发展,越来越多的公司开始投入资源开发自己的AI解决方案。在中国,百度作为互联网巨头之一,不仅在搜索引擎领域占据重要位置,还在AI领域取得了显著成就。其中,“文心一言”和“千帆大模型平台”便…...
JavaWeb——SpringBoot原理
10.1. 配置优先级 10.1.1. 配置文件 properties > yml(推荐) > yaml 10.1.2. Java系统属性、命令行参数 命令行参数 > Java系统属性 > 配置文件 10.2. Bean管理 10.2.1. 手动获取bean ApplicationContext,IOC容器对象 10.2.2. bean作用域 10.2.3.…...
【算法】连通块问题(C/C++)
目录 连通块问题 解决思路 步骤: 初始化: DFS函数: 复杂度分析 代码实现(C) 题目链接:2060. 奶牛选美 - AcWing题库 解题思路: AC代码: 题目链接:687. 扫雷 -…...
Oracle RAC 环境下数据文件误建在本地目录的处理过程
问题描述 在 Oracle RAC 环境中,有时会误将数据文件创建在本地目录,导致其他节点无法访问该数据文件,从而报出 ORA-01157 和 ORA-01110 错误。 问题分析 错误日志 Mon Nov 16 19:02:38 2021 Errors in file /u01/app/oracle/diag/rdbms/orc…...
使用R语言绘制简单地图的教程
今天主要讲的部分是绘制静态地图,使用的R语言绘图包是tmap,关于介绍就不多讲,下面开始代码的讲解,小白也可以放心食用。 1、绘制简单的单幅地图,这里以新西兰地区为例 #导入必要的包 library(tmap) library(sp) libr…...
【人工智能】基于PyTorch的深度强化学习入门:从DQN到PPO的实现与解析
《Python OpenCV从菜鸟到高手》带你进入图像处理与计算机视觉的大门! 深度强化学习(Deep Reinforcement Learning)是一种结合深度学习和强化学习的技术,适用于解决复杂的决策问题。深度Q网络(DQN)和近端策略优化(PPO)是其中两种经典的算法,被广泛应用于游戏、机器人控…...
学习threejs,使用设置lightMap光照贴图创建阴影效果
👨⚕️ 主页: gis分享者 👨⚕️ 感谢各位大佬 点赞👍 收藏⭐ 留言📝 加关注✅! 👨⚕️ 收录于专栏:threejs gis工程师 文章目录 一、🍀前言1.1 ☘️THREE.MeshLambertMaterial…...
类和对象(中)
文章目录 目录1. 类的6个默认成员函数2. 构造函数3. 析构函数4. 拷贝构造函数5. 赋值运算符重载5.1 运算符重载5.2 赋值运算符重载5.3 日期类实现 6. const成员函数7. 取地址及const取地址操作符重载 目录 类的6个默认成员函数构造函数析构函数拷贝构造函数赋值运算符重载cons…...
编程之路,从0开始:预处理详解(完结篇)
Hello大家好!很高兴我们又见面啦!给生活添点passion,开始今天的编程之路! 我的博客:<但凡. 我的专栏:编程之路 这一篇预处理详解是我们C语言基础内容学习的最后一篇,也是我们的专栏ÿ…...
[chrome]黑色界面插件,PDF合并插件
Dark Reader_chrome插件下载,最新浏览器扩展,crx离线安装包 - 插件小屋 合并 PDF_chrome插件下载,最新浏览器扩展,crx离线安装包 - 插件小屋 下载的zip包解压成crx,然后把后缀名改为rar,然后解压,再导入解压的目录。...
【c语言】文件操作详解 - 从打开到关闭
文章目录 1. 为什么使用文件?2. 什么是文件?3. 如何标识文件?4. 二进制文件和文本文件?5. 文件的打开和关闭5.1 流和标准流5.1.1 流5.1.2 标准流 5.2 文件指针5.3 文件的打开和关闭 6. 文件的读写顺序6.1 顺序读写函数6.2 对比一组…...
AIGC--AIGC与人机协作:新的创作模式
AIGC与人机协作:新的创作模式 引言 人工智能生成内容(AIGC)正在以惊人的速度渗透到创作的各个领域。从生成文本、音乐、到图像和视频,AIGC使得创作过程变得更加快捷和高效。然而,AIGC并非完全取代了人类的创作角色&am…...
刷题日常(数据流中的中位数,逆波兰表达式求值,最长连续序列,字母异位词分组)
数据流中的中位数 描述 如何得到一个数据流中的中位数?如果从数据流中读出奇数个数值,那么中位数就是所有数值排序之后位于中间的数值。如果从数据流中读出偶数个数值,那么中位数就是所有数值排序之后中间两个数的平均值。我们使用Insert()…...
Redis突然变慢,有哪些原因?
目录 一、存在bigkey 二、如果Redis 实例设置了内存上限 maxmemory,有可能导致 Redis 变慢 三、开启了内存大页 四、使用了Swap 五、网络带宽过载 六、频繁短连接 一、存在bigkey 如果Redis实例中存储了 bigkey,那么在淘汰删除 bigkey 释放内存时&…...
Qt入门1——认识Qt的几个常用头文件和常用函数
1.头文件 ① #include <QPushButton>——“按钮”头文件; ② #include <QLabel>——“标签”头文件; ③ #include <QFont>——“字体”头文件; ④#include <QDebug>——输出相关信息; 2. 常用函数/类的基…...
Banana Pi BPI-CanMV-K230D-Zero 采用嘉楠科技 K230D RISC-V芯片设计
概述 Banana Pi BPI-CanMV-K230D-Zero 采用嘉楠科技 K230D RISC-V芯片设计,探索 RISC-V Vector1.0 的前沿技术,选择嘉楠科技的 Canmv K230D Zero 开发板。这款创新的开发板是由嘉楠科技与香蕉派开源社区联合设计研发,搭载了先进的勘智 K230D 芯片。 K230…...
CSS笔记(一)炉石传说卡牌设计1
目标 我要通过html实现一张炉石传说的卡牌设计 问题 其中必须就要考虑到各个元素的摆放,形状的调整来达到满意的效果。通过这个联系来熟悉一下CSS的基本操作。 1️⃣ 基本概念 在CSS里面有行元素,块元素,内联元素,常见的行元…...
怎么在宿主机上通过ssh连接虚拟机 VirtualBox 中的linux系统
通过 Xshell 连接 VirtualBox 中的 linux 虚拟机,您需要确保以下几个步骤都正确配置: 1. 配置 VirtualBox 网络 您需要将 VirtualBox 虚拟机的网络适配器设置为支持 SSH 连接的模式: 打开 VirtualBox,选择您的 Ubuntu 虚拟机&am…...
Spire.PDF for .NET【页面设置】演示:打开 PDF 时自动显示书签或缩略图
用户打开 PDF 文档时,他们会看到 PDF 的初始视图。默认情况下,打开 PDF 时不会显示书签面板或缩略图面板。在本文中,我们将演示如何设置文档属性,以便每次启动文件时都会打开书签面板或缩略图面板。 Spire.PDF for .NET 是一款独…...
241125学习日志——[CSDIY] [InternStudio] 大模型训练营 [17]
CSDIY:这是一个非科班学生的努力之路,从今天开始这个系列会长期更新,(最好做到日更),我会慢慢把自己目前对CS的努力逐一上传,帮助那些和我一样有着梦想的玩家取得胜利!!&…...
Centos 7 安装 Docker 最新版本
文章目录 一、卸载旧版本二、安装最新版本docker三、问题解决3.1 启动docker报错3.2 启动容器报错 一、卸载旧版本 #如果之前安装过旧版本的Docker,可以使用下面命令卸载 yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest …...
JavaScript的基础数据类型
一、JavaScript中的数组 定义 数组是一种特殊的对象,用于存储多个值。在JavaScript中,数组可以包含不同的数据类型,如数字、字符串、对象、甚至其他数组。数组的创建有两种常见方式: 字面量表示法:let fruits [apple…...
网络安全-------防止被抓包
1.Ios应用网络安全之https 安全套接字层 (Secure Socket Layer, SSL) 是用来实现互联网安全通信的最普遍的标准。Web 应用程序使用 HTTPS(基于 SSL 的 HTTP),HTTPS 使用数字证书来确保在服务器和客户端之间进行安全、加密的通信。在 SSL 连接…...
【Linux】认识进程以及进程的状态
目录 认识进程 基本概念 查看进程 父子进程 进程的状态 进程排队 运行状态 阻塞状态 挂起状态 僵尸进程 孤儿进程 认识进程 基本概念 有些教材上会说:正在运行的程序就是进程。这并没有错误,但是太过于笼统。现在我们深入到Linux底层来了解…...
Parker派克防爆电机在实际应用中的安全性能如何保证?
Parker防爆电机确保在实际应用中的安全性能主要通过以下几个方面来保证: 1.防爆外壳设计:EX系列电机采用强大的防爆外壳,设计遵循严格的防爆标准,能够承受内部可能发生的爆炸而不破损,利用间隙切断原理,防…...