Les bases de données en mémoire peuvent être divisées en bases de données de mémoire relationnelle et en bases de données de mémoire clé-valeur. Dans les applications réelles, les bases de données en mémoire sont principalement utilisées avec de grandes bases de données relationnelles telles qu'Oracle ou MySQL, en mettant l'accent sur les performances.
Il fonctionne comme un cache et ne se concentre pas sur l'intégrité et la cohérence des données.
Les bases de données en mémoire basées sur des valeurs-clés sont plus faciles à utiliser que les bases de données relationnelles, avec de meilleures performances et évolutivité, elles sont donc davantage utilisées dans les applications que les bases de données relationnelles en mémoire.
Comparez les fonctionnalités fonctionnelles des bases de données en mémoire grand public FastDB, Memcached et Redis.
Les fonctionnalités de FastDB sont les suivantes :
1. FastDB ne prend pas en charge l'architecture client-serveur, donc toutes les applications utilisant FastDB doivent s'exécuter sur le même hôte
;2. Fastdb suppose que l'intégralité de la base de données existe dans la RAM et optimise l'algorithme de requête et l'interface en fonction de cette hypothèse.
3. Fastdb n'a pas de surcharge de gestion du tampon de base de données et n'a pas besoin de transférer des données entre le fichier de base de données et le pool de tampons.
4. L'ensemble de l'algorithme et de la structure de recherche fastdb sont basés sur l'hypothèse que toutes les données existent en mémoire, donc l'efficacité de l'échange de données ne sera pas très élevée.
5. Fastdb prend en charge les transactions, la sauvegarde en ligne et la récupération automatique après une panne du système.
6. Fastdb est une base de données orientée application. La table de base de données est construite à partir des informations de classe de l'application.
FastDB ne peut pas prendre en charge l'interface API Java, ce qui rend impropre l'utilisation de FastDB dans cette application.
Memcached
Memcached est un système de serveur de cache open source basé sur Key-Value. Il est principalement utilisé comme cache de données pour les bases de données et ne peut pas être complètement appelé base de données.
L'API dememcached utilise un contrôle de redondance cyclique de trente-deux bits (CRC-32) pour calculer la valeur de la clé, puis distribue les données sur différentes machines. Lorsque la table est pleine, les prochaines données nouvellement ajoutées seront remplacées à l'aide du mécanisme LRU. Étant donné que Memcached n'est généralement utilisé que comme système de mise en cache, les applications utilisant Memcached nécessitent des procédures supplémentaires pour mettre à jour les données de Memcached lors de la réécriture sur des systèmes plus lents (tels que des bases de données principales).
memcached propose des packages de développement client dans plusieurs langages, notamment : Perl, PHP, JAVA, C, Python, Ruby, C#.
Redis
Redis est une base de données clé-valeur hautes performances. L'émergence de Redis a largement compensé les lacunes du stockage de valeurs-clés tel que Memcached, et peut jouer un très bon rôle complémentaire aux bases de données relationnelles dans certaines situations. Il fournit des clients C++, Java, Python, Ruby, Erlang et PHP.
En tant que l'une des bases de données open source les plus populaires aujourd'hui, la base de données MySQL offre aux utilisateurs une solution relativement simple qui convient à un large éventail de déploiements d'applications et peut réduire le coût total de possession des utilisateurs. MySQL est un serveur de base de données multithread en langage de requête structuré (SQL). MySQL a des performances d'exécution élevées, une vitesse d'exécution rapide et est facile à utiliser.
MySQL inclut les avantages clés suivants :
◆ Performances et services fiables MySQL fournit au public les premières versions de tous les logiciels de serveur de base de données, qui sont testées pendant plusieurs mois en utilisant l'open source avant d'être publiées pour une utilisation en production.
◆ Facile à utiliser et à déployer Le système structurel de MySQL est facile à personnaliser et fonctionne rapidement. Sa structure de moteur multi-stockage unique offre de la flexibilité aux entreprises clientes, apporte compacité et stabilité au système de gestion de base de données et est facile à déployer.
◆ L'accès gratuit au code source vous permet d'accéder au code source de MySQL à tout moment. Sa stratégie garantit la liberté et évite de s'enfermer dans une certaine entreprise ou plateforme.
◆ Prise en charge multiplateforme MySQL est disponible sur plus de 20 plates-formes différentes, y compris les principaux systèmes Linux, Mac OS X, Unix et Windows
◆ Puissance de développement fiable MySQL dispose d'une large base d'utilisateurs et d'une équipe de développement expérimentée et de haute qualité.
◆ Répond aux besoins des entreprises. Le système de structure MySQL est simple et facile à utiliser, s'exécute extrêmement rapidement et peut gérer la plupart des besoins applicatifs des bases de données d'entreprise.
Le 8 décembre 2008, Sun Microsystems a annoncé qu'elle fournirait officiellement le logiciel MySQL 5.1 au monde extérieur - il s'agit d'une nouvelle version extrêmement importante de MySQL, la base de données open source la plus populaire au monde. La version MySQL 5.1 GA est désormais fournie dans les trois modes suivants pour répondre aux différents besoins particuliers des différents utilisateurs :
◆MySQL Community Server - une version open source gratuite de la base de données MySQL de Sun. Ce logiciel complet sous licence GPL est destiné aux utilisateurs techniques individuels qui n'ont pas besoin d'assistance commerciale ou de services en vol préférentiels.
Quel est le Nosql open source le plus mature actuellement
HBase et Cassandra sont toutes deux des bases de données basées sur des colonnes, calquées sur BigTable de Google, et elles sont toutes deux écrites en Java. Une autre base de données similaire est HyperTable, qui est utilisée pour certaines analyses de fond car elle est écrite en C++ et est relativement rapide. Cependant, HyperTable est un peu marginal et peu populaire. Ces bases de données open source basées sur des colonnes sont actuellement inférieures d'un ordre de grandeur à celles de BigTable de Google
CouchDB est une base de données de documents. Son plus gros concurrent est MongoDB. MongoDB et HBase adoptent une conception de serveur maître-esclave. La conception de distribution de serveur de CouchDB est similaire à Cassandra, de type Peer to Peer. La conception du serveur maître-esclave est généralement meilleure et plus cohérente et appartient au type CP dans la théorie CAP. CouchDB et Cassandra sont généralement considérés comme étant cohérents avec les événements et appartiennent au type AP dans la théorie CAP. Mais en fait, MongoDB et Cassandra peuvent être définis comme étant fortement cohérents ou éventuellement cohérents.
Les bases de données mentionnées ci-dessus prennent toutes en charge MapReduce. Il semble que HyperTable prenne en charge les index de clé non primaire. HBase et MongoDB avec une configuration cohérente et forte prennent en charge le verrouillage le plus basique (verrouillage d'une seule ligne HBase, verrouillage d'un seul document MongoDB), de sorte que les transactions peuvent être implémentées, mais l'implémentation est un peu compliquée et inefficace. En termes de transactions uniquement, la base de données NoSQL open source actuelle ne fait pas du bon travail.
Le principal argument de vente de MongoDB est qu'il peut effectuer de nombreuses requêtes sans créer d'index de clé non primaire. Cependant, la conception de la distribution du serveur de MongoDB n'est vraiment pas flatteuse. On peut dire qu'il s'agit de l'implémentation la plus moche parmi les bases de données NoSQL.
Il existe de nombreuses bases de données K-V, et les bases de données basées sur des colonnes et les bases de données de documents mentionnées ci-dessus sont en fait des bases de données K-V. Les bases de données K-V de race pure les plus populaires incluent :
Memcached : Très populaire, ne prend pas en charge la persistance
Redis de VMware : Très populaire, utilisé par Sina et Zhihu, type CP.
MemBase : Développé par de nombreux développeurs Memcached, il utilise sqlite comme stockage sous-jacent. Il est souvent utilisé dans les jeux sociaux, Zynga l'utilise, type CP.
Riak, l'implémentation distribuée est plus similaire à CouchDB/Cassandra, type AP. Prise en charge de MapReduce.
Linkin's Voldemort, un événement rare de type AP cohérent en K-V.
TT, TC
Neo4j est purement basé sur l'indexation de coordonnées bidimensionnelles. Mais désormais, MongoDB et CouchDB intègrent cette fonctionnalité.
CouchOne, une société créée par les développeurs de CouchDB, a acquis MemBase, a remplacé son sqlite sous-jacent par CouchDB et a lancé CouchBase, introduisant ainsi MapReduce pour prendre en charge les index de clés non primaires. CouchBase n'a pas encore officiellement publié la version officielle, mais elle le sera bientôt. Bien que CouchDB soit cohérent avec les événements, les développeurs de CouchBase affirment que CouchBase conserve la forte fonctionnalité cohérente de MemBase et que l'implémentation spécifique reste à étudier dans le futur.
Si vous le regardez d'un point de vue mature, les plus matures et les plus populaires incluent CouchDB, Memcached et Redis.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!