Qu'est-ce que Redis
redis est une base de données nosql (pas seulement sql, pas seulement sql), traduite en chinois on l'appelle non relationnelle base de données.
1. Qu'est-ce que nosql ?
NoSQL fait généralement référence aux bases de données non relationnelles. Il s'agit de Not-Only SQL, qui peut être un bon complément aux bases de données relationnelles. . Avec l'essor des sites Internet Web2.0, les bases de données non relationnelles sont désormais devenues un nouveau domaine extrêmement populaire et les produits de bases de données non relationnelles se développent très rapidement. La base de données relationnelle traditionnelle a été incapable de gérer les sites web web2.0, en particulier les sites Web purement dynamiques web2.0 de type SNS à très grande échelle et hautement concurrents, exposant de nombreux problèmes insurmontables, tels que :
1 , High performances - la nécessité d'une lecture et d'une écriture simultanées élevées de la base de données
Les sites Web Web2.0 doivent générer des pages dynamiques et fournir des informations dynamiques en temps réel sur la base des informations personnalisées de l'utilisateur, il est donc fondamentalement impossible d'utiliser une page dynamique Technologie de statique, donc La charge simultanée de la base de données est très élevée, atteignant souvent des dizaines de milliers de requêtes de lecture et d'écriture par seconde. La base de données relationnelle peut à peine supporter des dizaines de milliers de requêtes SQL, mais lorsqu'il s'agit de dizaines de milliers de requêtes d'écriture de données SQL, les E/S du disque dur ne peuvent plus le supporter. En fait, pour les sites Web BBS ordinaires, il existe souvent un besoin de demandes d'écriture simultanées élevées, telles que des statistiques en temps réel sur le statut des utilisateurs en ligne du site Web, l'enregistrement du nombre de clics sur les publications populaires, le décompte des votes, etc. est une demande assez courante.
2. Stockage énorme - la nécessité d'un stockage et d'un accès efficaces à des données massives
Les sites Web SNS comme Facebook, Twitter et Friendfeed génèrent chaque jour d'énormes quantités d'activité des utilisateurs, avec Friendfeed comme support. Par exemple, il y a 250 millions de mises à jour utilisateur en un mois. Pour les bases de données relationnelles, effectuer des requêtes SQL dans une table contenant 250 millions d'enregistrements est extrêmement inefficace, voire intolérable. Un autre exemple est le système de connexion des utilisateurs des grands sites Web, tels que Tencent et Shanda, qui possèdent souvent des centaines de millions de comptes, et les bases de données relationnelles sont également difficiles à gérer.
3. Haute évolutivité et haute disponibilité - Exigences de haute évolutivité et de haute disponibilité de la base de données
Dans l'architecture basée sur le Web, la base de données est la plus difficile à développer horizontalement. Le nombre d'utilisateurs et de visites sur le système d'application augmente de jour en jour, votre base de données ne peut pas augmenter ses performances et sa capacité de charge simplement en ajoutant davantage de matériel et de nœuds de service tels que des serveurs Web et des serveurs d'applications. Pour de nombreux sites Web qui doivent fournir des services ininterrompus 24 heures sur 24, il est très pénible de mettre à niveau et d'étendre le système de base de données, ce qui nécessite souvent des temps d'arrêt de maintenance et une migration des données. Pourquoi la base de données ne peut-elle pas être étendue en ajoutant continuellement des nœuds de serveur ?
Les bases de données NoSQL ont été créées pour résoudre les défis posés par les collectes de données à grande échelle et les multiples types de données, en particulier les problèmes d'application Big Data.2. Quatre grandes catégories de bases de données NoSQL
Base de données de stockage de valeurs-clésProduits associés : Tokyo Cabinet/Tyrant, Redis, Voldemort, Berkeley Applications typiques de base de données : mise en cache de contenu, principalement utilisée pour gérer des charges d'accès élevées à de grandes quantités de données. Modèle de données : une série de paires clé-valeur Avantages : requête rapide Inconvénients : les données stockées ne disposent pas d'une base de données de stockage en colonnes structurée Produits associés : Cassandra, HBase, Riak Applications typiques : système de fichiers distribués Modèle de données : basé sur des colonnes Le stockage en cluster stocke les données ensemble dans la même colonne. Avantages : vitesse de recherche rapide, forte évolutivité et expansion distribuée plus facile. Inconvénients : fonctions relativement limitéesBase de données de documentsProduits associés : CouchDB, MongoDB typique. applications : applications Web (similaires à la valeur-clé, la valeur est structurée) Modèle de données : une série de paires clé-valeur Avantages : les exigences en matière de structure des données ne sont pas strictes. Inconvénients : les performances des requêtes ne sont pas élevées et il existe un manque de syntaxe de requête unifiée. Base de données graphiquesBases de données associées : Neo4J, InfoGrid, Infinite Graph Applications typiques : Modèle de données de réseaux sociaux : Avantages de la structure graphique : Utiliser des algorithmes liés à la structure graphique. Inconvénients : Le graphique entier doit être calculé pour obtenir le résultat, et il n'est pas facile de mettre en œuvre une solution de cluster distribué.3. Bases de Redis
Redis stocke les données en mémoire En raison de sa vitesse d'accès rapide au contenu, Redis est largement utilisé dans les projets Internet : La vitesse d'accès. est rapide. Officiellement, la vitesse de lecture atteindra 300 000 fois par seconde et la vitesse d'écriture sera d'environ 100 000 fois par seconde. Les limitations spécifiques sont limitées au matériel. Inconvénients : Le support de persistance n'est pas assez bon. Ainsi, redis n'est généralement pas utilisé comme base de données principale de stockage des données, et est généralement utilisé en conjonction avec des bases de données relationnelles traditionnelles Redis est une paire clé-valeur open source hautes performances (. base de données clé-valeur). Il s'adapte aux besoins de stockage dans différents scénarios en fournissant une variété de types de données clé-valeur pris en charge par Redis jusqu'à présent : Type de chaîne Type de hachage Type de liste Type de collection4. Scénarios d'application de redis
Caching (requête de données, connexion courte, contenu d'actualité, contenu produit, etc.). (Le plus utilisé) Séparation de sessions dans une architecture de cluster distribué. Liste d'amis en ligne du salon de discussion. File d'attente des tâches. (Vente flash, vente rush, 12306, etc.) Classements des applications. Statistiques de visites du site Web. Traitement de l'expiration des données (précis à la milliseconde près)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!