QCon北京|3天沉浸式学习,跳出信息茧房。 了解详情
写点什么

LokiJS 1.4 发布,带来性能提升和 NativeScript 适配器

  • 2016-07-14
  • 本文字数:1323 字

    阅读完需:约 4 分钟

LokiJS 是一个性能优先的内存数据库,其 1.4 版本已经发布,带来了 NativeScript 适配器。

Loki 这个名字源于北欧神话的恶作剧之神。它支持集合,方式和 MongoDB 类似。它还支持字段索引,提供更快地文档访问速度。此外,它使用 JSON 格式将数据保存到磁盘,使数据具备了可移植性。

项目自述中的“首席”开发者 Joe Minichino 在接受 InfoQ 采访时表示,这个主要版本修复了“许多 Bug,并带来了巨大的性能提升。”Minichino 指出:

该版本新增或改进了若干查询操作符,如$where、$ne、$len、$keyin、$nkeyin、$type、$contains$containsAny。存活时间(TTL)特性也十分方便,它会自动删除一定时间间隔内没有被访问的对象。举例来说,这在存储会话或游戏中非常有用。

Loki 最初是作为一个在 phonegap/cordova 应用上存储数据的解决方案,但相对于他对 Loki 的需求而言,Minichino 认为 SQLite“太笨重”。如果你在使用 JavaScript,对于 JavaScript 对象和对象字面量,将它们转化为表格会很痛苦,Minichino 表示,这就是为什么 Loki 被创建成了一个组件,它接收对象,然后在本地文件系统上序列化为 JSON。这样,开发人员就可以在接下来的工作环节中重新加载数据。

1.4 版本新增了 NativeScript 应用适配器。请看下面的示例代码:

复制代码
// 基本要求
var fs = require("file-system");
var Loki = require("./node_modules/lokijs/src/lokijs.js");
var LokiNativeScriptAdapter = require("./node_modules/loki-nativescript-adapter/loki-nativescript-adapter.js");
// 配置 Loki
var path = fs.path.join(fs.knownFolders.currentApp().path, "database.db");
var db = new Loki(path, {
adapter: new LokiNativeScriptAdapter()
});
// 保存一些影片
var movies = db.addCollection("movies");
movies.insert({ title: "Ghost Busters", year: 1984 });
movies.insert({ title: "Ghost Busters II", year: 1989 });
movies.insert({ title: "Ghost Busters", year: 2016 });
console.log(movies.data);
db.saveDatabase();
// 加载并找出部分影片
db.loadDatabase({}, function() {
var movies = db.getCollection("movies");
console.log(movies.find({ title: "Ghost Busters" }));
});

Minichino 将这个主要版本说成是三个开发人员“精雕细琢的工作成果”,包括 obeliskos aleandernst VladimirTechMan 。他们一起改进了查询和动态视图的内部构件,进一步提升了性能。

在 LokiJS 的路线图上,有一个服务器端持久化适配器。目前,其存在形式是整个 db 序列化成了一个文件,每当保存时文件会被重写。

有些开发人员将 LokiJS 用于一个大小几 GB 的 db,每次他们更新一条记录,文件就会被重写。当 db 大小只有几 MB 时,不管在浏览器端,还是在移动设备上,这都没有问题,因为保存操作是毫秒级的。但 Minichino 指出,对于后端,就需要增量持久化适配器了,并且要有用于网络操作和复制的 http/tcp 封装器。

LokiJS 遵循 MIT 许可协议。愿意为项目做贡献的 InfoQ 读者可以在 GitHub 上注册,并提交 pull request 或开放问题。LokiJS 团队乐意听取任何具有负面经验的用户的建设性批评。

查看英文原文: LokiJS 1.4 Release Brings Performance Improvement, NativeScript Adapter

2016-07-14 19:002288
用户头像

发布了 1008 篇内容, 共 403.7 次阅读, 收获喜欢 345 次。

关注

评论

发布
暂无评论
发现更多内容

