PHP et REDIS : Comment réaliser un stockage persistant des données

WBOY
Libérer: 2023-07-21 12:48:01
original
1284 Les gens l'ont consulté

PHP et REDIS : Comment réaliser un stockage persistant des données

Introduction :
Dans le processus de développement Web, nous avons souvent besoin de stocker des données de manière persistante. En tant que système de stockage clé-valeur hautes performances, Redis peut bien répondre à nos besoins. Cet article explique comment utiliser PHP et Redis pour obtenir un stockage persistant des données.

1. Installation et configuration de Redis

  1. Télécharger et installer Redis :
    Tout d'abord, vous devez télécharger et installer Redis à partir du site officiel de Redis. Les étapes d'installation spécifiques ne seront pas décrites ici.
  2. Configuration de Redis :
    Une fois l'installation terminée, vous devez entrer le fichier de configuration Redis (redis.conf) pour effectuer certaines configurations de base.

    a) Ouvrez le fichier redis.conf

    vim /etc/redis/redis.conf
    Copier après la connexion

    b) Configurez le mot de passe Redis
    Recherchez et modifiez le paramètre "requirepass" et définissez-le sur le mot de passe souhaité :

    requirepass your_password
    Copier après la connexion

    c) Enregistrez les modifications et fermez le fichier.

  3. Démarrez Redis :
    Entrez la commande suivante dans le terminal pour démarrer Redis :

    redis-server
    Copier après la connexion

2. Utilisez PHP pour vous connecter au serveur Redis
Ensuite, vous devez utiliser PHP pour vous connecter au serveur Redis et implémenter lecture et traitement des données dans le stockage du code.

  1. Installez l'extension Redis :
    Pour utiliser Redis en PHP, vous devez d'abord installer l'extension Redis. Il peut être installé via pecl ou compilation de code source.
  2. Connectez-vous au serveur Redis :
    Tout d'abord, vous devez utiliser la classe Redis dans le code pour instancier l'objet Redis et vous connecter au serveur Redis : Redis类来实例化Redis对象,并连接到Redis服务器:

    $redis = new Redis();
    $redis->connect('127.0.0.1', 6379);
    $redis->auth('your_password'); // 如果设置了Redis密码,需要进行身份验证
    Copier après la connexion
  3. 存储数据到Redis:
    在Redis中,我们可以使用set方法将数据存储到指定的key中。以下是一个示例代码:

    $redis->set('my_key', 'my_value');
    Copier après la connexion
  4. 从Redis中读取数据:
    可以使用get方法从Redis中读取指定的key的值。以下是一个示例代码:

    $value = $redis->get('my_key');
    echo $value; // 输出:my_value
    Copier après la connexion
  5. 存储复杂数据类型:
    Redis不仅可以存储简单的字符串值,还可以存储复杂的数据类型,比如数组、对象等。我们可以使用serialize函数将复杂数据类型序列化成字符串,然后再存储到Redis中。示例代码如下:

    $data = ['name' => 'John', 'age' => 25];
    $redis->set('my_data', serialize($data));
    Copier après la connexion

    在需要取回数据时,可以使用unserialize函数将存储的字符串反序列化为原始数据类型。示例代码如下:

    $data = unserialize($redis->get('my_data'));
    print_r($data); // 输出:Array ( [name] => John [age] => 25 )
    Copier après la connexion

三、实现数据的持久化存储
上面介绍的是将数据存储到Redis中,并在代码中读取出来。但是当Redis服务器关闭或重启后,数据将会丢失。为了实现数据的持久化存储,我们可以使用Redis的RDB和AOF两种机制。

  1. RDB持久化(快照持久化):
    RDB持久化是Redis默认的持久化机制。它会根据一定的时间间隔生成快照文件,将数据以二进制格式保存到磁盘上。在Redis重新启动时,可以从快照文件中还原数据。

    a) 配置RDB持久化:
    打开redis.conf文件并找到以下配置:

    save 900 1
    save 300 10
    save 60 10000
    Copier après la connexion
    Copier après la connexion

    这些配置表示:在900秒之后,如果至少有1个key发生了变化,则生成一个RDB文件;在300秒之后,如果至少有10个key发生了变化,则生成一个RDB文件;在60秒之后,如果至少有10000个key发生了变化,则生成一个RDB文件。

    b) 启用RDB持久化:
    将以下配置项的注释符号去掉,即可启用RDB持久化:

    save 900 1
    save 300 10
    save 60 10000
    Copier après la connexion
    Copier après la connexion

    c) 保存并关闭配置文件。

    d) 重启Redis服务器。

    RDB持久化可以将Redis的内存数据保存到磁盘上,但是在Redis重启后,只能恢复到最后一次生成的RDB文件时的状态。

  2. AOF持久化(追加文件持久化):
    AOF持久化会将Redis服务器收到的每个写命令追加到AOF文件的末尾。当Redis服务器重新启动时,它会重新执行AOF文件中的所有写命令,从而还原数据。

    a) 配置AOF持久化:
    打开redis.conf文件并找到以下配置:

    appendonly no
    appendfilename "appendonly.aof"
    Copier après la connexion

    appendonly配置项的值修改为yesrrreee

    Stocker les données sur Redis :

    Dans Redis, nous pouvons utiliser la méthode set pour stocker les données dans la clé spécifiée. Voici un exemple de code :

    rrreee

