Rumah > pembangunan bahagian belakang > tutorial php > Pengenalan kepada Redis di PHP menggunakan Predis

Pengenalan kepada Redis di PHP menggunakan Predis

Christopher Nolan
Lepaskan: 2025-02-27 09:08:11
asal
430 orang telah melayarinya

An Introduction to Redis in PHP using Predis

mata teras

    Redis adalah pelayan Struktur Data Sumber Terbuka yang popular yang mempunyai lebih banyak daripada penyimpanan nilai kunci yang mudah terima kasih kepada jenis data terbina dalamnya. Ia digunakan secara meluas oleh syarikat besar dan boleh digunakan sebagai pengendali sesi atau untuk membuat sembang dalam talian atau sistem tempahan langsung.
  • Redis dan Memcache melakukan sama dari segi operasi asas, tetapi Redis menyediakan lebih banyak ciri seperti memori dan kegigihan cakera, arahan atom dan urus niaga, dan struktur data sisi pelayan.
  • predis adalah perpustakaan klien PHP Redis yang fleksibel dan berfungsi sepenuhnya yang membolehkan pemaju PHP berinteraksi dengan REDIS menggunakan kod PHP. Ia menyokong pelbagai ciri REDIS, termasuk urus niaga, saluran paip, dan kelompok.
  • perintah redis termasuk set, mendapatkan, wujud (untuk menyimpan dan memeriksa maklumat sementara), incr dan dec dec (untuk mengekalkan kaunter), hset, hget, hincrby dan hdel (untuk memproses jenis data hash), dan tamat tempoh, tamat, TTL, dan berterusan (untuk memproses data kegigihan).
Redis adalah pelayan struktur data sumber terbuka dengan set data memori yang berfungsi jauh lebih daripada penyimpanan nilai kunci mudah kerana jenis data terbina dalamnya. Ia dilancarkan pada tahun 2009 oleh Salvatore Sanfilippo dan telah berkembang pesat kerana popularitinya. Anda boleh menggunakan Redis sebagai pengendali sesi, yang sangat berguna jika anda menggunakan seni bina pelbagai pelayan di belakang pengimbang beban. Redis juga mempunyai sistem penerbitan/langgan, yang sesuai untuk membuat sembang dalam talian atau sistem langganan langsung. Untuk dokumentasi dan maklumat lanjut mengenai Redis dan semua arahannya, lawati laman web projek Redis.io. Terdapat banyak perdebatan yang mana Redis atau Memcache lebih baik, tetapi seperti yang ditunjukkan oleh penanda aras, mereka melakukan hampir sama dari segi operasi asas. Redis mempunyai lebih banyak ciri daripada memcache, seperti memori dan kegigihan cakera, arahan atom dan urus niaga, dan bukannya pembalakan setiap perubahan ke cakera, gunakan struktur data sisi pelayan. Dalam artikel ini, kami akan menggunakan Perpustakaan Predis untuk mempelajari beberapa perintah asas tetapi kuat yang disediakan oleh Redis.

Mudah dipasang

Redis mudah dipasang, dan arahan pemasangan ringkas dipaparkan di halaman muat turun produk. Dalam pengalaman saya, jika anda menjalankan Ubuntu, anda akan mendapat ralat jika anda tidak memasang TCL (hanya menjalankan SUDO APT-GET Pasang TCL). Setelah memasang Redis, anda boleh menjalankan pelayan:

gafitescu@ubun2:~$ /usr/local/bin/redis-server
* The server is now ready to accept connections on port 6379
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Perpustakaan Pelanggan Redis boleh didapati dalam banyak bahasa, yang disenaraikan di laman web Redis, dan setiap bahasa biasanya tersedia dalam pelbagai bahasa! Bagi PHP, terdapat lima. Dalam artikel ini, saya akan menggunakan Perpustakaan Predis, tetapi anda mungkin juga ingin mengetahui tentang Phpredis, yang disusun dan dipasang sebagai modul PHP. Jika anda memasang git pada mesin anda seperti yang saya lakukan, anda hanya mengklonkan repositori predis. Jika tidak, anda perlu memuat turun arkib zip dan unzipnya.

gafitescu@ubun2:~$ /usr/local/bin/redis-server
* The server is now ready to accept connections on port 6379
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
3

Apabila anda menjalankannya, anda harus melihat mesej "berjaya disambungkan ke redis".
gafitescu@ubun2:~$ git clone git://github.com/nrk/predis.git
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

Menggunakan Redis

Dalam bahagian ini, anda akan menggariskan kebanyakan arahan yang biasa digunakan oleh Redis. Memcache mempunyai kesamaan untuk kebanyakan arahan, jadi jika anda sudah biasa dengan Memcache, senarai ini akan kelihatan biasa.

