Redis est un système de stockage. Il prend en charge le stockage de relativement plus de types de valeurs, notamment string (string), list (liste chaînée), set (set), zset (ensemble trié - ensemble ordonné) et hash (type de hachage). "Le didacticiel vidéo Redis approfondi de Maizi Academy" vous fait passer d'une compréhension superficielle à approfondie de ce système.
Redis est un système de stockage clé-valeur. Semblable à Memcached, il prend en charge relativement plus de types de valeurs stockées, notamment string (string), list (liste chaînée), set (set), zset (ensemble trié - ensemble ordonné) et hash (type de hachage). Ces types de données prennent tous en charge les opérations push/pop, ajout/suppression, intersection, union, différence et plus riches, et ces opérations sont toutes atomiques. Sur cette base, Redis prend en charge différentes méthodes de tri. Comme Memcached, les données sont mises en cache en mémoire pour garantir l'efficacité. La différence est que Redis écrira périodiquement les données mises à jour sur le disque ou écrira les opérations de modification dans des fichiers d'enregistrement supplémentaires, et sur cette base, la synchronisation maître-esclave (maître-esclave) est obtenue.
Redis est une base de données clé-valeur hautes performances. L'émergence de Redis a largement compensé les défauts du stockage clé/valeur 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 Java, C/C++, C#, PHP, JavaScript, Perl, Object-C, Python, Ruby, Erlang et d'autres clients, ce qui est très pratique à utiliser.
Redis prend en charge la synchronisation maître-esclave. Les données peuvent être synchronisées du serveur maître vers n'importe quel nombre de serveurs esclaves, et le serveur esclave peut être un serveur maître associé à d'autres serveurs esclaves. Cela permet à Redis d'effectuer une réplication d'arborescence à un seul niveau. La sauvegarde peut écrire des données intentionnellement ou non. Étant donné que le mécanisme de publication/abonnement est entièrement implémenté, lorsque la base de données esclave synchronise l'arborescence n'importe où, elle peut s'abonner à un canal et recevoir l'enregistrement complet de publication des messages du serveur maître. La synchronisation est utile pour l'évolutivité et la redondance des données des opérations de lecture.
Adresse de lecture vidéo : http://www.php.cn/course/566.html
Difficultés d'apprentissage :
Utiliser nosql :
hautes performances, demande de DB à haute concurrence rw (les sites Web web2.0 doivent générer des pages dynamiques et fournir des informations dynamiques en temps réel basées sur les informations personnalisées de l'utilisateur, il est donc Il est difficile d'utiliser des pages dynamiques Technologie statique, de sorte que les exigences de concurrence et de charge de la base de données sont très élevées, atteignant souvent des dizaines de milliers de fois en rw par seconde. La base de données relationnelle, y compris les clusters distribués, peut à peine supporter des dizaines de milliers de requêtes (r), mais si. il peut gérer des dizaines de milliers d'opérations d'écriture SQL, le disque dur physique IO ne peut plus le supporter. Pour les grands sites Web BBS ordinaires, il existe un besoin en termes de concurrence élevée
stockage énorme, haute efficacité. exigences de stockage et d'accès pour les données massives (pour les grands SNS, les utilisateurs génèrent chaque jour d'énormes quantités de données dynamiques. Par exemple, Friendfeed propose 250 millions de mises à jour utilisateur par mois. Pour une base de données relationnelle, il est extrêmement inefficace d'effectuer des requêtes SQL dans une table avec 250 millions d'enregistrements ; connexions d'utilisateurs de grands sites Web. Les systèmes, tels que Tencent, Shengda, etc., ont des centaines de millions de comptes, ce qui est difficile à gérer pour une base de données relationnelle ;
haute évolutivité et haute disponibilité) ; , exigences élevées en matière d'évolutivité et de haute disponibilité (dans l'architecture des sites Web Internet, la base de données est la plus difficile à développer horizontalement. Lorsque le nombre d'utilisateurs et de visites sur le système d'application augmente de jour en jour, il est difficile pour la base de données d'étendre ses performances et capacité de charge simplement en ajoutant des nœuds matériels comme un serveur Web et un serveur d'applications. Pour de nombreux sites Web qui doivent fournir une activité ininterrompue 24 heures sur 24, il est très pénible de mettre à niveau et d'étendre la base de données, ce qui nécessite souvent des temps d'arrêt et une migration des données
nosql supprime les fonctionnalités suivantes de la base de données relationnelle : Exigences de cohérence des transactions de données de la base de données relationnelle (la base de données relationnelle traditionnelle doit maintenir les exigences de cohérence des transactions de la base de données, elle ne peut donc pas répondre aux besoins d'une concurrence élevée rw); Exigences r en temps réel et w en temps réel de la base de données (pour la requête relationnelle de base de données immédiatement après l'insertion d'un élément de données dans la base de données et cela peut être découvert, mais pour de nombreuses applications Web, un tel niveau réel -les performances temporelles ne sont pas requises ); Pour les requêtes SQL complexes, en particulier les exigences de requêtes liées à plusieurs tables (tout système Web avec une grande quantité de données, en particulier SNS, est très tabou en ce qui concerne les requêtes de corrélation de plusieurs grandes tables) et les requêtes SQL de type analyse de données complexes. Du point de vue de la demande et de la conception du produit, pour éviter cette situation, il s'agit souvent d'une requête unique pour une requête de clé primaire d'une table et d'une simple requête de pagination conditionnelle d'une seule table. de SQL est fortement affaibli);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!