开源内存数据库有哪些

开源内存数据库有:1、FastDB;2、SQLite;3、Dragonfly;4、Redis;5、Memcached;6、KeyDB;7、Skytable。FastDb是一个c++接口的开源内存实时数据库。

开源内存数据库有哪些-Worktile社区

1、FastDB

FastDb 是高效的内存数据库系统,具备实时能力及便利的 C++ 接口。FastDB 不支持 client-server 架构因而所有使用 FastDB 的应 用程序必须运行在同一主机上。FastDB 针对应用程序通过控制读访问模式作了优化。通过降低数据传输的开销和非常有效的锁机制提供了高速的查询。对每一 个使用数据库的应用数据库文件被影射到虚拟内存空间中。因此查询在应用的上下文中执行而不需要切换上下文以及数据传输。fastdb 中并发访问数据库的同 步机制通过原子指令实现,几乎不增加查询的开销。fastdb 假定整个数据库存在于 RAM 中,并且依据这个假定优化了查询算法和接口。此外,fastdb 没有数据库缓冲管理开销,不需要在数据库文件和缓冲池之间传输数据。这就是 fastdb 运行速度明显快于把数据放在缓冲池中的传统数据库的原因。

Fastdb 支持事务、在线备份以及系统崩溃后的自动恢复。事务提交协议依据一个影子根页面算法来自动更新数据库。恢复可以执行得非常快,为临界应用提 供了高可用性。此外,取消事务日志改进了整个系统的性能,并且使得可以更有效的利用系统资源。

2、SQLite

SQLite,是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中。SQLite是一个软件库,实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。SQLite是一个增长非常快的数据库引擎,这是在普及方面的增长,与它的尺寸大小无关。SQLite 源代码不受版权限制。

它是D.RichardHipp建立的公有领域项目。它的设计目标是嵌入式的,而且已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。它能够支持Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语言相结合,比如 Tcl、C#、PHP、Java等,还有ODBC接口,同样比起Mysql、PostgreSQL这两款开源的世界知名数据库管理系统来讲,它的处理速度比他们都快。SQLite名列前茅个Alpha版本诞生于2000年5月。 至2021年已经接近有21个年头,SQLite也迎来了一个版本 SQLite 3已经发布。

3、Dragonfly

dragonfly是一个的开源内存存储数据库,类型属于nosql,兼容redis和memcached API。特点:

  • 简单:设计用于隐藏幕后的所有复杂性,从而避免使用复杂的群集配置;
  • 成本效益高:Dragonfly经过优化,可以利用所有硬件资源以较小的成本交付相同的工作负载;
  • 兼容:Dragonfly使用完全相同的客户端库支持Redis API。使用Dragonfly时,无需更改应用程序端的任何内容;
  • 内存效率高:Dragonfly内部数据结构经过内存优化,可减少20%-40%的内存资源消耗。

4、Redis

redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set –有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。

Redis 是一个高性能的key-value数据库。 redis的出现,很大程度补偿了memcached这类key/value存储的不足,在部 分场合可以对关系数据库起到很好的补充作用。它提供了Java,C/C++,C#,PHP,JavaScript,Perl,Object-C,Python,Ruby,Erlang等客户端,使用很方便。

5、Memcached

memcached是一种高性能、分布式内存对象缓存系统,本质上是通用的,但最初旨在通过减轻数据库负载来加速动态web应用程序。特点:

  • 协议简单:使用基于文本行的协议,能直接通过telnet在Memcached服务器上存取数据,实现比较简单
  • 基于libevent的事件处理:libevent是基于C开发的程序库,Memcached利用这个库进行异步事件处理;
  • 内置内存存储方式:Memcached有一套自己的管理内存方式,而且非常高效,所有数据都保存在Memcached内置的内存中,当存入的数据占满空间时,会使用LRU算法来清除不使用的缓存数据,从而来重用过期数据的内存空间,但重启服务器数据将丢失;
  • memcached不互相通信的分布式:各个Memcached服务器之间互不通信,都是独立存取数据,通过客户端的设计让其具有分存式特点,支持大量缓存和大规模应用。