Tetapkan, dapatkan dan ada

Perintah yang paling biasa digunakan di Redis ditetapkan, mendapatkan, dan wujud. Anda boleh menggunakan arahan ini untuk menyimpan dan menyemak maklumat sementara yang akan diakses beberapa kali, biasanya dengan cara nilai utama. Contohnya:

Kaedah

set () digunakan untuk menetapkan nilai kepada kunci tertentu. Kaedah GET () mengambil nilai kunci, dan dalam kes ini ia adalah "hello_world". Kaedah wujud () melaporkan sama ada kunci yang disediakan ditemui di kedai Redis. Kekunci tidak terhad kepada aksara alfanumerik dan garis bawah. Berikut juga akan sah:

<?php
require "predis/autoload.php";
PredisAutoloader::register();

// 由于我们连接到默认设置localhost
// 和6379端口,因此无需额外的
// 配置。如果不是,则可以将
// 方案、主机和端口指定为数组
// 传递给构造函数。
try {
    $redis = new Predis\Client();
/*
    $redis = new Predis\Client(array(
        "scheme" => "tcp",
        "host" => "127.0.0.1",
        "port" => 6379));
*/
    echo "Successfully connected to Redis";
}
catch (Exception $e) {
    echo "Couldn't connected to Redis";
    echo $e->getMessage();
}
Salin selepas log masuk
Salin selepas log masuk

inc (incrby) dan decrby (decrby)
<?php
$redis->set("hello_world", "Hi from php!");
$value = $redis->get("hello_world");
var_dump($value);

echo ($redis->exists("Santa Claus")) ? "true" : "false";
Salin selepas log masuk

perintah inc dan penurunan digunakan untuk kenaikan dan nilai pengurangan dan merupakan cara yang baik untuk mengekalkan kaunter. Peningkatan dan penambahan nilai/pengurangan nilai mereka dengan 1; Berikut adalah contoh:

jenis data redis
<?php
$redis->set("I 2 love Php!", "Also Redis now!");
$value = $redis->get("I 2 love Php!");
Salin selepas log masuk

Seperti yang saya nyatakan sebelum ini, Redis mempunyai jenis data terbina dalam. Anda mungkin fikir ia adalah pelik untuk mempunyai jenis data dalam sistem penyimpanan nilai utama NoSQL seperti Redis, tetapi ini berguna bagi pemaju untuk mengatur maklumat dengan lebih cekap dan melakukan tindakan tertentu, yang biasanya lebih cepat apabila data ditaip. Jenis data redis ialah:

String - Jenis data asas yang digunakan dalam redis, dari mana anda boleh menyimpan sebilangan kecil aksara ke kandungan keseluruhan fail.

    Senarai - Senarai mudah rentetan yang disusun mengikut urutan di mana unsur -unsur mereka dimasukkan. Anda boleh menambah dan mengeluarkan elemen dari kepala dan ekor senarai, jadi anda boleh menggunakan jenis data ini untuk melaksanakan barisan.
  • hash - peta kunci rentetan dan nilai rentetan. Dengan cara ini, anda boleh mewakili objek (yang boleh dianggap sebagai objek JSON kedalaman satu peringkat).
  • Koleksi - Koleksi rentetan yang tidak teratur di mana anda boleh menambah, memadam dan menguji kehadiran ahli. Satu -satunya kekangan ialah anda tidak membenarkan ahli pendua.
  • Sorting Set -Case Case of Collection Data Jenis. Perbezaannya ialah setiap ahli mempunyai skor yang berkaitan yang digunakan untuk menyusun set dari skor terkecil hingga skor maksimum.
  • Setakat ini saya hanya menunjukkan rentetan, tetapi terdapat beberapa arahan yang menjadikannya sama mudah untuk menggunakan data dari jenis data lain.

hset, hget dan hgetall, hincrby dan hdel

Perintah ini digunakan untuk mengendalikan jenis data hash redis:

  • hset -Netkan nilai kunci pada objek hash.
  • hget - Dapatkan nilai kunci pada objek hash.
  • Hincrby -Increment Nilai kunci objek hash menggunakan nilai yang ditentukan.
  • hdel - Keluarkan kekunci dari objek.
  • HgetAll - Dapatkan semua kunci dan data objek.

Berikut adalah contoh untuk menunjukkan penggunaannya:

gafitescu@ubun2:~$ /usr/local/bin/redis-server
* The server is now ready to accept connections on port 6379
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

Ringkasan

