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

01-第1章-概述与快速开始

第 1 章概述与快速开始1.1 sfsDb 简介sfsDb 是一款专为工业物联网IIoT和边缘计算场景设计的纯 Go 语言嵌入式数据库。它基于 LevelDB 构建提供了无锁事务系统、高效索引管理、时序数据处理和加密存储等功能。核心特性纯 Go 实现无需 CGO跨平台编译简单创新性地将 NoSQL 的高并发写入能力与 SQL 的复杂查询能力融合在一个系统中无锁事务基于 OCC乐观并发控制的高性能事务系统多种索引支持主键、普通索引、复合索引和全文索引时序数据优化内置时间窗口计算和数据聚合功能加密存储支持 AES-256-GCM 加密嵌入式设计无需独立服务器进程1.2 环境搭建安装 sfsDbgo get github.com/liaoran123/sfsDb依赖要求Go 1.25github.com/syndtr/goleveldb v1.0.01.3 完整的可运行示例让我们通过一个完整的示例来演示 sfsDb 的基本使用packagemainimport(fmtosgithub.com/liaoran123/sfsDb/enginegithub.com/liaoran123/sfsDb/storage)funcmain(){fmt.Println( sfsDb 数据库实战 - 第 1 章Hello World 示例 )fmt.Println()dbPath:./bible_examples_chapter01_dbcleanup(dbPath)fmt.Println(1. 初始化数据库)_,err:storage.GetDBManager().OpenDB(dbPath)iferr!nil{fmt.Printf(数据库打开失败: %v\n,err)return}deferstorage.GetDBManager().CloseDB()fmt.Println( ✓ 数据库打开成功)fmt.Println()fmt.Println(2. 创建用户表)userTable,err:engine.TableNew(users)iferr!nil{fmt.Printf(创建表失败: %v\n,err)return}fmt.Println( ✓ 表创建成功)fmt.Println()fmt.Println(3. 设置字段)userFields:map[string]any{id:0,// 用户IDname:,// 用户名age:0,// 年龄email:,// 邮箱address:,// 地址}erruserTable.SetFields(userFields)iferr!nil{fmt.Printf(设置字段失败: %v\n,err)return}fmt.Println( ✓ 字段设置成功)fmt.Println()fmt.Println(4. 创建主键索引)primaryKey,err:engine.DefaultPrimaryKeyNew(pk_id)iferr!nil{fmt.Printf(创建主键索引失败: %v\n,err)return}primaryKey.AddFields(id)erruserTable.CreateIndex(primaryKey)iferr!nil{fmt.Printf(创建索引失败: %v\n,err)return}fmt.Println( ✓ 主键索引创建成功)fmt.Println()fmt.Println(5. 插入测试数据)testUser:map[string]any{id:1,name:张三,age:28,email:zhangsanexample.com,address:北京市朝阳区,}_,erruserTable.Insert(amp;testUser)iferr!nil{fmt.Printf(插入数据失败: %v\n,err)return}fmt.Println( ✓ 测试数据插入成功)fmt.Println()fmt.Println(6. 查询测试数据)searchFields:map[string]any{id:1}dataIter,_:userTable.Search(amp;searchFields)deferdataIter.Release()records:dataIter.GetRecords(true)deferrecords.Release()iflen(records)gt;0{fmt.Println( ✓ 查询成功)fmt.Printf( 用户信息: %v\n,records[0])}else{fmt.Println( ✗ 查询失败未找到记录)}fmt.Println()fmt.Println( 恭喜sfsDb 入门成功 )fmt.Println()fmt.Println(接下来请继续阅读第 2 章了解 sfsDb 的核心概念与架构。)}funccleanup(pathstring){os.RemoveAll(path)}这段代码展示了 sfsDb 的完整使用流程初始化数据库通过storage.GetDBManager().OpenDB()打开数据库创建表使用engine.TableNew()创建表设置字段通过SetFields()定义表结构创建索引使用CreateIndex()创建主键索引插入数据使用Insert()插入测试数据查询数据使用Search()查询并验证结果1.4 小结本章我们了解了 sfsDb 的基本概念和特性并通过项目中的实际代码完成了第一个示例。在下一章中我们将深入了解 sfsDb 的核心架构和设计思想。本书版本1.0.0最后更新2026-03-11sfsDb- 以工业物联网边缘计算为核心场景的高性能嵌入式数据库技术栈- Go、leveldb。纯golang实现。项目地址GitHubGitCode 镜像GitCode

相关文章:

01-第1章-概述与快速开始

第 1 章:概述与快速开始 1.1 sfsDb 简介 sfsDb 是一款专为工业物联网(IIoT)和边缘计算场景设计的纯 Go 语言嵌入式数据库。它基于 LevelDB 构建,提供了无锁事务系统、高效索引管理、时序数据处理和加密存储等功能。 核心特性 纯…...

TCT亚洲展|金属3D打印创新产品抢先看

本届TCT亚洲展有大量创新产品亮相,有的是概念产品,有的则已经被用于最终使用。本期内容,跟随3D打印技术参考,来探索部分创新应用。气液双向散热器概念设计这款产品由漫格科技与中科祥龙联合开发,是一件基于某真实项目的…...

ST7789显示屏驱动实战指南:从基础配置到高级应用

ST7789显示屏驱动实战指南:从基础配置到高级应用 【免费下载链接】st7789py_mpy 项目地址: https://gitcode.com/gh_mirrors/st/st7789py_mpy ST7789显示屏驱动是一款专为嵌入式系统设计的高性能TFT LCD控制器解决方案,支持多种分辨率与丰富显示…...

Shell程序

Shell脚本定义:以.sh结尾的文件,用于执行特定任务脚本参数传递:执行脚本时可在命令后添加参数(如start/stop)Hadoop脚本示例:sbin/hadoop-daemon.sh start namenodeShell编程特点:简单易用,适合自动化常见操作脚本执行方式:直接运行.sh文件即可执行其中命…...

Linux 定时备份 MySQL 数据库(完整教程)

为了防止数据丢失,我们需要定时把数据备份起来。我们使用用 Linux crontab mysqldump 实现定时自动备份,包含备份、压缩、保留历史、自动清理旧文件。一、先准备备份脚本创建一个备份脚本 mysql_backup.sh,放在 /usr/local/bin/ 方便管理。#…...

微信小程序使用websocket调用大模型返回逐字显示的结果

页面展示:小程序代码: aichat.js:const config require(../../utils/config.js); Page({data: {messages: [],inputText: ,isLoading: false,scrollToId: scroll-bottom,currentStreamingId: null,isConnecting: false,isReceiving: false,socketOpen: …...

ModTheSpire终极指南:解锁《杀戮尖塔》无限可能的模组加载器

ModTheSpire终极指南:解锁《杀戮尖塔》无限可能的模组加载器 【免费下载链接】ModTheSpire External mod loader for Slay The Spire 项目地址: https://gitcode.com/gh_mirrors/mo/ModTheSpire ModTheSpire是专为《杀戮尖塔》设计的开源模组加载器&#xff…...

剪映API技术解析:如何通过代码驱动实现视频剪辑自动化与效率革命

剪映API技术解析:如何通过代码驱动实现视频剪辑自动化与效率革命 【免费下载链接】JianYingApi Third Party JianYing Api. 第三方剪映Api 项目地址: https://gitcode.com/gh_mirrors/ji/JianYingApi 在视频内容创作进入工业化生产的今天,传统手动…...

基于Matlab的Dijkstra算法与蚁群优化算法路径规划

3基于matlab的Dijkstra和蚁群优化算法路径规划 Dijkstra算法研究的是从初始点到其他每一结点的最短路径,从而得到最短路径 蚂蚁会以较大的概率优先选择信息素浓度较高的路径, 并释放一定量的信息素, 以增强该条路径上的信息素浓度&#xff0c…...

第6章 Mosquitto用户认证与访问控制

第6章 用户认证与访问控制 6.1 认证机制概览 #mermaid-svg-MTeZFweZQcx9XrLR{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:…...

TongWeb8.0支持JBoss Weld‌

JBoss Weld‌ 是 CDI(Contexts and Dependency Injection,JSR 299/346/365)的官方参考实现(RI),用于在 Java EE / Jakarta EE 应用中提供依赖注入和上下文管理功能。它不仅内置于 WildFly、GlassFish 等应用…...

如何让老旧苹果电脑重获新生:OpenCore Legacy Patcher完全指南

如何让老旧苹果电脑重获新生:OpenCore Legacy Patcher完全指南 【免费下载链接】OpenCore-Legacy-Patcher Experience macOS just like before 项目地址: https://gitcode.com/GitHub_Trending/op/OpenCore-Legacy-Patcher 你的2008-2017年老款Mac是否因为苹…...

Git从入门到精通:原理、实战与企业级协作全攻略

Git从入门到精通:原理、实战与企业级协作全攻略 文章目录Git从入门到精通:原理、实战与企业级协作全攻略Git从入门到精通:原理、实战与企业级协作全攻略前言:为什么每个开发者都必须掌握Git?第一部分:Git初…...

WarcraftHelper:让经典魔兽争霸3在现代电脑上完美运行的终极解决方案

WarcraftHelper:让经典魔兽争霸3在现代电脑上完美运行的终极解决方案 【免费下载链接】WarcraftHelper Warcraft III Helper , support 1.20e, 1.24e, 1.26a, 1.27a, 1.27b 项目地址: https://gitcode.com/gh_mirrors/wa/WarcraftHelper 你是否还在为魔兽争霸…...

ComfyUI-VideoHelperSuite视频工作流技术指南:从基础操作到专业应用

ComfyUI-VideoHelperSuite视频工作流技术指南:从基础操作到专业应用 【免费下载链接】ComfyUI-VideoHelperSuite Nodes related to video workflows 项目地址: https://gitcode.com/gh_mirrors/co/ComfyUI-VideoHelperSuite 引言:视频处理工作流的…...

面对 AI 热潮,企业最值得优先落地的5个业务场景

这一轮 AI 热潮,很多企业都在关注,也都在问同一个问题:AI 到底该先落在哪?是做大模型应用?是上智能体?还是先做知识库、数据平台、自动化流程?看起来方向很多,但真正落到企业经营和管…...

如何判断提取的RNA是否可用?

在分子生物学实验中,RNA的质量直接决定下游实验的成败。那么,如何科学、系统地评价所提取的RNA是否合格呢?应从浓度、纯度与完整性三个维度综合判断,只有三者均达到标准,才能称为高质量RNA。一、质量评价的三项核心指标…...

本地AI聊天、交互助手(写给小白的LLM工具选型系列:第三篇)

诸神缄默不语-个人技术博文与视频目录 在这一章介绍的是,已经有了AI大模型推理服务(不管是云端API还是本地服务),想要一个像聊天框那样的界面来跟大模型聊天、或者让大模型做更复杂的工作。 本章主要考虑的功能还是AI对话&#x…...

基于COMSOL的相变模拟:石蜡、熔盐、金属等的奇妙相变之旅

基于COMSOL的相变模拟(石蜡、熔盐、金属等) 材料从完全固态转变到液态(或者液态冷却到固态),考虑液相的自然对流对相变过程的影响 材料的参数设定与融化或凝固状态相关,如图中所示最近在研究材料的相变过程…...

【最新最权威】ArcGIS ArcMap中添加在线地图-天地图(地形、矢量、影像、全球境界)的方法

1 图源介绍地理信息公共服务平台(天地图)是县级以上自然资源主管部门向社会提供各类在线地理信息公共服务、推动地理信息数据开放共享的政府网站,由国家级节点、省级(兵团)节点、市县级节点组成。在底图服务方面&#…...

技术方案:deepseek对话怎么导出PDF

在日常使用 DeepSeek 的过程中,一个让人又爱又恨的问题反复出现:回答质量很高,但想把它存下来却非常麻烦。 无论是做技术调研、写方案、做知识沉淀,还是整理学习笔记,DeepSeek 给出的答案往往信息密度大、结构清晰&am…...

Hollander Techniek借助Visual Components仿真平台,打造自动化食品包装系统

荷兰即食餐食供应商Uitgekookt(以下简称Uitgekookt)计划对其餐食包装流程进行自动化改造,亟需一套能高效、精准处理定制订单的系统。荷兰食品包装自动化集成商HT(以下简称HT)在实际搭建前,运用Visual Compo…...

商品详情API的SLA保障体系:监控告警、异常检测与自动化修复

在电商业务中,商品详情API是连接前端展示与后端数据的核心枢纽,其稳定性、可用性直接决定用户体验与业务转化——用户点击商品卡片后,若API响应延迟、数据异常或服务中断,会直接导致用户流失、订单损失。SLA(服务等级协…...

爱邦保险:全国全牌照保险经纪领航者

爱邦保险经纪有限公司(以下简称“爱邦保险”)作为一家全国性保险经纪公司,据公开的工商信息及金融监管备案显示,爱邦保险是是经江苏省人民政府同意、中国保险监督管理委员会批准设立的一家全国性全牌照保险经纪公司,具…...

OpenClaw语音控制扩展:Gemma-3-12b-it实现自然语言任务触发

OpenClaw语音控制扩展:Gemma-3-12b-it实现自然语言任务触发 1. 为什么需要语音控制自动化助手 上周五下班路上,我遇到一个典型场景:开车时收到客户紧急邮件需要立即回复,但双手离不开方向盘。这种场景让我开始思考——能否用语音…...

Ostrakon-VL终端惊艳效果:上传全景图→AI自动生成货架分区热力图

Ostrakon-VL终端惊艳效果:上传全景图→AI自动生成货架分区热力图 1. 像素特工:零售场景的AI扫描专家 在零售行业,货架陈列分析一直是个耗时费力的工作。传统方法需要人工巡视记录,不仅效率低下,还容易遗漏细节。现在…...

零基础玩转GEMMA-3像素站:手把手教你搭建复古游戏风AI助手

零基础玩转GEMMA-3像素站:手把手教你搭建复古游戏风AI助手 1. 项目概览:当AI遇上复古游戏美学 GEMMA-3像素站是一个将Google最新多模态大模型Gemma-3与90年代JRPG游戏风格完美融合的创新项目。这个独特的组合让强大的AI能力披上了一层怀旧的像素外衣&a…...

s2-pro开源TTS模型深度解析:Fish Audio专业级架构与训练逻辑

s2-pro开源TTS模型深度解析:Fish Audio专业级架构与训练逻辑 1. 专业级语音合成模型概述 s2-pro是Fish Audio团队开源的一款专业级文本转语音(TTS)模型镜像,代表了当前开源语音合成技术的先进水平。与普通TTS系统不同,s2-pro不仅支持常规的…...

全球工业3D打印标杆:Stratasys全系列产品深度盘点

作为全球工业级3D打印与增材制造解决方案的领导者,Stratasys凭借FDM、PolyJet、SAF等核心专利技术,构建了覆盖入门级、工业级、生产级的全品类设备矩阵,以极致精度、超大尺寸、稳定可靠、材料多元的核心优势,成为航空航天、汽车、…...

跨境支付风控难?查IP归属地如何识别交易风险与合规隐患

凌晨两点,某跨境支付平台的风控系统突然告警:一笔从东南亚IP发起的交易,试图从一张欧洲信用卡向非洲账户转账。系统立即拦截,事后确认这是一起典型的跨境洗钱行为。这不是偶然,而是查IP归属地技术在交易风控中的日常应…...