Maison > Article > développement back-end > Commencer avec le cache Redis à partir de zéro
Cet article explique principalement comment démarrer le cache Redis à partir de zéro, qui a une certaine valeur de référence. Maintenant, je le partage avec tout le monde. Les amis dans le besoin peuvent s'y référer
Redis est un langage open source utilisant le ANSI ClangageÉcrire et prendre en charge le réseau, le type de journal, la Key-Valuebase de données qui peut être basée sur la mémoire ou persistante, et fournir plusieurs langues API. À partir de 2010année3mois15 jour, Le développement de Redis est hébergé par VMware. À partir de 2013 année 5 mois, Redis a été développé par PivotalSponsorisé.
redis est un système de stockage valeur-clé . Semblable à Memcached, il prend en charge relativement plus de types de valeur stockés, y compris string( Chaîne), liste(Liste), set(set), zset(ensemble trié --ensemble ordonné ) et hash (type de hachage). Ces types de données prennent tous en charge push/pop, ajouter/supprimer et récupérer Intersection, union et différence et opérations plus riches, et ces opérations sont toutes atomiques. Sur cette base, redis prend en charge diverses méthodes de tri. Comme memcached, afin de garantir l'efficacité, les données sont mises en cache en mémoire. 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, maître-esclave(Maître-esclave) synchronisation.
Redis est une base de données valeur-clé hautes performances. L'émergence de redis a largement compensé memcached de telles clé/valeurinsuffisantes le stockage peut jouer un très bon rôle supplémentaire à la base de données relationnelle dans certaines situations. Il fournit Java, C/C++, C#, PHP, JavaScript, Perl, Object-C , Python, Ruby, Erlang et d'autres clients, Très facile à utiliser. [1]
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 d'abonnement de publication / est entièrement mis en œuvre, 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 de messages du serveur maître. La synchronisation est utile pour l'évolutivité et la redondance des données des opérations de lecture. L'adresse du site officiel de
redis est très facile à retenir, c'est redis.io. (J'ai vérifié spécifiquement et j'ai constaté que le suffixe du nom de domaine io appartient au nom de domaine national, qui est le territoire britannique de l'océan Indien, c'est-à-dire le territoire britannique de l'océan Indien)
Actuellement, Vmware finance le développement et la maintenance du projet redis.
Décompressez le fichier d'installation
Après l'avoir décompressé
Exécutez make pour compiler
Compilez OK,
Entrez le répertoire src
Fonctionnement du terminal Redis-cli
Fichier du serveur Redis pour démarrer le service Redis
Pression du benchmark Redis Fichier de test
Redis-check-xx Script de fichier de sauvegarde d'inspection automobile
Créez le répertoire d'exécution Redis et copiez-y les deux fichiers en cours d'exécution
Copiez le fichier de configuration dans le passé
Signe de réussite dans le démarrage du service redis sur le front-end
./redis-server
Il y a un problème en ce moment. Celui actuellement démarré ne peut pas être désactivé. Il disparaîtra une fois désactivé, il doit donc être modifié
Arrêtez le service Ctrl+z<.>
Arrêtez d'abord le service RedisUtilisez l'arrière-plan pour démarrer le service Redisvim redis.conf Changez pour oui et enregistrez, définissez l'arrière-plan pour démarrer RedisRedémarrez-le J'ai trouvé que l'avant- la fin a toujours commencé au démarrage Démarrez le fichier de configuration ensembleVérifiez le processus Redis On constate que Redis a été démarré4 Utilisation simple Trois variables sont définies, et ces trois variables sont stockées en mémoire Comment lire ? Obtenez ! 5. Opérations spécifiques1 Opération cléDans Redis, "n" et les espaces ne peuvent pas être utilisés comme noms De plus. au contenu du composant, un autre contenu peut être utilisé comme partie nom de la clé. Il n'y a aucune exigence concernant la longueur du nomEn d'autres termes, il s'agit du nom de la variable
Code |
Fonction
|
||||||||||||||||||||||||||
Clé existant |
Existe | ||||||||||||||||||||||||||
Supprimer clé1 clé2…. |
Supprimer la clé spécifiée |
||||||||||||||||||||||||||
Renvoie le type de valeur de la clé donnée |
Modèle de clé |
| tr>|||||||||||||||||||||||||
Renommer oldkey newkey | Renommer | Dbsize | Renvoie le nombre de clés dans la base de données actuelle | tr>||||||||||||||||||||||||
Spécifiez le délai d'expiration de la clé | |||||||||||||||||||||||||||
Touche Ttl | Renvoie les secondes d'expiration de la clé | ||||||||||||||||||||||||||
Sélectionnez db-index | Sélectionnez la base de données | ||||||||||||||||||||||||||
Déplacer la clé db-index | Déplacer la clé de la base de données actuelle vers la base de données spécifiée | ||||||||||||||||||||||||||
Flushdb | Supprimer toutes les clés du fichier actuel base de données | ||||||||||||||||||||||||||
Flushall | Supprimer toutes les clés dans tout bases de données |
Code
Fonction
Le type Liste est en fait une liste doublement chaînée
Si vous le souhaitez pour interroger les 10 derniers utilisateurs,
doivent être vérifiés un par un, ce qui consomme trop de ressources
Exemple de table de chaîne de liste :
via liste La liste chaînée enregistre les informations des 5 derniers utilisateurs connectés au système
De nouveaux utilisateurs arrivent et les anciens utilisateurs sont expulsés
code
|
Fonction |
||||||||||||||||||||
Chaîne de touches Lpush |
Ajouter un élément chaîne en tête de liste correspondant à la clé td> |
||||||||||||||||||||
Clé Rpop |
Supprimer des éléments de la fin de la liste et renvoie l'élément supprimé |
||||||||||||||||||||
|
correspond à la longueur de la liste Si la valeur de la clé n'existe pas, 0. sera renvoyé Si le type de clé correspondant n'est pas une liste, une erreur sera renvoyée | ||||||||||||||||||||
Rpush. chaîne de clé | Comme ci-dessus, ajoutez | ||||||||||||||||||||
Touche Lpop | Supprimer l'élément de la tête de la liste et renvoie l'élément supprimé | ||||||||||||||||||||
Ltrim key start end | Intercepter la liste et conserver les éléments dans la plage spécifiée |
Code |
Fonction |
Ajouter un membre clé | Ajouter un élément de chaîne à la collection d'ensembles correspondant à la clé et renvoyer le succès 1 |
Membre de clé Srem | Correspondant à l'ensemble de clés Supprimer l'élément donné de, renvoie avec succès 1 |
Membre Smove p1 p2 | Supprimez le membre de l'ensemble correspondant de p1 et ajoutez-le à l'ensemble correspondant de p2 |
Clé de carte | Renvoie le nombre d'éléments dans l'ensemble |
Membre clé Sismember | Déterminer si le membre existe dans l'ensemble |
Sinter clé1 clé2.. . . | Renvoie l'intersection de toutes les clés données |
Sunion key1 key2 | Renvoie l'union de toutes les clés données |
Sdiff clé1 clé2.. | Renvoyer l'ensemble de différences de toutes les clés données |
Clé Smembers | Renvoie toutes les clés correspondant au éléments définis, le résultat n'est pas ordonné |
Il y a une clé avec cinq éléments dedans
Ensuite, ajoutez un Linken
Comme un ensemble, un ensemble trié est également une collection d'éléments de chaîne
La différence est que chaque élément est associé à un poids.
Les éléments de l'ensemble peuvent être obtenus dans l'ordre grâce à la valeur de poids
Cas :
Utilisez l'ensemble de tri pour obtenir les 5 publications les plus populaires pour l'apprentissage
Chaque élément de l'ensemble trié est une combinaison de valeur et de poids
Code
|
Fonction |
||||||||||||||||||||
Ajouter des éléments à la collection, et mettre à jour la note correspondante si l'élément existe dans la collection | |||||||||||||||||||||
Membre clé Zrem strong> | Supprimer l'élément spécifié, 1 réussi, 0 n'existe pas | ||||||||||||||||||||
Membre d'augmentation de clé en zinc | Augmentez la valeur du score du membre correspondant en fonction de la plage d'augmentation et renvoyez la valeur du score | ||||||||||||||||||||
Membre clé Zrank | Renvoie le classement (indice) de l'élément spécifié dans l'ensemble. Les éléments dans les ensembles sont triés du petit au grand par score | ||||||||||||||||||||
Démarrage de la touche Zrange end | Similaire à l'opération Irange, les éléments de la plage spécifiée sont renvoyés à partir de l'ensemble, et les résultats ordonnés sont renvoyés | ||||||||||||||||||||
Zrevrange key start end | Idem que ci-dessus, le retour se fait dans l'ordre inverse tr>|||||||||||||||||||||
Clé Zcard | Renvoie le nombre d'éléments dans la collection | ||||||||||||||||||||
Élément clé Zscore strong> | Renvoie le score correspondant à l'élément donné | ||||||||||||||||||||
Zremrangebyrank key min max | Supprimer les éléments de la collection classés dans l'intervalle de points donné |
Enregistrer (instantané) un changement de clé en 900 secondes
Dix changements de clé en 300 secondes (instantané) enregistrer
Dix mille changements de clé en une minute (instantané) enregistrer
Les avantages d'un tel contrôle :
La fréquence de modification des données est très élevée, et la fréquence de sauvegarde est également élevé ,
La fréquence de modification des données est faible et la fréquence de sauvegarde est également faible.
Le nom de la persistance de l'instantané
Initier manuellement la persistance des instantanés
Si pour cette machine :
L'activation de la persistance AOF effacera l'intérieur de redis Données
Activer la persistance AOF
Le fichier de configuration est modifié et redémarrer le service
Voir le processus redis: Ps – A | grep redis
-9 force kill process
démarrer un nouveau processus
Aof ajoute une fréquence de sauvegarde persistante
Toujours force l'écriture sur le disque immédiatement après avoir reçu une commande d'écriture. Il est très lent, mais peut maintenir une persistance complète
Everysec force l'écriture sur le disque une fois par seconde. Il fait un bon travail en termes de performances et de persistance. . Un compromis, recommandé
Non s'appuie entièrement sur le système d'exploitation pour les meilleures performances, mais la persistance n'est pas garantie
Mode maître-esclave
Un serveur charge "écrit"
D'autres serveurs chargent "lire"
Le serveur maître synchroniser automatiquement avec le serveur esclave
Modifier l'adresse IP et le numéro de port
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!