Maison > Article > base de données > Pourquoi Redis crée-t-il 16 bases de données par défaut ?
Dans le travail de développement réel, nous utilisons généralement la base de données Redis pour la mise en cache, les verrous distribués/files d'attente de messages, etc. Mais nous nous posons généralement cette question : pourquoi 16 bases de données sont-elles créées par défaut après l'installation et la configuration du serveur Redis ?
Présentons cette question.
1. L'origine de 16 bases de données
Redis est un serveur de stockage structuré par dictionnaire. Une instance Redis fournit plusieurs dictionnaires pour stocker les données. peut spécifier dans quel dictionnaire les données sont stockées. Ceci est similaire à la façon dont plusieurs bases de données peuvent être créées dans une instance de base de données relationnelle (comme le montre la figure ci-dessous), de sorte que chaque dictionnaire peut être compris comme une base de données indépendante.
Redis prend en charge 16 bases de données par défaut. Vous pouvez modifier cette valeur en ajustant les bases de données dans le fichier de configuration redis redis/redis.conf. et la configuration sera terminée.
Une fois que le client a établi un lien avec redis, il sélectionnera la base de données n°0 par défaut, mais vous pouvez utiliser la commande select pour modifier la base de données à tout moment.
# 切换数据库操作:切换到1 127.0.0.1:6379> SELECT 1 OK 127.0.0.1:6379[1]> 127.0.0.1:6379[1]> # 切换到0 127.0.0.1:6379[1]> SELECT 0 OK 127.0.0.1:6379> # 从1号库中获取username 127.0.0.1:6379[1]> get username 。
(Partage vidéo d'apprentissage : tutoriel vidéo redis)
Dans les projets réels, vous pouvez spécifier la base de données sous la forme d'un fichier de configuration redis, comme montré dans la figure ci-dessous Afficher
2. Comprendre correctement le concept de « base de données » de redis
Étant donné que redis ne prend pas en charge les noms de bases de données personnalisés, toutes les bases de données Nommées par numéro. Les développeurs doivent enregistrer eux-mêmes la correspondance entre les données stockées et la base de données. De plus, Redis ne prend pas en charge la définition de mots de passe d'accès différents pour chaque base de données. Tous les clients peuvent accéder à toutes les bases de données ou n'ont pas l'autorisation d'accéder à toutes les bases de données. Pour bien comprendre le concept de « base de données » de redis, nous devons mentionner une commande :
Effacer les données de toutes les bases de données de l'instance redis
127.0.0.1:6379> certaines données de base de données Redis dans d'autres bibliothèques ne seront pas effacées
127.0.0.1:6379> FLUSH db0
Cette commande peut effacer toutes les données de base de données sous l'instance, ce qui est différent de la base de données relationnelle que nous connaissons. Plusieurs bibliothèques de bases de données relationnelles sont souvent utilisées pour stocker des données pour différentes applications, et il n'existe aucun moyen d'effacer simultanément toutes les données de bibliothèque sous l'instance. Pour Redis, ces bases de données ressemblent davantage à des espaces de noms et ne conviennent pas au stockage de données provenant de différentes applications. Par exemple, vous pouvez utiliser la base de données n° 0 pour stocker les données dans l'environnement de développement et utiliser la base de données n° 1 pour stocker les données dans l'environnement de test. Cependant, il n'est pas approprié d'utiliser la base de données n° 0 pour stocker les données de l'application. A et utilisez la base de données n°1 pour stocker les données de l'application B. Différents environnements Différentes instances Redis doivent être utilisées pour stocker les données. Redis est très léger. Une instance Redis vide n'occupe qu'environ 1 Mo de mémoire, vous n'avez donc pas à vous soucier du fait que plusieurs instances Redis occupent beaucoup de mémoire supplémentaire.
Tutoriel base de données 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!