Enjin storan Redis yang popular ialah alat yang sangat baik dan mesti ada dalam mana-mana senjata pembangun perisian. Enjin storan dalam memori membolehkan penyimpanan dan mendapatkan semula data yang sangat pantas, sehingga 32 juta pertanyaan sesaat yang mengagumkan, menjadikannya pelengkap utama kepada mana-mana enjin pangkalan data utama.
Mari selami, dan pelajari cara mempercepatkan operasi dalam talian kami.
Redis: Kebaikan lwn. Keburukan
Faedah terbesar Redis ialah ia adalah stor data dalam memori semata - mata , bermakna ia sangat pantas kerana pangkalan data disimpan dalam RAM oleh itu tiada operasi I/O fail ke cakera keras diperlukan.
Faedah tambahan lain ialah kesederhanaan, sokongan pengelompokan melalui Redis-cluster, serta sokongannya untuk lapan jenis data yang berbeza memberikan anda fleksibiliti yang diperlukan untuk menyimpan dan mengurus data anda mengikut keperluan.
Walau bagaimanapun, kejatuhan terbesarnya juga adalah hakikat bahawa ia adalah stor data dalam memori semata-mata, oleh itu disertakan dengan had saiz. Ia bergantung pada infrastruktur pelayan anda, tetapi demi artikel ini dan kesederhanaan, pangkalan data Redis biasa anda hanya akan menyimpan maksimum 2-4GB data.
Ini bermakna Redis digunakan untuk memuji enjin pangkalan data yang popular digunakan seperti mySQL, PostgreSQL dan MongoDB, dan tidak dimaksudkan sebagai pengganti. Kegunaan utama untuk Redis termasuk cache, data sementara/terkini yang akan tamat tempoh dalam tempoh yang singkat, atau cebisan kecil data yang kerap diakses.
Cara Memasang Redis
Dengan mengandaikan anda menjalankan Ubuntu atau mana-mana distro Linux yang mengandungi arahan apt-get , untuk memasang Redis hanya jalankan arahan berikut dalam terminal:
sudo apt-get install redis-server
Seterusnya, semak untuk memastikan Redis telah berjaya dipasang. Di dalam terminal, jalankan arahan:
redis-cli --version
Ini sepatutnya mencetak versi Redis yang anda jalankan, dan andaikan begitu, jalankan arahan berikut untuk menyambung ke Redis:
redis-cli
Ini akan memberi anda gesaan Redis bukan standard dalam terminal, yang kelihatan seperti:
127.0.0.1:6379>
Perintah Rentetan
Setiap entri ke dalam Redis dikenal pasti dengan kunci, yang boleh berupa rentetan bukan ruang putih yang anda inginkan. Rentetan hanya mengandungi satu nilai, dan sebagai contoh, jalankan arahan berikut pada gesaan Redis untuk menetapkan nilai kepada beberapa kekunci.
127.0.0.1:6379> set full_name "John Doe" 127.0.0.1:6379> set units 5
Anda kini boleh menyenaraikan semua kunci pada masa ini dalam pangkalan data Redis dengan arahan kekunci.
127.0.0.1:6379> keys *
Ini akan menyebabkan memaparkan dua kekunci yang anda tetapkan sebelum ini, nama_penuh dan unit . Anda mungkin melihat nilai kunci ini dengan arahan get.
127.0.0.1:6379> get full_name "John Doe" 127.0.0.1:6379> get units 5
Memadam kekunci boleh dilakukan dengan mudah dengan arahan del.
127.0.0.1:6379> del full_name
Ia juga mungkin untuk menambah integer dengan cepat dengan arahan hincrby . Yang berikut akan menambah kunci "unit" daripada 5 kepada 7.
127.0.0.1:6379> incrby units 2
Senaraikan Perintah
Senarai dalam Redis ialah tatasusunan satu dimensi dengan susunan tertentu dan membenarkan item pendua dalam kedudukan senarai yang berbeza. Item boleh ditambah ke kiri atau kanan senarai dengan arahan lpush dan rpush .
127.0.0.1:6379> lpush colors blue 127.0.0.1:6379> rpush colors red yellow green
Seperti yang anda lihat daripada contoh di atas, anda boleh menolak berbilang item ke senarai dalam satu arahan. Kini kita boleh melihat semua item dalam senarai dengan menggunakan perintah lrange .
127.0.0.1:6379> lrange colors 0 -1
Terdapat dua integer pada penghujung arahan, yang pertama mentakrifkan kedudukan dalam senarai untuk bermula, dan yang kedua ialah bilangan item untuk dikembalikan dengan -1 bermaksud semua item. Hasil daripada arahan di atas ialah, biru, merah, kuning, hijau .
Anda juga boleh mengalih keluar item dari kedua-dua hujung senarai menggunakan arahan lpop dan rpop .
127.0.0.1:6379> lpop colors blue 127.0.0.1:6379> rpop colors green
Anda juga boleh mendapatkan bilangan elemen dalam senarai dengan arahan llen .
127.0.0.1:6379> llen colors (integer) 2
Akhir sekali, anda boleh mengalih keluar elemen daripada senarai melalui arahan lrem .
127.0.0.1:6379> lrem colors 1 green (integer) 1
The lrem arahan bermula dengan nama senarai, diikuti dengan jumlah kejadian untuk membuang, dan nama elemen untuk menghapuskan. Ia akan mengembalikan bilangan kejadian yang ditemui dan dialih keluar daripada senarai.
Perintah Hash
Salah satu jenis data yang paling popular dalam Redis ialah cincang, yang membolehkan anda menyimpan berbilang pasangan nilai kunci dalam satu entri. Kunci tidak perlu wujud, dan anda menentukan pasangan nilai kunci pada bila-bila masa dengan arahan hset .
127.0.0.1:6379> hset user:581 full_name "Jane Doe" 127.0.0.1:6379> hset user:581 points 500
Anda juga boleh menentukan berbilang pasangan nilai kunci cincang dalam satu arahan menggunakan arahan hmset .
127.0.0.1:6379> hmset user:581 email [email protected] gender F
Cincang yang dikenal pasti oleh pengguna utama :581 kini mempunyai sejumlah empat pasangan nilai kunci, yang kesemuanya boleh diperoleh dengan mudah dengan arahan hgetall .
127.0.0.1:6379> hgetall user:581 1) "full_name" 2) "Jane Doe" 3) "points" 4) "500" 5) "email" 6) "[email protected]" 7) "gender" 8) "F"
Anda juga boleh mendapatkan nilai pasangan nilai kunci tunggal dalam cincang dengan menggunakan arahan get .
127.0.0.1:6379> hget user:581 email "[email protected]"
Untuk mana-mana integer dalam cincang, anda boleh menambahnya dengan jumlah tertentu dengan arahan hincrby kod .
127.0.0.1:6379> hincrby user:581 points 20 (integer) 520
Nilai kunci mata dalam cincang kini telah dinaikkan sebanyak 20 hingga 520. Satu pasangan nilai kunci tunggal dalam cincang boleh dipadamkan dengan arahan hdel .
127.0.0.1:6379> hdel user:581 gender
Sebagai alternatif, anda juga boleh memadamkan cincangan sepenuhnya termasuk semua pasangan nilai kunci dengan menggunakan perintah del .
127.0.0.1:6379> del user:581
Kekunci Redis tamat tempoh
Satu lagi ciri hebat Redis ialah keupayaan untuk tamat tempoh kekunci secara automatik selepas beberapa saat yang ditetapkan menggunakan perintah tamat tempoh . Sila ambil perhatian, anda hanya boleh tamat tempoh kekunci penuh dan bukan elemen tunggal dalam senarai atau cincang. Sebagai contoh:
127.0.0.1:6379> expire full_name 10
Ini akan menetapkan masa tamat tempoh 10 saat pada FULL_NAME utama yang dibuat di bahagian tali itu. Selepas menjalankan arahan di atas, tunggu 10 saat kemudian cuba dapatkan semula nilai kunci itu.
127.0.0.1:6379> get full_name (nil)
Seperti yang dijangkakan, kunci kini telah tamat tempoh dan akibatnya kami mendapat batal.
Sambung ke Redis Dengan PHP
Memandangkan anda telah mempelajari asas cara menyimpan dan mendapatkan semula data dengan Redis, tiba masanya untuk menyambungkannya ke dalam perisian anda. Semua bahasa pengaturcaraan mempunyai modul/sambungan untuk Redis, tetapi untuk contoh ini, kami akan menggunakan PHP.
Anda mesti memasang sambungan PHP-Redis terlebih dahulu kerana ia tidak dipasang secara lalai. Dalam terminal, jalankan arahan.
sudo apt-get install php-redis
Setelah dipasang, pastikan anda memulakan semula PHP-fpm supaya sambungan dimuatkan dengan betul. Berikut ialah beberapa kod PHP yang bersambung ke dan antara muka dengan Redis.
<> // Connect to redis $conn = new redis(); try { $conn->connect('127.0.0.1', 6379, 5); } catch (RedisException $e) { die("Unable to connect to redis"); } // Set string $conn->set('country', 'Canada'); // Get string $value = $conn->get('country'); echo "Country is: $value "; // Define a profile $profile = [ 'username' => 'mike', 'full_name' => 'Mike Smith', 'email' => '[email protected]', 'country' => 'Australia' ]; // Create a hash $conn->hmset('user:188', $profile); // Get all values of the profile hash $values = $conn->hgetall('user:188'); print_r($values); // Get only the e-mail address $email = $conn->hget('user:188', 'email'); echo "E-mail is: $email "; // Expire the hash in 15 seconds $conn->expire('user:188', 15);
Kod contoh di atas hendaklah agak lurus ke hadapan. Ia mula-mula bersambung ke Redis dengan tamat masa 5 saat, kemudian meneruskan untuk menetapkan dan mendapatkan rentetan dan cincang. Semua arahan Redis boleh dilakukan melalui OOP dengan memanggilnya terus daripada objek Redis seperti contoh di atas.
Anda sedang dalam perjalanan!
Tahniah, anda telah mempelajari asas tentang cara menyimpan dan mendapatkan semula data dengan kelajuan yang sangat pantas melalui enjin storan Redis, termasuk cara menyambung ke dan antara muka dengan Redis menggunakan PHP.
Sila ambil perhatian, artikel ini hanya merangkumi perkara asas sahaja dan halaman Jenis Data Redis dokumentasi ialah tempat yang bagus untuk terus meneroka Redis dan semua fungsinya.