Lecture de données depuis Redis :
Vous pouvez utiliser la méthode get pour lire la valeur d'une clé spécifiée depuis Redis. Voici un exemple de code :

rrreee

    Stockage de types de données complexes :
  • Redis peut non seulement stocker des valeurs de chaîne simples, mais également des types de données complexes, tels que des tableaux, des objets, etc. Nous pouvons utiliser la fonction serialize pour sérialiser des types de données complexes en chaînes, puis les stocker dans Redis. L'exemple de code est le suivant :
  • rrreee
  • Lorsque vous avez besoin de récupérer des données, vous pouvez utiliser la fonction unserialize pour désérialiser la chaîne stockée dans le type de données d'origine. L'exemple de code est le suivant :
  • rrreee
🎜🎜 3. Implémenter le stockage persistant des données 🎜La description ci-dessus consiste à stocker les données dans Redis et à les lire dans le code. Mais lorsque le serveur Redis est arrêté ou redémarré, les données seront perdues. Afin d'obtenir un stockage persistant des données, nous pouvons utiliser les mécanismes RDB et AOF de Redis. 🎜🎜🎜🎜Persistance RDB (persistance d'instantané) : 🎜La persistance RDB est le mécanisme de persistance par défaut de Redis. Il génère des fichiers d'instantanés basés sur certains intervalles de temps et enregistre les données sur le disque au format binaire. Lors d'un redémarrage Redis, les données peuvent être restaurées à partir du fichier d'instantané. 🎜🎜a) Configurez la persistance RDB : 🎜 Ouvrez le fichier redis.conf et recherchez la configuration suivante : 🎜rrreee🎜Ces configurations signifient : après 900 secondes, si au moins 1 clé change, un fichier RDB est généré après 300 Après 60 secondes ; , si au moins 10 clés ont changé, un fichier RDB sera généré ; après 60 secondes, si au moins 10 000 clés ont changé, un fichier RDB sera généré. 🎜🎜b) Activez la persistance RDB : 🎜 Supprimez les symboles de commentaire des éléments de configuration suivants pour activer la persistance RDB : 🎜rrreee🎜c) Enregistrez et fermez le fichier de configuration. 🎜🎜d) Redémarrez le serveur Redis. 🎜🎜La persistance RDB peut enregistrer les données de la mémoire Redis sur le disque, mais après le redémarrage de Redis, elles ne peuvent être restaurées qu'à l'état du dernier fichier RDB généré. 🎜🎜🎜🎜Persistance AOF (ajouter la persistance du fichier) : 🎜La persistance AOF ajoutera chaque commande d'écriture reçue par le serveur Redis à la fin du fichier AOF. Lorsque le serveur Redis redémarre, il réexécute toutes les commandes d'écriture dans le fichier AOF, restaurant ainsi les données. 🎜🎜a) Configurez la persistance AOF : 🎜 Ouvrez le fichier redis.conf et recherchez la configuration suivante : 🎜rrreee🎜 Modifiez la valeur de l'élément de configuration appendonly en yes pour activer C'est la persistance AOF. 🎜🎜b) Enregistrez et fermez le fichier de configuration. 🎜🎜c) Redémarrez le serveur Redis. 🎜🎜🎜🎜Conclusion : 🎜Cet article explique comment utiliser PHP et Redis pour obtenir un stockage persistant des données. En configurant les mécanismes de persistance RDB et AOF de Redis, vous pouvez vous assurer que les données sont toujours disponibles après le redémarrage du serveur Redis. Dans le même temps, grâce à l'explication d'un exemple de code, les lecteurs peuvent mieux comprendre comment utiliser PHP et Redis pour le stockage de données dans des projets réels. 🎜🎜Références : 🎜🎜🎜Site officiel de Redis : https://redis.io/🎜🎜Code source de Redis : https://github.com/redis/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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!