6、KeyDB

KeyDB 是 Redis 的分支,专注于多线程、内存效率和高吞吐量。除了多线程之外,KeyDB 还具有仅在 Redis Enterprise 中才能使用的功能,例如:Active Replication、FLASH 存储,直接备份到 S3,且对 Redis 完全兼容。特点:

  • 跨域多主:KeyDB 支持多个异步复制架构的主节点彼此同步。支持复制架构中所有节点都是主节点,不需要哨兵监控节点。在 Redis 原有的高可用架构之外,又增加了新的架构思路。
  • 垂直和水平缩放:KeyDB 是多线程设计,可以支持垂直/水平扩展,最大化资源利用率。对于那些 Redis 实例达到设备上线的情况,这是一个很好的替代选择。使用标准 KeyDB 节点非常多可有效使用 10 个内核,启用 TLS 时可有效使用 16 个内核!
  • 更方便的生存时间设置:KeyDB 提供了 Subkey EXPIRE,可以精确设置集合中成员的过期时间。EXPIREs 现在还具有近乎实时的主动删除功能。
  • TLS 加密:KeyDB 提供 TLS 支持,其吞吐量是 Redis + TLS 的 7 倍;虽然 TLS 加密增加了额外的 CPU 开销,但 KeyDB 的多线程架构支持更多的工作线程来防止性能下降。
  • ModJS:可以使用 KeyDB 开源的 Javascript 模块创建自定义命令。建立在强大的 V8 JIT 引擎之上,ModJS 比 LUA 更快,并支持许多 node.js 模块,为常见任务提供广泛的库支持。
  • ARM 支持:KeyDB 支持 ARM。

7、Skytable

Skytable 是一个极其快速、安全和可靠的实时 NoSQL 数据库,具有自动快照和 TLS。Skytable 致力于提供键 / 值存储、文档存储和列式数据库的优点,即简单性、灵活性和可查询性的规模。Skytable 目前正在开发中,但可以作为一个高性能、安全和持久的键值存储。特点:

  • 非常快:扩展到每个节点每秒数百万次查询
  • 多个键空间 / 表:与操作无缝集成以提供类似 SQL 的体验
  • 快照:用于无压力备份的自动(和可调)快照
  • 安全:使用 SSL/TLS 将安全连接内置到 Skytable
  • 多线程:旨在利用所有 CPU 内核
  • 资源友好:数据库服务器不需要超过 1MB 即可运行
  • 方便:没有麻烦的设置和特定于系统的依赖项

延伸阅读

内存数据库(IMDB)功能

  • 永久数据的管理,包括数据库的定义、存储、维护等
  • 完成各种数据操作,如查询处理、存取、完整性检查
  • 事务管理,包括调度与并发控制等
  • 对存取的控制和安全性检验
  • 具有数据库的可靠性恢复机制

文章标题:开源内存数据库有哪些,发布者:Z, ZLW,转载请注明出处:https://worktile.com/kb/p/34487

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
Z, ZLWZ, ZLW认证作者
上一篇 2023年1月5日 上午5:09
下一篇 2023年1月5日 下午9:21

