Redis ialah sistem storan nilai kunci berprestasi tinggi yang menyokong pelbagai struktur data, termasuk rentetan, jadual cincang, senarai, set, set tersusun, dsb. Pada masa yang sama, Redis juga menyokong padanan ungkapan biasa dan operasi penggantian pada data rentetan, yang menjadikannya sangat fleksibel dan mudah dalam membangunkan aplikasi PHP.
Untuk menggunakan Redis bagi operasi ungkapan biasa dalam aplikasi PHP, anda perlu memasang sambungan phpredis terlebih dahulu, yang menyediakan API untuk berkomunikasi dengan pelayan Redis. Kaedah pemasangan boleh dicapai dengan menjalankan arahan berikut dalam terminal:
pecl install redis
Selepas konfigurasi selesai, selepas memulakan pelayan Redis dan aplikasi PHP, anda boleh menggunakan ungkapan biasa untuk mengendalikan pangkalan data Redis. Berikut ialah lima operasi ungkapan biasa untuk Redis.
Arahan Redis: KEYS pattern
Arahan ini boleh mengembalikan semua nama kunci yang sepadan dengan corak yang ditentukan. Corak corak boleh termasuk aksara khas berikut:
Sebagai contoh, arahan berikut boleh digunakan untuk mendapatkan semua kunci bermula dengan "pengguna":
$redis->keys('user*');
Arahan Redis: GET key
Arahan ini mengembalikan nilai rentetan yang sepadan dengan kunci yang ditentukan. Jika kunci tidak wujud, mengembalikan sifar. Sebagai contoh, arahan berikut boleh digunakan untuk mendapatkan nilai kunci bernama "nama pengguna":
$value = $redis->get('username');
Arahan Redis: SET key value [EX seconds] [PX milliseconds] [NX|XX]
Arahan ini Boleh digunakan untuk menetapkan nilai kunci yang ditentukan. Jika kunci sudah wujud, nilai asal akan ditimpa. Antaranya, parameter pilihan saat dan milisaat mewakili masa tamat nilai kunci, dan unit masing-masing adalah saat dan milisaat. NX dan XX adalah pilihan yang saling eksklusif Apabila menetapkan nilai kunci, menentukan pilihan NX bermakna menetapkannya hanya jika kunci tidak wujud, manakala menentukan pilihan XX bermakna menetapkannya hanya jika kunci sudah wujud.
Sebagai contoh, arahan berikut boleh digunakan untuk menetapkan nilai kunci bernama "nama pengguna" kepada "redis" dan masa tamat tempoh kepada 600 saat:
$redis->set('username', 'redis', 600);
arahan Redis: SCAN cursor [MATCH pattern] [COUNT count]
Perintah ini digunakan untuk mengulang semua nama kunci dalam pangkalan data Corak dan kiraan parameter pilihan adalah sama dengan arahan KEYS dan boleh digunakan untuk memadankan kekunci nama corak yang ditentukan dan menetapkan bilangan nama kunci yang dikembalikan. Untuk mengelak daripada mengembalikan terlalu banyak nama kunci dalam satu operasi, arahan ini membahagikan operasi lelaran kepada beberapa kali dan mengembalikan sebahagian daripada nama kunci dalam setiap operasi. Setiap nama kunci dikembalikan dengan kursor, yang boleh dihantar sebagai parameter kepada perintah SCAN dalam operasi lelaran seterusnya.
Sebagai contoh, arahan berikut boleh digunakan untuk mendapatkan semua nama kunci bermula dengan "pengguna":
$cursor = 0; $pattern = 'user*'; $keys = []; do { $result = $redis->SCAN($cursor, 'MATCH '.$pattern); $cursor = $result[0]; $keys = array_merge($keys, $result[1]); } while ($cursor != 0);
Arahan Redis: EVAL script numkeys key [key ...] arg [arg ...]
Arahan ini boleh melaksanakan skrip Lua tersuai, dan boleh merealisasikan penggantian ungkapan biasa nilai rentetan melalui skrip Lua. Antaranya, parameter skrip ialah kod skrip Lua, dan kuncinya boleh menjadi satu atau lebih nama kunci ini boleh digunakan dalam skrip Lua untuk mendapatkan dan mengubah suai nilai yang sepadan. arg ialah parameter pilihan yang boleh digunakan untuk menghantar parameter lain kepada skrip Lua.
Berikut ialah contoh penggunaan skrip Lua untuk melaksanakan proses penggantian:
local key = KEYS[1] local pattern = ARGV[1] local replacement = ARGV[2] redis.call('SET', key, string.gsub(redis.call('GET', key), pattern, replacement))
Skrip ini boleh digunakan untuk menggantikan kandungan tertentu dalam nilai rentetan dengan kekunci nama kunci. Corak dan parameter penggantian dalam skrip masing-masing mewakili ungkapan biasa dan rentetan gantian Gunakan fungsi string.gsub() untuk melaksanakan operasi penggantian rentetan.
Sebagai contoh, arahan berikut boleh digunakan untuk melaksanakan skrip Lua di atas dan menggantikan semua nombor dalam nilai kunci bernama "nama pengguna" dengan "":
$redis->eval($script, ['username'], ["/%d+/", '']);
Atas ialah kandungan terperinci Operasi ungkapan biasa Redis dalam aplikasi PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!