Popular New Releases in Key Value Database
etcd
v3.5.0
leveldb
1.23
ssdb
FASTER
FASTER v2.0.2
patroni
Popular Libraries in Key Value Database
by etcd-io go
37139 Apache-2.0
Distributed reliable key-value store for the most critical data of a distributed system
by google c++
28077 BSD-3-Clause
LevelDB is a fast key-value storage library written at Google that provides an ordered mapping from string keys to string values.
by boltdb go
12081 MIT
An embedded key/value database for Go.
by ideawu c++
7510 BSD-3-Clause
SSDB - A fast NoSQL database, an alternative to Redis
by patrickmn go
5316 MIT
An in-memory key:value store/cache (similar to Memcached) library for Go, suitable for single-machine applications.
by microsoft csharp
4984 MIT
Fast persistent recoverable log and key-value store + cache, in C# and C++.
by zalando python
4639 MIT
A template for PostgreSQL High Availability with Etcd, Consul, ZooKeeper, or Kubernetes
by cloudflare rust
2881 NOASSERTION
🤠 wrangle your Cloudflare Workers
by soundcloud go
2799 BSD-2-Clause
Roshi is a large-scale CRDT set implementation for timestamped events.
Trending New libraries in Key Value Database
by spencerwooo javascript
884 MIT
🏵 Probably the best looking OneDrive Index around! Powered by Cloudflare Workers.
by cloudflare rust
808 Apache-2.0
Write Cloudflare Workers in 100% Rust via WebAssembly
by TkzcM javascript
786 MIT
PanDownload Web, built with CloudFlare Workers
by lspgn c
450
Cloudflare Workers providing a SQL API
by dferber90 javascript
429
🏖 Open any GitHub repo in CodeSandbox by changing the hostname
by deroproject go
402 GPL-3.0
Graviton Database: ZFS for key-value stores.
by gdtool javascript
397
A Blog Powered By Cloudflare Workers and KV
by cfworker typescript
362 MIT
A collection of packages optimized for Cloudflare Workers and service workers.
by ParveenBhadooOfficial javascript
348 MIT
Index Google Drive Files Easily and Free
Top Authors in Key Value Database
1
20 Libraries
5233
2
11 Libraries
227
3
7 Libraries
39334
4
6 Libraries
178
5
4 Libraries
72
6
4 Libraries
55
7
4 Libraries
9
8
4 Libraries
63
9
4 Libraries
168
10
4 Libraries
1703
1
20 Libraries
5233
2
11 Libraries
227
3
7 Libraries
39334
4
6 Libraries
178
5
4 Libraries
72
6
4 Libraries
55
7
4 Libraries
9
8
4 Libraries
63
9
4 Libraries
168
10
4 Libraries
1703
Trending Kits in Key Value Database
The Java Key Value Database libraries are a number of libraries that allow you to work with key-value storage. They are used to store data in a very simple format and make it easy for you to read the data back out again. Java Key Value Database libraries like lmdbjava, elephantdb, HaloDB etc. are used to store key value pair of data in a database. The key is used as the primary search criteria while retrieving data and the value is of any type. Lmdbjava is a very small library that provides read/write access to LMDB databases. It supports both serialization and deserialization which makes it easy to use with Java objects. The only drawback is that it’s not actively maintained. So if you want to use this library, make sure you have enough time to fix any bugs that may come up during development. ElephantDB is another popular key value store written in C++ with a Java API wrapper around it called elephant-jni. It also provides support for serialization and deserialization of Java objects. ElephantDB is actively maintained by its developers. Full list of the best open source Java Key Value Database libraries are given below
The C++ Key Value Database library is a set of classes and functions that allow you to access information stored in a Beryllium database using C++. It is compatible with many other key value databases. The use of C++ Key Value Database libraries like simDB, NuDB, keyvi is a very common practice nowadays. These libraries are used to store and retrieve data from a database in an easy manner. They also help in saving time and resources in development as well as maintenance of the application. KEYVIBASE is a key value store, key-value store and cache for C++ that supports both read and write. It can be used as an alternative to std::vector or boost::shared_ptr. KEYVIBASE provides an easy way to manage multiple values in memory, typically as a cache. NuDB is a lightweight database library written in C++11 with SQLite3 backend that aims at being fast, portable and easy to use. The library provides simple access to SQLite3 databases via DBI interface; full support for transactions; efficient indexing; fast random access; transaction isolation level read/write switches; full Unicode support; etc... Popular open source C++ Key Value Database libraries for developers include
C# key value database libraries are an excellent way to store data in a fast and reliable way. It has many advantages over other databases like NoSQL databases, relational databases and document databases. Many companies use these key value databases for storing their data. C# Key Value Database libraries DBreeze, BTDB and Akavache, etc are a good choice if you need a fast and reliable key-value storage. DBreeze is one of the best key value stores which offers high performance and scalability. It can be used for storing large volumes of data within short time period. It supports serialization, compression, encryption and much more features which makes it more flexible than other key value stores available in the market today. Akavache is another key value database that you can use when you have an application that is using C# Key Value Database libraries. BTDB is a high performance and fully ACID compliant key-value database engine for .NET/.NET Core. BTDB is written in C#using for all data structures, hence it is very efficient in terms of memory usage. A few of the most popular open source C# key value database libraries for developers are
The python key-value database libraries are the perfect tool for storing references to objects in your app. It's also great for storing data that will be accessed by several different parts of the application. The key-value database can be used in conjunction with any other Python library and is relatively straightforward to use. One of the best features of using a key-value database is that it can be easily changed or removed from a project without affecting any other parts of the application. Python-dotenv library, which is used to store environment variables in a JSON file. PickledDB is a Python package that provides a simple key-value storage library. It has been designed to be simple, fast, and easy to use. The library is completely object-oriented and uses pickling to store the data. The main advantage of using a python key-value database over a relational database is that you don't have to worry about foreign keys, which are necessary for many applications. Because of this, you can store an infinite number of objects in a single table without worrying about overloading your server or crashing under load. Some of the most popular python key-value database libraries among developers are
Go Key Value Database libraries are a common way to store data in Golang. The most popular library for this is etcd which has been around since 2014. Bolt, another popular Go Key Value Database library, was recently released by Google and Immutant which are both based on the same API as etcd. Etcd is a distributed key value store that persists data across machines in a cluster. It is built on Google’s Borg-like Raft consensus algorithm. Etcd provides scalability, reliability and high availability for distributed applications. etcd can be used for storing configuration data for Kubernetes clusters as well. Bolt is a distributed key value store that implements lock-free B+-Tree structures for fast lookups of arbitrary keys. The Bolt library provides a plugin interface to make it easy to add support for other types of stores (i.e., Redis) or implement custom values/valuesets by implementing its interface (i.e., write functions).Immudb is an in memory key value database that exposes an event based API through which applications can subscribe to events, register callbacks and enqueue work using queues. Developers tend to use some of the following open source Go Key Value Database libraries
Ruby key-value database libraries like moneta, mctop, roma are popularly used to store and manipulate data. Ruby Key Value Database libraries are the most popular choices for storing data in a key-value database. The databases are built on top of the standard Ruby libraries and provide an easy way to work with key/value pairs. moneta is a ruby based library that provides a simple interface for working with key/value pairs. It supports various strategies for storing data including key-value mapping, dictionary mapping, hash table, and redis-like store. mctop is a pure ruby library for handling hierarchical sets of entities (also known as geospatial objects). It provides a simple interface for working with points and their associated coordinate systems. Some of the most widely used open source Ruby key value database libraries among developers include
PHP Key Value database library stores values as key-value pairs. It's similar to Ruby's Hash, Python's dict and JavaScript Object Notation (JSON) in structure but unlike them it can be used to store any type of data. Laravel supports key value storage using the Laravel Options package included with the framework. The options package provides an easy way to create custom options that users can set in their config/app.php file. Laravel-options is a PHP Key Value Database library that makes it easy to store and retrieve complex data. The logic can be encapsulated in classes, so you don't have to write it yourself. Flintstone is a PHP Key Value Database library that is really easy to use. It allows you to store and retrieve values using native PHP objects, arrays and keys. Flintstone is a drop-in replacement for PHP Key Value Database library. It supports all the same features as its competitors while being easy to extend with your own storage methods. Flintstone's key value storage is fully compatible with all of the popular PHP Key Value Database library. There are several popular open source PHP Key Value database libraries available for developers,
The use of JavaScript Key Value Database libraries like realmjs, immortalDB, jstorage and others has become a trend. Developers are using these libraries to store data in their applications. The main advantage of using these libraries is that they are easy to implement, support offline storage and can be used with any web framework. RealmJS is an open source mobile database built to run directly inside phones, tablets or wearables. It runs directly inside phones, tablets or wearables, and its small footprint makes it ideal for low-end or resource-constrained devices. ImmortalDB is an ultra-fast, small and powerful database with schema-free support. JStorage is a lightweight storage framework for nodejs. Full list of the best open source JavaScript Key Value Database libraries are below
Trending Discussions on Key Value Database
Laravel how to "properly" store & retrieve models in a Redis hash
Can compacted Kafka topic be used as key-value database?
QUESTION
Laravel how to "properly" store & retrieve models in a Redis hash
Asked 2021-Jul-08 at 17:02I'm developing a Laravel application & started using Redis as a caching system. I'm thinking of caching the data of all of a specific model I have, as a user may make an API request that this model is involved in quite often. Would a valid solution be storing each model in a hash, where the field is that record's unique ID, and the values are just the unique model's data, or is this use case too complicated for a simple key value database like Redis? I"m also curious as to how I would create model instances from the hash, when I retrieve all the data from it. Replies are appreciated!
ANSWER
Answered 2021-Jul-08 at 17:02Short answer: Yes, you can store a model, or collections, or basically anything in the key-value caching of Redis. As long as the key provided is unique and can be retraced. Redis could even be used as a primary database.
Long answer
Ultimately, I think it depends on the implementation. There is a lot of optimization that can be done before someone can/should consider caching all models. For "simple" records that involve large datasets, I would advise to first optimize your queries and code and check the results. Examples:
- Select only data you need, not entire models.
- Use the Database Query Builder for interacting with the database when targeting large records, rather than Eloquent (Eloquent is significantly slower due to the Active Record pattern).
- Consider using the
toBase()
method. This retrieves all data but does not create the Eloquent model, saving precious resources. - Use tools like the Laravel debugbar to analyze and discover potential long query loads.
For large datasets that do not change often or optimization is not possible anymore: caching is the way to go!
There is no right answer here, but maybe this helps you on your way! There are plenty of packages that implement similar behaviour.
QUESTION
Can compacted Kafka topic be used as key-value database?
Asked 2020-Nov-25 at 01:12In many articles, I've read that compacted Kafka topics can be used as a database. However, when looking at the Kafka API, I cannot find methods that allow me to query a topic for a value based on a key.
So, can a compacted Kafka topic be used as a (high performance, read-only) key-value database?
In my architecture I want to feed a component with a compacted topic. And I'm wondering whether that component needs to have a replica of that topic in its local database, or whether it can use that compacted topic as a key value database instead.
ANSWER
Answered 2020-Nov-25 at 01:12Compacted kafka topics themselves and basic Consumer/Producer kafka APIs are not suitable for a key-value database. They are, however, widely used as a backstore to persist KV Database/Cache data, i.e: in a write-through approach for instance. If you need to re-warmup your Cache for some reason, just replay the entire topic to repopulate.
In the Kafka world you have the Kafka Streams API which allows you to expose the state of your application, i.e: for your KV use case it could be the latest state of an order, by the means of queriable state stores. A state store is an abstraction of a KV Database and are actually implemented using a fast KV database called RocksDB which, in case of disaster, are fully recoverable because it's full data is persisted in a kafka topic, so it's quite resilient as to be a source of the data for your use case.
Imagine that this is your Kafka Streams Application architecture:
To be able to query these Kafka Streams state stores you need to bundle an HTTP Server and REST API in your Kafka Streams applications to query its local or remote state store (Kafka distributes/shards data across multiple partitions in a topic to enable parallel processing and high availability, and so does Kafka Streams). Because Kafka Streams API provides the metadata for you to know in which instance the key resides, you can surely query any instance and, if the key exists, a response can be returned regardless of the instance where the key lives.
With this approach, you can kill two birds in a shot:
- Do stateful stream processing at scale with Kafka Streams
- Expose its state to external clients in a KV Database query pattern style
All in a real-time, highly performant, distributed and resilient architecture.
The images were sourced from a wider article by Robert Schmid where you can find additional details and a prototype to implement queriable state stores with Kafka Streams.
Notable mention:
If you are not in the mood to implement all of this using the Kafka Streams API, take a look at ksqlDB from Confluent which provides an even higher level abstraction on top of Kafka Streams just using a cool and simple SQL dialect to achieve the same sort of use case using pull queries. If you want to prototype something really quickly, take a look at this answer by Robin Moffatt or even this blog post to get a grip on its simplicity.
While ksqlDB is not part of the Apache Kafka project, it's open-source, free and is built on top of the Kafka Streams API.
Community Discussions contain sources that include Stack Exchange Network
Tutorials and Learning Resources in Key Value Database
Tutorials and Learning Resources are not available at this moment for Key Value Database