Dalam artikel ini, kami hanya meliputi senarai pendek arahan Redis, tetapi anda boleh melihat senarai penuh arahan di laman web Redis. Malah, Redis menawarkan lebih daripada sekadar pengganti untuk Memcache. Redis akan bertahan; Redit adalah sumber terbuka, jadi jika anda seorang pakar bahasa C, anda boleh mengikat kod sumbernya dari GitHub dan menjadi penyumbang. Sekiranya anda ingin mengetahui lebih banyak daripada laman web projek, anda mungkin ingin mempertimbangkan untuk menyemak dua buku Redis yang sangat baik, Redis Cookbook dan Redis: Panduan Definitif.

soalan yang sering ditanya mengenai redis dengan predis dalam php

  • Apakah tujuan utama menggunakan predis dan redis dalam php?

predis adalah perpustakaan klien PHP Redis yang fleksibel dan berfungsi sepenuhnya. Ia membolehkan pemaju PHP berinteraksi dengan REDIS menggunakan kod PHP, menjadikannya lebih mudah untuk menggunakan REDIS dalam aplikasi PHP. Predis menyediakan API yang mudah dan intuitif untuk mengendalikan Redis, dan ia menyokong pelbagai fungsi REDIS, termasuk transaksi, saluran paip, dan kelompok. Dengan menggunakan Predis, pemaju PHP boleh memanfaatkan kuasa Redis dalam aplikasi mereka tanpa perlu berurusan dengan kerumitan secara langsung berinteraksi dengan pelayan Redis.

  • bagaimana memasang predis dalam projek php?

predis boleh dipasang dengan mudah dalam projek PHP menggunakan komposer (alat pengurusan pergantungan PHP). Anda boleh memasang predis dengan menjalankan arahan berikut dalam direktori root projek anda: composer require predis/predis. Perintah ini akan memuat turun dan memasang versi stabil terkini Predis dan kebergantungannya ke dalam projek anda.

  • Bagaimana menggunakan predis untuk menyambung ke pelayan Redis?

Untuk menyambung ke pelayan REDIS menggunakan predis, anda perlu membuat contoh baru kelas predisclient dan lulus parameter sambungan kepada pembina. Parameter sambungan boleh menjadi rentetan yang mewakili Redis Server URI atau array bersekutu yang mengandungi pilihan sambungan. Berikut adalah contoh:

gafitescu@ubun2:~$ git clone git://github.com/nrk/predis.git
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

Dalam contoh ini, pelanggan akan menyambung ke pelayan Redis yang berjalan pada port localhost 6379.

  • Bagaimana menggunakan predis untuk melaksanakan perintah redis?

Predis menyediakan kaedah untuk melaksanakan semua perintah Redis. Kaedah ini dinamakan selepas perintah Redis yang sepadan, yang menerima parameter perintah sebagai parameter. Sebagai contoh, untuk menetapkan pasangan nilai utama di Redis, anda boleh menggunakan kaedah set seperti berikut:

<?php
require "predis/autoload.php";
PredisAutoloader::register();

// 由于我们连接到默认设置localhost
// 和6379端口,因此无需额外的
// 配置。如果不是,则可以将
// 方案、主机和端口指定为数组
// 传递给构造函数。
try {
    $redis = new Predis\Client();
/*
    $redis = new Predis\Client(array(
        "scheme" => "tcp",
        "host" => "127.0.0.1",
        "port" => 6379));
*/
    echo "Successfully connected to Redis";
}
catch (Exception $e) {
    echo "Couldn't connected to Redis";
    echo $e->getMessage();
}
Salin selepas log masuk
Salin selepas log masuk

Untuk mendapatkan nilai kunci, anda boleh menggunakan kaedah GET:

gafitescu@ubun2:~$ /usr/local/bin/redis-server
* The server is now ready to accept connections on port 6379
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
  • Bagaimana menangani kesilapan dalam predis?

Predis akan membuang pengecualian apabila perintah Redis gagal. Pengecualian ini adalah contoh kelas predisresponseServerException atau subclassnya. Anda boleh menangkap pengecualian ini dan mengendalikan kesilapan dalam kod anda. Berikut adalah contoh:

gafitescu@ubun2:~$ git clone git://github.com/nrk/predis.git
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

Dalam contoh ini, jika arahan set gagal, blok tangkapan akan dilaksanakan dan mesej ralat akan dicetak.

(jawapan kepada soalan -soalan lain adalah serupa dengan output sebelumnya, kecuali bahawa kata -kata itu sedikit diselaraskan, dan kami tidak akan mengulanginya di sini)

Atas ialah kandungan terperinci Pengenalan kepada Redis di PHP menggunakan Predis. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan