What's the best key-value storage? [closed] - database

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 4 years ago.
Improve this question
Can you recommend a good key-value storage (e.g with great performance etc.)?

Have you looked into Redis yet? I've used it on Pantheon platform, the experience was more than satisfactory.
Redis is an open source (BSD licensed), in-memory data structure store, used as a database, cache and message broker. It supports data structures such as strings, hashes, lists, sets, sorted sets with range queries, bitmaps, hyperloglogs and geospatial indexes with radius queries. Redis has built-in replication, Lua scripting, LRU eviction, transactions and different levels of on-disk persistence, and provides high availability via Redis Sentinel and automatic partitioning with Redis Cluster. Learn more →
You may wanna check out the Why We Recommend Redis as a Drupal or WordPress Caching Backend article at Pantheon blog.

Related

any alternative SQL for flutter rather than sqflite [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 3 years ago.
Improve this question
I was wonder if there any alternative way to store offline data in dependencies database rather than using sqflite!!
if any one knows any SQL or even nosql libraries for flutter that's is not complicated like sqflite please mention it!
This is a alternative, use a NoSql database.
Sembast
Yet another NoSQL persistent store database solution for single process io applications. The whole document based database resides in a single file and is loaded in memory when opened. Changes are appended right away to the file and the file is automatically compacted when needed.
Works on Dart VM and Flutter (no plugin needed, 100% Dart). Inspired from IndexedDB, DataStore, WebSql, NeDB, Lawndart...
Supports encryption using user-defined codec.
This is a link when you can get the library:
https://pub.dev/packages/sembast

Looking for a key-value database that is not in-memory, and have "list,set" datatypes [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 8 years ago.
Improve this question
I am using redis to store highly requested info, but I want to store less-requested stuff in a list/set on the disk. I have been looking around with no luck. Memcached, Riak etc. don't seem to have list/set datatypes. Is there a database that have those features?
Thanks.
Run another Redis instance and configure it with AOF on. Append-only file.
You can read more about it here:
http://redis.io/topics/persistence
Scroll half way down, there is alot of good information on it.
Append-only file
Snapshotting is not very durable. If your computer
running Redis stops, your power line fails, or you accidentally kill
-9 your instance, the latest data written on Redis will get lost. While this may not be a big deal for some applications, there are use
cases for full durability, and in these cases Redis was not a viable
option. The append-only file is an alternative, fully-durable strategy
for Redis. It became available in version 1.1. You can turn on the AOF
in your configuration file: appendonly yes From now on, every time
Redis receives a command that changes the dataset (e.g. SET) it will
append it to the AOF. When you restart Redis it will re-play the AOF
to rebuild the state.

looking for a distributed key value database for persistence [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 8 years ago.
Improve this question
I'm looking for an efficient key-value distributed persistent database.
I've look into Redis, but it only support hashes with up to $2^{32}$ keys, which is not enough for my application
I've look into Memcached, but it is not designed for long-term persistence, it is designed for keys-value pairs to expire after a while
I've look into BerkeleyDB, but does not support a client-server paradigm, it is basically a in-app storage engine
I've look into HyperTable, but is not really row-oriented, you cannot edit existing rows unless you want to hack the timestamps, and after a key + timestamp is deleted, it cannot be reinserted. Also, the only supported value type are strings, if you want to store floats or complex objects you need to serialize into a string and then deserialize
I've look into MongoDB, which is very flexible, but it has suffered from very important performance and scalability issues that haven't been addressed in the last two years. They are summarized in this blog post.
I'm going to look next into Cassandra and Riak, and as you see i'm quickly running out of real options
What other databases are there that can fit the description i've outlined above?
Take a look at CouchDB. http://guide.couchdb.org/draft/why.html
It is a non-relational database, open-source, distributed (incremental, bidirectional replication), schema-free. Data is stored in documents formatted as JSON. It has robust persistence and is a distributed key value database.
Take a look at http://code.google.com/p/fastdht
It is a high performance distributed hash table based on Berkeley DB.

Simple, fast and reliable database (NoSQL) [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 6 years ago.
Improve this question
I'm looking for a solution to add persistence to my native-code application. It should be simple (no SQL), fast, and most-importantly reliable.
The best approach I can think of is using memory-mapped files. It's as simple and fast as it can get - you simply store the values in plain-data arrays in "memory". However, I don't think it's very reliable - a power failure could leave the database in an inconsistent or corrupted state. Being able to transactionally sync a group of memory-mapped files to disk would solve this, but I don't think it's possible. Also, unless the filesystem supports snapshots or COW cloning (e.g. Brtfs), backups would mean having to stop the application completely while the files are being copied.
Does anyone have better ideas?
Tokyo Cabinet
http://fallabs.com/tokyocabinet/
Berkeley DB
http://www.oracle.com/technetwork/database/berkeleydb/overview/index.html
Your list of requirements sounds like Redis. See http://redis.io/ for more.
Another possibility is Cassandra. See http://cassandra.apache.org/ for more on that.
RocksDB or levelDB are other great options.

Are there any databases that support protocol buffers? [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 2 years ago.
Improve this question
Are there any databases, in either the SQL or NoSQL worlds, that support protocol buffers? (Support could mean various things, but hopefully would include being able to index on fields in protocol buffers.)
ProfaneDB: http://profanedb.gitlab.io
"ProfaneDB is a gRPC interface between Protocol Buffers and RocksDB"
P.S:
Though the question was asked 10 years ago I still find it very relevant, specially with the ascension of gRPC. Hope that can be of help.
I am not aware of any (not that they don't exist, I just don't know about them), but perhaps it is worth discussing an alternate strategy and the pros and cons.
Typically you would want to store a serialized version of your protocol buffer, indexed by some particular key (a unique identifier, perhaps). You could then build secondary indexes for other interesting fields that point to that unique identifier. The idea is that you would want explicit indexes like this to scale beyond what a system that provides arbitrary indexes. This obviously opens up a world of new problems (such as stale arbitrary indexes).
Here is a project I found: https://github.com/google/mysql-protobuf
It's sql that speaks protobuf, looks promising but last commit was in mid March 2016.
ClickHouse lately added support for protobuf messages.
Cloud Spanner would provide native support for protobufs.
https://cloud.google.com/spanner/

Resources