相关推荐

  • 项目管理okr怎么制定

    项目管理中制订有效的OKR(目标与关键结果)涉及明确项目的核心目标、列举衡量成功的关键结果以及确保关键结果可量化与可追踪。对其中一点进行详细描述,便是确保关键结果的可量化与可追踪性。这意味着每个关键结果都必须有明确的度量标准和完成时限,以便项目团队可以持续监控进度,并对照目标进行调整。通过设定具体的…

    2024年1月8日
    29600
  • devops需要什么技术

    开门见山,DevOps不仅是工具和自动化的集合,还涉及文化和实践的改变。这一领域需掌握的技能多样,包括但不限于:1、持续集成和持续交付(CI/CD)、2、代码版本控制、3、自动化测试和部署、4、配置管理、5、监控和日志管理、6、云服务和容器化技术、7、编程与脚本语言能力、8、Linux/Unix系统…

    2024年3月26日
    9100
  • 如何设定和管理跨部门的OKR

    跨部门的目标与关键结果(OKR)设定及管理要求明确目标、促进协作、保持灵活性和确保跟踪。设定时1、明确层级目标2、确保目标对齐;在管理上3、跨部门沟通4、定期更新与复盘。本文将深入探讨跨部门OKR的有效设定和管理方法,并提供相关的实用策略,以帮助组织达到跨部门协作与整体战略目标的顺畅对接。 一、明确…

    2023年12月8日
    36000
  • 为什么vscode无法写入文件

    VSCode无法写入文件的原因主要包括:文件权限不足、磁盘空间不足、编辑器配置问题、文件正在被其他程序使用、或者是VSCode的插件冲突。通常情况下,文件权限不足是最常见的原因,特别是在类Unix操作系统中。需要检查当前用户是否对文件或其上级目录拥有写入权限。权限问题可以通过改变文件权限或以管理员身…

    2024年4月3日
    28000
  • 用户画像与买家人群有何区别

    用户画像和买家人群在目的、创建过程以及使用方式上存在差异。1、用户画像更注重深入个体特征的描述,包含临界信息与行为习惯。2、买家人群广泛关注潜在消费群体的共性,着眼于市场分割和目标定位。3、用户画像经常应用于产品设计和个性化营销。4、买家人群的划分便于企业制订市场战略和大规模沟通策略。在进行详细描绘…

    2024年1月19日
    22000
  • RPC,SOAP,REST有什么区别呢

    RPC,SOAP,REST的区别有:1、交互数据的编解码方式不同;2、用户感知的行为方式不同;3、RPC的性能更好;4、SOAP和REST一般都跟语言无关。Rpc一般采用自定义协议或者常见的二进制协议,也有用JSON的。而SOAP采用XML,REST就是JSON了。 1、交互数据的编解码方式不同 R…

    2023年2月7日
    57500
  • 操作指南:实现知识库与其他系统的集成

    实现知识库与其他系统的集成的操作步骤:1、明确集成目标和优势;2、选择适合的集成方式;3、择适合的集成工具;4、定义数据同步和映射规则;5、统一身份认证和权限管理;6、实施安全审计和监控机制;7、提供培训计划和技术支持;8、进行测试和验证;9、逐步实施;10、持续改进。将这些系统集成到一个统一的知识库中可以极大地提高工作效率、数据准确性和协作水平。

    2023年11月17日
    26600
  • 什么是零缺陷管理

    零缺陷管理是:零缺陷管理的思想主张企业发挥人的主观能动性来进行经营管理,生产者、工作者要努力使自己的产品、业务没有缺点,并向着高质量标准的目标而奋斗。是以抛弃“缺点难免论”,树立“无缺点”的哲学观念为指导,要求全体工作人员“从开始就正确地进行工作”。 一、什么是零缺陷管理 零缺陷管理最早应用于美国马…

    2023年5月6日
    63000
  • devops是什么时候提出的

    DevOps概念诞生于2009年左右,通过整合软件开发(Development)与信息技术运维(Operations)的实践和工具,目标在于缩短系统开发周期,确保持续交付高质量软件。专注于提升跨功能团队之间的沟通、合作与协同,DevOps已转型为一种新兴的IT文化基石,并通过一系列自动化手段大大提高…

    2024年3月26日
    7800
  • StreamNative翟佳:开源模式价值为王,基础软件的未来在国内社区

    翟佳,StreamNative 联合创始人Apache Pulsar 和 Apache BookKeeper PMC 成员,前 EMC 统一存储部门技术负责人,前 Streamlio 创始工程师。2020 年获选“中国开源先锋 33 人榜单”、2021 年荣获“OSCAR 尖峰开源人物”称号,开源技…

    2022年3月20日
    62600

发表回复

登录后才能评论
注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部