Rumah  >  Artikel  >  pembangunan bahagian belakang  >  PHP dan REDIS: Bagaimana untuk mencapai kemas kini data masa nyata

PHP dan REDIS: Bagaimana untuk mencapai kemas kini data masa nyata

王林
王林asal
2023-07-23 13:33:341350semak imbas

PHP dan REDIS: Bagaimana untuk mencapai kemas kini data masa nyata

Gambaran keseluruhan:
Kemas kini data masa nyata adalah salah satu keperluan biasa dalam aplikasi web moden. Dengan menggunakan gabungan PHP dan REDIS, kami boleh mencapai kemas kini data masa nyata dengan cara yang mudah dan cekap. Artikel ini akan memperkenalkan cara menggunakan PHP dan REDIS untuk melaksanakan kemas kini data masa nyata dalam aplikasi web dan menyediakan contoh kod yang berkaitan.

Apakah itu REDIS:
REDIS ialah sistem penyimpanan data memori sumber terbuka, yang sering digunakan untuk menyelesaikan masalah prestasi membaca dan menulis data dalam senario konkurensi tinggi. REDIS adalah pantas, fleksibel dan mudah digunakan, menyokong pelbagai struktur data (seperti rentetan, cincang, senarai, dll.). Dalam kemas kini data masa nyata, kami akan menggunakan mekanisme penerbitan/langgan REDIS untuk mencapai kemas kini data masa nyata.

Langkah 1: Pasang sambungan REDIS dan PHP
Pertama, kita perlu memasang sambungan REDIS dan PHP pada pelayan. REDIS boleh dipasang pada Linux menggunakan arahan berikut:

$ sudo apt-get install redis-server

Selepas pemasangan selesai, kita perlu memasang sambungan REDIS untuk PHP. Ia boleh dipasang melalui arahan berikut:

$ sudo apt-get install php-redis

Langkah 2: Mekanisme penerbitan/langgan REDIS
Mekanisme penerbitan/langgan REDIS digunakan untuk mencapai pemesejan masa nyata antara penerbit dan pelanggan. Dalam artikel ini, kami akan menggunakan mekanisme ini untuk mencapai kemas kini data masa nyata.

Contoh kod penerbit:

<?php
$redis = new Redis();
$redis->connect('localhost', 6379);

// 发布消息
$redis->publish('news', 'Hello, world!');

// 关闭连接
$redis->close();
?>

Contoh kod pelanggan:

<?php
$redis = new Redis();
$redis->connect('localhost', 6379);

// 订阅消息
$redis->subscribe(['news'], function ($redis, $channel, $message) {
    echo "Received message from channel: {$channel}
";
    echo "Message: {$message}
";
});

// 关闭连接
$redis->close();
?>

Langkah 3: Laksanakan kemas kini data masa nyata dalam aplikasi web
Kini, kami telah memahami penggunaan asas mekanisme penerbitan/langganan REDIS. Seterusnya, kami akan menggunakan mekanisme ini untuk melaksanakan kemas kini data masa nyata dalam aplikasi web.

Dalam aplikasi web, kami boleh menerbitkan mesej melalui REDIS di mana sahaja data dikemas kini. Kemudian, penyemak imbas melanggan saluran mesej REDIS untuk menerima kemas kini data masa nyata dengan menggunakan teknologi seperti WebSockets atau tinjauan panjang HTTP.

Contoh kod sisi pelayan:

<?php
$redis = new Redis();
$redis->connect('localhost', 6379);

// 数据更新,发布消息
$redis->publish('data-updates', json_encode(['id' => 1, 'name' => 'John Doe']));

// 关闭连接
$redis->close();
?>

Contoh kod sisi pelanggan (menggunakan jQuery dan WebSockets):

var socket = new WebSocket('ws://localhost:8080');

socket.onmessage = function (event) {
    var data = JSON.parse(event.data);
    // 处理接收到的实时数据更新
    console.log(data);
};

Dengan contoh kod di atas, kami boleh melaksanakan fungsi kemas kini data masa nyata dalam aplikasi web. Apabila data berubah, pelayan menerbitkan mesej melalui REDIS dan pelanggan menerima kemas kini data masa nyata dengan melanggan saluran mesej REDIS dan melakukan pemprosesan yang berkaitan.

Kesimpulan:
Dengan menggabungkan PHP dan REDIS, kami boleh melaksanakan fungsi kemas kini data masa nyata dengan cara yang mudah dan cekap. Mekanisme penerbitan/langganan REDIS menyediakan cara yang boleh dipercayai untuk mencapai pemesejan masa nyata antara pelayan dan pelanggan. Dengan contoh kod di atas, kami boleh melaksanakan fungsi kemas kini data masa nyata dengan mudah dalam aplikasi web kami.

Rujukan:

  • Tapak web rasmi REDIS: https://redis.io/
  • sambungan PHP REDIS: https://github.com/phpredis/phpredis

Atas ialah kandungan terperinci PHP dan REDIS: Bagaimana untuk mencapai kemas kini data masa nyata. 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