Cara menggunakan Memcached untuk caching data dalam Workerman
Memcached ialah sistem caching memori teragih sumber terbuka yang sering digunakan untuk meningkatkan prestasi dan kebolehskalaan aplikasi web. Workerman ialah rangka kerja Soket PHP berprestasi tinggi yang boleh digunakan untuk membina aplikasi komunikasi masa nyata. Artikel ini akan memperkenalkan cara menggunakan Memcached untuk caching data dalam Workerman dan memberikan contoh kod khusus.
1. Pasang dan konfigurasikan Memcached
Sebelum bermula, anda perlu memasang dan mengkonfigurasi Memcached. Memcached boleh dipasang pada sistem Linux melalui arahan berikut:
sudo apt-get install memcached
Selepas pemasangan selesai, anda perlu mengedit fail konfigurasi /etc/memcached.conf, tetapkan IP pendengaran dan nombor port, dan nyatakan saiz memori.
-d -p 11211 -l 127.0.0.1 -m 128
Simpan fail konfigurasi dan mulakan semula perkhidmatan Memcached.
2. Pasang Workerman
Seterusnya, anda perlu memasang rangka kerja Workerman. Anda boleh memasangnya menggunakan Composer dengan arahan berikut:
composer require workerman/workerman
3. Tulis kod untuk menggunakan Memcached
<?php require_once __DIR__.'/vendor/autoload.php'; use WorkermanWorker; use WorkermanProtocolsHttp; $worker = new Worker('http://0.0.0.0:8000'); $worker->onMessage = function ($connection, $request) { // 先尝试从缓存中获取数据 $cache = new Memcached(); $cache->addServer('127.0.0.1', 11211); $data = $cache->get($request->path()); if ($data === false) { // 缓存中不存在数据,则从数据库中获取数据 $data = get_data_from_database($request->path()); // 将数据存入缓存 $cache->set($request->path(), $data, 86400); // 缓存有效期为24小时 } // 返回数据给客户端 Http::header('Content-Type: application/json'); Http::header('Cache-Control: max-age=86400'); // 设置浏览器缓存时间为24小时 $connection->send(json_encode($data)); }; function get_data_from_database($path) { // 从数据库中获取数据的逻辑,此处省略 return [ 'path' => $path, 'data' => 'some data' ]; } Worker::runAll();
php cache.php start
4. Kod ujian
Anda boleh menggunakan penyemak imbas atau alat lain untuk menghantar permintaan HTTP untuk menguji fungsi caching data Memcached. Contohnya, jika anda mengakses http://localhost:8000/foo, data akan diambil daripada pangkalan data dan disimpan dalam cache. Akses http://localhost:8000/foo sekali lagi, dan data akan diperoleh terus daripada cache.
Melalui langkah di atas, kami berjaya menggunakan Memcached untuk caching data dalam Workerman. Contoh dalam kod hanya untuk rujukan dan perlu diselaraskan mengikut logik perniagaan tertentu apabila digunakan dalam amalan. Pada masa yang sama, anda perlu memberi perhatian untuk melindungi keselamatan perkhidmatan Memcached untuk mengelakkan operasi berniat jahat oleh pelawat yang tidak dibenarkan.
Atas ialah kandungan terperinci Cara menggunakan Memcached untuk cache data dalam Workerman. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!