Redis ialah pangkalan data dalam memori yang biasa digunakan yang digunakan secara meluas dalam pelbagai bahasa dan aplikasi, termasuk PHP. PHP ialah bahasa pengaturcaraan web yang digunakan secara meluas Apabila pembangun menggunakan PHP untuk menulis aplikasi web, mereka selalunya perlu menggunakan storan data luaran dan mengakses data ini dengan cepat. Keupayaan membaca dan menulis pantas Redis menjadikannya pilihan yang sangat baik. Artikel ini akan memperkenalkan penggunaan Redis dalam aplikasi PHP dan cara menggunakannya untuk pengindeksan pangkalan data.
1. Penggunaan Redis dalam PHP
Apabila menggunakan Redis dalam PHP, anda boleh menyambung melalui redis sambungan PECL atau perpustakaan pihak ketiga seperti Predis. Redis sambungan PECL boleh dipasang dengan menggunakan arahan "sudo pecl install redis" dalam PHP. Jika anda tidak boleh menggunakan sambungan PECL, anda boleh menggunakan perpustakaan seperti Predis untuk menyambung ke Redis.
Menggunakan Redis boleh menyimpan dan membaca data dengan cepat Salah satu sebab untuk ini ialah Redis menyimpan semua data dalam memori, dan kelajuan akses memori jauh lebih cepat daripada kelajuan akses cakera. Redis juga menyokong penyimpanan pasangan kunci/nilai, supaya anda boleh menanyakan data yang diperlukan dengan cepat melalui kata kunci.
2. Indeks data Redis dalam PHP
Dalam aplikasi PHP, pangkalan data perlu digunakan untuk menyimpan dan mengurus data. Sebab mengapa pangkalan data dipanggil "gudang data" adalah kerana ia menyediakan struktur yang sesuai untuk menyimpan dan mengurus data. Apabila kita perlu mengakses beberapa data dengan cepat, cara terbaik ialah menggunakan indeks. Dalam pangkalan data hubungan, struktur data seperti pepohon B+ biasanya boleh digunakan untuk melaksanakan indeks, manakala untuk pangkalan data bukan hubungan, Redis boleh digunakan untuk melaksanakan indeks.
Redis boleh menyimpan jadual cincang yang besar dalam ingatan, jadi ia boleh digunakan untuk menyimpan dan mengindeks data. Dua kaedah yang biasa digunakan diperkenalkan di bawah.
Struktur data Hash dalam Redis ialah koleksi pasangan kunci/nilai, yang hampir serupa dengan tatasusunan dalam PHP. Pengindeksan boleh dilaksanakan dalam aplikasi PHP dengan menggunakan struktur data Hash dalam Redis. Hanya simpan data yang perlu disoal dengan cepat dalam jadual Hash, dan kemudian gunakan kata kunci untuk menanyakannya. Contohnya, kod PHP berikut akan menyimpan jadual cincang:
$redis = new Redis(); $redis->connect('127.0.0.1', 6379); $user = [ 'name' => 'Zhang San', 'age' => 23, 'sex' => 'Male' ]; $redis->hMSet('user:1', $user);
Kod di atas akan memuat turun jadual cincang "pengguna:1". Antaranya, nama, umur dan jantina adalah atribut, setiap satu sepadan dengan nilai. Dalam contoh di atas, kami menyimpan pengguna bernama "Zhang San" dan menetapkan umurnya kepada 23 tahun dan jantinanya kepada lelaki. Semua sifat dan nilai disimpan dalam $redis->hMSet(). Seterusnya, jika anda perlu mencari pengguna tertentu, hanya gunakan kod berikut:
$result = $redis->hGetAll('user:1');
Kod PHP di atas akan mendapat semua elemen dalam jadual cincang bernama "user:1". Kita juga boleh mendapatkan nilai tunggal berdasarkan atribut, contohnya:
$name = $redis->hGet('user:1', 'name');
Kod PHP di atas akan mendapat nilai atribut bernama 'nama' dalam jadual cincang bernama "pengguna:1".
Struktur data set tertib Redis berbeza daripada jadual cincang kerana ia menyimpan data sebagai koleksi pasangan nilai/skor . Data boleh diisih berdasarkan skor, dan kerana koleksi boleh diisih, ia boleh digunakan untuk melaksanakan indeks.
Sebagai contoh, andaikan kita mempunyai satu set fail imej, setiap imej mempunyai nama dan cop tarikh, kita boleh menggunakan koleksi yang dipesan untuk menyimpan fail imej ini. Berikut ialah contoh kod PHP:
$file1 = [ 'name' => 'image1.jpg', 'date' => '2022-01-01' ]; $file2 = [ 'name' => 'image2.jpg', 'date' => '2022-01-02' ]; $redis->zAdd('files', 1, json_encode($file1)); $redis->zAdd('files', 2, json_encode($file2));
Kod di atas akan memuat turun koleksi tertib yang dipanggil "fail" dan menambah 'image1.jpg' dan 'image2.jpg' pada koleksi. Setiap fail diwakili sebagai rentetan JSON dengan skor yang dilampirkan, fail 'file2' mempunyai skor yang lebih tinggi daripada 'file1'.
Kami boleh mendapatkan fail imej dengan cepat berdasarkan cap tarikh atau markah, contohnya:
$results = $redis->zRevRangeByScore('files', '+inf', '-inf', array('withscores' => TRUE, 'limit' => array(0, 100)));
Kod PHP di atas akan mendapat senarai semua fail dalam "fail". Gunakan zRevRangeByScore untuk mendapatkan senarai fail berdasarkan skor.
3. Ringkasan
Redis mempunyai ciri-ciri membaca dan menulis pantas, penyimpanan yang cekap dan pasangan kunci/nilai sokongan. Jika anda perlu menyimpan dan mengakses data dengan cepat dalam aplikasi PHP, Redis sudah pasti pilihan yang baik. Selain itu, Redis menyokong struktur data seperti jadual cincang dan set tertib, yang boleh digunakan untuk melaksanakan indeks dalam aplikasi PHP. Apabila membangunkan aplikasi PHP, jika anda perlu mengakses data dengan cepat, adalah disyorkan untuk menggunakan Redis untuk melaksanakan pengindeksan.
Atas ialah kandungan terperinci Indeks pangkalan data Redis dalam aplikasi PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!