Rumah  >  Artikel  >  pangkalan data  >  Penjelasan terperinci tentang aplikasi Redis dalam PHP

Penjelasan terperinci tentang aplikasi Redis dalam PHP

WBOY
WBOYasal
2023-06-20 13:51:071358semak imbas

Redis ialah sistem storan nilai kunci berprestasi tinggi yang digunakan secara meluas dalam senario seperti caching teragih, baris gilir mesej dan statistik masa nyata. PHP adalah bahasa skrip yang digunakan secara meluas dan menduduki kedudukan penting dalam bidang pembangunan web. Disebabkan oleh kecekapan Redis dan populariti PHP, banyak aplikasi yang sangat baik boleh dilaksanakan dengan menggabungkan Redis dengan PHP. Artikel ini akan memperkenalkan aplikasi Redis dalam PHP secara terperinci dan menyediakan beberapa contoh kod untuk membantu pembaca memahami dengan lebih baik.

1. Persediaan persekitaran
Sebelum menggunakan Redis, kami perlu memasang dan mengkonfigurasi sambungan Redis dan PHP. Berikut ialah kaedah pemasangan berdasarkan sistem Ubuntu:

  1. Pasang Redis

sudo apt-get install redis-server

  1. Pasang PHP sambungan
    Ia boleh dipasang melalui kod sumber, seperti yang ditunjukkan di bawah:

klon git https://github.com/phpredis/phpredis.git
cd phpredis
phpize
./ configure
make && make install

Anda juga boleh menggunakan PECL untuk memasang:

pecl install redis

Selepas pemasangan selesai, anda perlu tambah konfigurasi lanjutan dalam php.ini :

extension=redis.so

2. Penggunaan asas Redis
Berikut ialah beberapa arahan asas dan kaedah penggunaan Redis:

  1. Sambung ke Redis

Untuk menyambung ke Redis, anda perlu menggunakan kaedah sambung kelas Redis dan masukkan nombor IP dan port perkhidmatan Redis.

$redis = new Redis();
$redis->connect('127.0.0.1', 6379);

  1. Simpan data

Anda boleh menggunakan kaedah set Redis untuk menetapkan pasangan nilai kunci, seperti yang ditunjukkan di bawah:

$redis->set('name', 'Tom');

Anda juga boleh menggunakan Kaedah mset untuk menetapkan berbilang pasangan nilai kunci:

$redis->mset(array('name' => 'Tom', 'age' => '18') );

  1. Dapatkan data

Anda boleh menggunakan kaedah get Redis untuk mendapatkan nilai yang sepadan dengan kunci, seperti ditunjukkan di bawah:

$name = $redis->get(' name');

Anda juga boleh menggunakan kaedah mgt untuk mendapatkan nilai yang sepadan dengan berbilang kunci:

$result = $redis-> mget(array('name', 'age')) ;

  1. Padam data

Anda boleh menggunakan kaedah del Redis untuk memadam nilai yang sepadan dengan kunci, seperti ditunjukkan di bawah:

$redis-> del('name');

Anda juga boleh menggunakan kaedah nyahpaut untuk memadamkan nilai yang sepadan dengan berbilang kunci:

$redis->unlink(array('name', 'age')) ;

3. Aplikasi Redis dalam PHP

  1. Cache
Redis, sebagai cache memori yang cekap, boleh meningkatkan prestasi aplikasi web dengan banyak. Berikut ialah beberapa contoh kod untuk Redis sebagai cache dalam PHP.

1.1. Menyimpan data cache Halaman

Sangat mudah untuk menggunakan Redis untuk menyimpan data cache Halaman dalam rangka kerja anda sendiri. Anda boleh melaksanakan set, get, flush dan kaedah lain dalam kelas seperti yang diperlukan, dan kemudian memanggilnya di mana cache Halaman perlu disimpan melalui kod berikut:

$redis_cache = new RedisCache();

if(!$ redis_cache->get($cache_key)){
rreee

}

lain{

// 数据未存储在Redis中,需要从数据库中获取数据
$data = $db->query('SELECT * FROM user where id = 1');
$redis_cache->set($cache_key, $data);

}

1.2 >

untuk Untuk aplikasi web yang sangat serentak, menyimpan data sesi ialah isu yang sangat penting. Apabila menggunakan mekanisme Sesi yang disertakan dengan PHP, banyak operasi IO akan dijana, mengakibatkan penurunan prestasi aplikasi web. Menggunakan Redis sebagai bahagian belakang storan Sesi boleh meningkatkan prestasi aplikasi web dengan berkesan. Berikut ialah contoh kod tentang cara menggunakan Redis sebagai storan Sesi dalam PHP.

// Panggil kod berikut untuk menyediakan Sesi semasa fasa permulaan tapak web:

session_name('PHPSESSID'); // Tetapkan nama Sesi

ini_set('session.save_handler ', 'redis'); // Tetapkan kaedah storan Sesi
ini_set('session.save_path', 'tcp://127.0.0.1:6379'); // Tetapkan laluan storan Sesi

Baris Gilir Mesej
  1. Struktur data berbilang Redis boleh digunakan untuk melaksanakan baris gilir mesej. Baris gilir mesej ialah mekanisme komunikasi tak segerak yang boleh memisahkan sifat masa nyata penghantar dan penerima. Apabila pengirim menghantar mesej, mesej itu dimasukkan ke dalam baris gilir mengikut beberapa peraturan baris gilir mesej. Penerima boleh mendapatkan mesej daripada baris gilir dan memprosesnya pada bila-bila masa mengikut keperluannya sendiri. Berikut ialah contoh kod tentang cara melaksanakan baris gilir mesej menggunakan Redis dalam PHP.

//Kod pengirim

$message = 'hello world';

$redis->lpush('message_queue', $message); // Tulis mesej ke baris gilir mesej

//Kod penerima

$messages = $redis->brpop('message_queue', 0); // Dapatkan mesej daripada baris gilir

$message = $messages[1];

Statistik Masa Nyata
  1. Redis boleh digunakan untuk menyimpan dan mengira data masa nyata, seperti PV dan UV halaman. Berikut ialah contoh kod tentang cara menggunakan Redis dalam PHP untuk melaksanakan statistik masa nyata.

// Kod statistik PV

$redis->incr('page_view'); // Counter +1

$page_views = $redis->get('page_view'); / Dapatkan bilangan lawatan semasa

// kod statistik UV

$user_id = $_COOKIE['user_id'];

$redis->sadd('user_view_set', $user_id); // Tambahkan pengguna pada set
$user_views = $redis->scard('user_view_set'); // Dapatkan bilangan pelawat unik semasa

4. Ringkasan
Redis sangat fleksibel untuk digunakan dalam PHP dan boleh digunakan untuk melaksanakan banyak aplikasi yang sangat baik. Apabila menggunakan Redis, anda perlu memahami arahan asas dan struktur data Redis, dan membuat pilihan berdasarkan senario aplikasi tertentu. Pada masa yang sama, apabila menggunakan sambungan PHP, anda perlu memberi perhatian kepada proses memasang dan mengkonfigurasi sambungan untuk mengelakkan masalah.

Atas ialah kandungan terperinci Penjelasan terperinci tentang aplikasi Redis dalam PHP. 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