PHP と REDIS: データの永続的ストレージを実現する方法
はじめに:
Web 開発のプロセスでは、データを永続的に保存する必要があることがよくあります。高性能のキーバリューストレージシステムとして、Redis は私たちのニーズを十分に満たすことができます。この記事では、PHP と Redis を使用してデータの永続的なストレージを実現する方法を紹介します。
1. Redis のインストールと構成
Redis の構成:
インストールが完了したら、Redis 構成ファイル (redis.conf) を入力して、いくつかの基本的な構成を実行する必要があります。
a) redis.conf ファイルを開きます
vim /etc/redis/redis.conf
b) Redis パスワードを構成します
「requirepass」パラメータを見つけて変更し、必要なパスワードに設定します。
requirepass your_password
ターミナルに次のコマンドを入力して Redis を開始します:
redis-server
次に、PHP を使用して Redis サーバーに接続し、コード内のデータを読み取り、保存する必要があります。
まず、コード内で
Redis クラスを使用して Redis オブジェクトをインスタンス化し、Redis サーバーに接続する必要があります:
$redis = new Redis(); $redis->connect('127.0.0.1', 6379); $redis->auth('your_password'); // 如果设置了Redis密码,需要进行身份验证
Redis では、
set メソッドを使用して、指定されたキーにデータを保存できます。以下はサンプル コードです:
$redis->set('my_key', 'my_value');
get メソッドを使用して、Redis から指定されたキーの値を読み取ることができます。 。以下はサンプル コードです:
$value = $redis->get('my_key'); echo $value; // 输出:my_value
Redis は単純な文字列値だけでなく、配列、オブジェクトなどの複雑なデータ型も保存できます。 . .
serialize 関数を使用すると、複雑なデータ型を文字列にシリアル化し、Redis に保存できます。サンプル コードは次のとおりです。
$data = ['name' => 'John', 'age' => 25]; $redis->set('my_data', serialize($data));
unserialize 関数を使用して、格納された文字列を元のデータ型に逆シリアル化できます。サンプルコードは以下のとおりです:
$data = unserialize($redis->get('my_data')); print_r($data); // 输出:Array ( [name] => John [age] => 25 )
上記の説明は、Redis にデータを保存し、コード内でそれを読み出すものです。ただし、Redis サーバーがシャットダウンまたは再起動されると、データは失われます。データの永続的なストレージを実現するには、Redis の RDB および AOF メカニズムを使用できます。
RDB 永続性は、Redis のデフォルトの永続化メカニズムです。特定の時間間隔に基づいてスナップショット ファイルを生成し、データをバイナリ形式でディスクに保存します。 Redis の再起動時に、スナップショット ファイルからデータを復元できます。
redis.conf ファイルを開いて、次の構成を見つけます:
save 900 1 save 300 10 save 60 10000
次の構成項目からコメント記号を削除して、RDB 永続性を有効にします:
save 900 1 save 300 10 save 60 10000
AOF 永続性は、Redis サーバーが受信した各書き込みコマンドを AOF ファイルの末尾に追加します。 Redis サーバーが再起動すると、AOF ファイル内のすべての書き込みコマンドが再実行され、それによってデータが復元されます。
redis.conf ファイルを開いて、次の構成を見つけます。
appendonly no appendfilename "appendonly.aof"
appendonly 構成項目の値を # に変更します。 ## はい
、AOF 永続性を有効にすることができます。 b) 構成ファイルを保存して閉じます。
c) Redis サーバーを再起動します。
参考資料:
以上がPHP と REDIS: データの永続的なストレージを実現する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。