跳至正文
Wener Notes

KV DB Awesome

约 3 分钟阅读

使用场景

  • 缓存
  • 数据引擎
    • NoSQL 底层
    • SQL 底层

Redis Compatible

  • kvrocks 是目前唯一支持 多租户/namespace 的 Redis 兼容数据库
    • 但只兼容到了 4.0, 部分客户端要求 5.0+
    • BullMQ 要求 Redis 5+

Awesome

  • Memcache
  • Ehcache
  • Infinispan
  • Geode
    • Apache-2.0, Go
    • 类似于 Redis 但存储在文件
  • distributed, consistent key-value store
    • zookeeper
    • consul
      • 服务、Node 为 first class
    • 使用场景
      • 配置共享
      • 服务发现
      • scheduler coordination
  • consistent
    • raft
    • paxios

存储引擎

    • BSD-3, C++
    • by Google
    • 2011-10
    • inspired by Bigtable
    • adopted by
      • IndexedDB in Google Chrome
      • Riak
      • Bitcoin Core, go-ethereum
    • by Facebook
    • a fork of LevelDB
      • for server workloads
      • 支持 多核心
      • SSD 优化
      • IO 优化
      • Bloom filter, TTL, Statistics, GeoSpatial Indexcing, Column family, Backup, Compaction, Merge Operator
    • adopted by
      • MyRocks - RocksDB + MySQL
      • ArangoDB
      • Cassandra
      • MariaDB
      • Kafka Streams
      • TiDB
      • YugabyteDB
    • 2012-05
  • Badger
  • BoltDB
  • H2
  • BDB - Berkeley DB
  • features
    • Key Types
      • byte array in lexicographical order
    • Value Types
      • byte array
    • Iteration
      • lexicographical order
      • reverse order
      • seeking to a key
    • ACID
      • Atomicity
      • Consistency
      • Isolation
        • 同步
        • 多线程
        • COW/MVCC
      • Durability
  • 参考

FAQ

redis vs memcache

关联信息

反向链接、本文链接的其他页面和外部资料。

站内链接

  • dragonflydb
    笔记 · dragonflydb/dragonfly

    dragonflydb/dragonfly · BSL 1.1, C++, C · 兼容 Redis, Memcached 接口 · 多线程 · 6379 · http://127.0.0.1:6379 · - · 参考 · Dragonfly API Compatibility

  • etcd
    笔记 · etcd

    etcd.conf.yml · adopters: · kubernetes · vitess · Apache APISIX · https://discovery.etcd.io · 发现阶段 · - · 存储 etcd-io/bbolt

  • FoundationDB
    笔记 · FoundationDB

    Apache-2.0, C++ · by Apple · Cassandra -> FDB · 分布式、事务、KV · 作为 DynamoDB, Cassandra, HBase 的替代 · 可以作为别的服务的存储底层: 上层实现 SQL、Document

  • KeyDB
    笔记 · KeyDB

    BSD-3, C++,C · ⚠️ 开发缓慢 · 多线程 Redis - IO 多线程,事务单线程 · ModJS - 可以通过 V8 扩展 · 同步 redis 源码 - 版本匹配 · active-replication, multi-master, flash, s3 backup

  • KvRocks
    笔记 · KvRocks

    Apache KvRocks · sicne 2019 · distributed, RocksDB, Redis protocol · 支持 Namespace · apache/kvrocks-controller · Apache-2.0, Go

  • LevelDB
    笔记 · LevelDB

    c.h - C API · 可看到核心接口和能力,其他语言的封装主要基于 C · KV 读写删、迭代器、批量写、快照、压缩、比较器 · 没有暴露 Slice 类型 · 原子操作通过批量操作实现 · 文件单线程,DB 对象线程安全 · 基于 LevelDB 做 KKV 的一般是使用 Prefix 实现,查询时使用迭代器

  • LMDB
    笔记 · LMDB

    LMDB/lmdb · OpenLDAP Public License, BSD-3, C · from OpenLDAP · by Symas Corporation · adopted by · OpenLDAP · meilisearch

  • Redis
    笔记 · Redis

    redis/redis · RSALv2, SSPLv1, C · 7.2 BSD-3 -> RSALv2, SSPLv1 · BSD fork · valkey · https://codeberg.org/redict/redict · 支持的数据类型: string, bitmap, hll, list, pub/sub, hash, set,...

  • RocksDB
    笔记 · RocksDB

    facebook/rocksdb · fork 自 LevelDB · 参考 · used by: AragonDB, MySQL/MariaDB/MyRocks, Ceph BlueStore, FusionDB, TiDB, YugabyteDB

  • TiKV
    笔记 · TiKV

    tikv/tikv · Apache-2.0, Rust · 目前就 Java 和 Go 客户端相对稳定 https://tikv.org/docs/dev/develop/clients/introduction/ · https://tikv.org/adopters/

  • valkey
    笔记 · valkey

    BSD-3, C · placeholderkv -> valkey · Redis 7.2 BSD fork · valkey-io/valkey-glide · Apache-2.0, Rust, Java, Python, Go, TypeScript

参考资料

GitHub16 条
Hacker News1 条
其他外链6 条
最近更新commit 4b6e1d9编辑