Sentieon软件快速入门指南

INSVAST

基因数据分析 生信服务 Sentieon

Reviewbot 开源 | 为什么我们要打造自己的代码审查服务?

大卡尔

DevOps Code Review 工程实践 静态代码检查

GeoAI驱动土地价值重塑!中国地质大学(武汉)&和鲸社区Workshop圆满结束!

ModelWhale

Workshop 地球科学 geoai 遥感数据

Zabbix 和 Prometheus 选型对比

巴辉特

Prometheus zabbix

AE2025视频后期优化处理:After Effects 2025 for mac 激活版

你的猪会飞吗

mac软件下载 Mac破解软件 AE2025破解版

制作并量化GGUF模型上传到HuggingFace和ModelScope

SEAL安全

大模型 ModelScope LLM huggingface GGUF

探索电商平台API接入的多样路径

代码忍者

API 接口 pinduoduo API

解析Go切片:为何按值传递时会发生改变?|得物技术

得物技术

golang 扩容 切片

8+ 典型分析场景,25+ 标杆案例,Apache Doris 和 SelectDB 精选案例集(2024版)电子版上线

SelectDB

数据库 数据分析 经验分享 大数据 开源 案例集

主机上云,八仙过海?!

白洞计划

AI

高性能日志结构化引擎 — GreptimeDB Piepline 设计与实现技术揭秘

Greptime 格睿科技

时序数据库 日志储存 日志引擎

鸿蒙接入Flutter3.22

龙儿筝

香港 Web3 一周大事记: 香港财政司司长表示,年内有望再发出多个虚拟资产交易平台牌照

TechubNews

无代码MES是什么?MES系统包含什么功能?

积木链小链

无代码 无代码平台 无代码MES

【等保小知识】等保测评等级从高到低怎么排序?

行云管家

等保 等级保护 等保测评

制作并量化GGUF模型上传到HuggingFace和ModelScope

GPUStack

大模型 ModelScope LLM huggingface GGUF

告别复杂判断!Python中实现函数重载的终极技巧

LLLibra146

Python 装饰器 函数重载

MongoDB面试专题33道解析

威哥爱编程

数据库 mongodb 面试

南开大学携手和鲸科技,以 AI 赋能交叉学科人才培养与课程建设

ModelWhale

Python 人工智能 新文科 南开大学

湖南长沙正规等保机构名单以及地址看这里!

行云管家

等保 等保测评 长沙

怎么自动保存ppt?3个必备的ppt使用技巧分享!

职场工具箱

人工智能 效率工具 办公软件 AIGC AI生成PPT

万字长文2024最全Go面经汇总

王中阳Go

Go 面经 大厂

Hadoop优化|全面调优攻略 | HDFS、MapReduce、YARN性能提升秘诀 | 专家实战分享!

敏捷调度TASKCTL

hadoop hdfs YARN MapReduce服务

Grafana GreptimeDB 数据源插件上线啦,全面替代 Prometheus 插件

Greptime 格睿科技

Grafana 时序数据库 Promethues

在后LLM时代,关于新一代智能体的思考

澜舟孟子开源社区

人工智能 智能体 大模型

RK品牌双十一狂欢,高颜值低延迟键盘超值体验!

科技热闻

《深入浅出Apache Spark》系列③:Spark SQL解析层优化策略与案例解析

数新网络官方账号

sql 大数据

【教程】第二章:设计任务管理系统 —— 胸有成竹,步步为营

NocoBase

开源 低代码 教程 无代码

启信宝产业洞察:广东领跑低空经济,无人机产业强势崛起

合合技术团队

人工智能 算法 无人机 科技

王慧文回归带队美团探索 AI 应用;对话音频开源模型 Hertz-dev:120 毫秒超低延迟丨 RTE 开发者日报

声网

JAVA 应用实现 APM 自动注入(主机篇)

观测云

Java

LokiJS 1.4发布,带来性能提升和NativeScript适配器_开源_James Chesters_InfoQ精选文章