9 votes

Y a-t-il un magasin de clés-valeurs intégrable pour Ruby?

J'ai besoin d'un magasin clé-valeur rapide et fiable pour Ruby. Est-ce qu'il en existe déjà un ?

L'exigence est qu'il fonctionne entièrement à l'intérieur du processus Ruby, sans avoir besoin de processus externes.
Il pourrait être en mémoire avec des vidages de disque explicites.
Il doit avoir des temps de récupération de valeur pour clé minimaux, les temps d'écriture peuvent ne pas être aussi bons.
La quantité de données stockées ne sera pas énorme, environ quelques centaines de milliers de clés, chacune avec une valeur textuelle d'environ 1 ko.

5voto

Il s'avère que la meilleure option pour moi était d'utiliser simplement Hash avec Marshal pour le sérialiser sur disque.
YAML est définitivement trop lent pour ce nombre d'objets.
Merci à @ian-armit d'avoir renforcé ma confiance dans les bibliothèques Ruby de base.

5voto

Daniel Points 51

Vous pourriez également essayer Moneta qui vous permet de construire votre propre base de données clé/valeur intégrée dans un processus ruby.

2voto

guest Points 1

Aimez-vous DBM? http://www.ruby-doc.org/stdlib-1.9.3/libdoc/dbm/rdoc/DBM.html

(remplissage pour les spambots)

La classe DBM fournit une interface à une bibliothèque de gestion de bases de données de style Unix dbm.

Les bases de données DBM n'ont pas de tables ou de colonnes; ce sont des magasins de données clés-valeurs simples, comme un Ruby Hash sauf qu'ils ne résident pas en RAM. Les clés et les valeurs doivent être des chaînes de caractères.

1voto

brentmc79 Points 1367

Vous pouvez essayer Oria : https://github.com/intridea/oria

Oria (oh-rye-uh) est un magasin de clés-valeurs en mémoire basé sur Ruby, sans configuration. Il est conçu pour gérer rapidement et facilement des quantités modérées de données sans causer de problèmes de déploiement ou de serveur. Il utilise EventMachine pour fournir une interface réseau à un magasin semi-persistant et écrit de manière asynchrone les données en mémoire dans des fichiers YAML.

0voto

Miguel Ping Points 9013

Découvrez PStore. Pas sûr que ce soit assez rapide cependant.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X