Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimanakah PHP terus mendengar langganan mesej Redis dan mengemas kini data cache?

Bagaimanakah PHP terus mendengar langganan mesej Redis dan mengemas kini data cache?

WBOY
WBOYasal
2023-09-05 14:37:46734semak imbas

Bagaimanakah PHP terus mendengar langganan mesej Redis dan mengemas kini data cache?

Bagaimanakah PHP boleh terus mendengar langganan mesej Redis dan mengemas kini data cache?

Sebagai pangkalan data cache berprestasi tinggi, Redis digunakan secara meluas dalam banyak aplikasi. Dalam sesetengah senario, kami mungkin perlu memantau langganan mesej dalam Redis dalam masa nyata dan mengemas kini data cache tepat pada masanya. Artikel ini akan memperkenalkan cara menggunakan PHP untuk memantau langganan mesej Redis secara berterusan dan mengemas kini data cache dalam masa nyata. Berikut ialah langkah pelaksanaan khusus dan contoh kod.

Langkah 1: Pasang sambungan Redis dan kebergantungan berkaitan

Sebelum menggunakan PHP untuk menyambung ke Redis, kami perlu memasang sambungan dan kebergantungan berkaitan Redis. Gunakan arahan berikut untuk memasang sambungan Redis:

pecl install redis

Pada masa yang sama, kami juga perlu memasang Komposer untuk menguruskan kebergantungan projek:

curl -sS https://getcomposer.org/installer | php

Langkah 2: Buat sambungan Redis dan pendengar mesej

Dalam PHP, kami boleh menggunakan perpustakaan Predis untuk menyambung dan mengendalikan Redis. Mula-mula, buat fail composer.json dalam direktori akar projek dan tambah kandungan berikut pada fail:

{
    "require": {
        "predis/predis": "^1.1" 
    }
}

Kemudian, laksanakan arahan berikut dalam baris arahan untuk memasang perpustakaan Predis:

php composer.phar install

Seterusnya, kita boleh cipta skrip PHP untuk menyambung ke Redis dan mendengar mesej:

<?php
require 'vendor/autoload.php';

// 创建Redis连接
$redis = new PredisClient([
    'scheme' => 'tcp',
    'host'   => '127.0.0.1',
    'port'   => 6379,
]);

// 持续监听消息
$redis->psubscribe(['__key*__:*'], function ($redis, $pattern, $channel, $message) {
    // 这里可以对消息进行处理,例如更新缓存数据
    updateCache($message);
});

// 更新缓存数据的函数
function updateCache($key) {
    // 根据$key更新缓存数据的逻辑
    // ...
}

Dalam kod di atas, kami menggunakan perpustakaan Predis untuk mencipta sambungan Redis dan menggunakan fungsi psubscribe untuk mendengar __key*__: * ialah mesej Redis bagi corak. Apabila mesej sepadan baharu diterbitkan, fungsi panggil balik updateCache akan dipanggil Dalam fungsi ini, kami boleh mengemas kini data cache dengan sewajarnya mengikut mesej. psubscribe函数来持续监听以__key*__:*为模式的Redis消息。当有新的匹配的消息被发布时,回调函数updateCache将被调用,我们可以在该函数中根据消息进行相应的缓存数据更新。

步骤3:运行监听脚本

创建完监听脚本后,我们可以使用以下命令来运行脚本:

php listen.php

此时,PHP将会一直运行,并持续监听Redis中的消息订阅。

结语

本文介绍了如何使用PHP实现持续监听Redis的消息订阅,并实时更新缓存数据。通过这种方式,我们可以在Redis中发布消息后,即时更新相关的缓存数据,提高应用程序的实时性和性能。同时,以上代码示例中的updateCache

Langkah 3: Jalankan skrip mendengar 🎜🎜Selepas mencipta skrip mendengar, kita boleh menggunakan arahan berikut untuk menjalankan skrip: 🎜rrreee🎜Pada masa ini, PHP akan terus berjalan dan terus mendengar langganan mesej dalam Redis. 🎜🎜Kesimpulan🎜🎜Artikel ini memperkenalkan cara menggunakan PHP untuk terus memantau langganan mesej Redis dan mengemas kini data cache dalam masa nyata. Dengan cara ini, kami boleh mengemas kini data cache yang berkaitan dengan segera selepas menerbitkan mesej dalam Redis, meningkatkan prestasi masa nyata dan prestasi aplikasi. Pada masa yang sama, fungsi updateCache dalam contoh kod di atas hanyalah contoh mudah dan perlu diubah suai dan diperbaiki mengikut situasi tertentu apabila digunakan dalam amalan. 🎜

Atas ialah kandungan terperinci Bagaimanakah PHP terus mendengar langganan mesej Redis dan mengemas kini data cache?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn