Rumah > pangkalan data > Redis > teks badan

Penjelasan terperinci mengenai traversal kunci Redis dan pengurusan pangkalan data

WBOY
Lepaskan: 2022-10-10 17:23:48
ke hadapan
1559 orang telah melayarinya

Artikel ini membawakan anda pengetahuan yang berkaitan tentang Redis, yang terutamanya memperkenalkan kandungan yang berkaitan tentang kunci traversal dan pengurusan pangkalan data Mari kita lihat bersama-sama.

Penjelasan terperinci mengenai traversal kunci Redis dan pengurusan pangkalan data

Pembelajaran yang disyorkan: Tutorial video Redis

1 Kekunci traversal

1.1 Penuh Kekunci lintasan

Kadangkala kita perlu melintasi semua kekunci sepenuhnya, maka kita perlu menggunakan arahan corak kekunci, dan arahan ini menyokong padanan corak

127.0.0.1:6379> mset name luke neme josh
OK
Salin selepas log masuk

Jika Jika Jika anda ingin melintasi semua kekunci, anda boleh menggunakan kekunci arahan *

127.0.0.1:6379> keys *
1) "name"
2) "neme"
Salin selepas log masuk

corak menggunakan kad bebas gaya glob, di mana:

  • * mewakili sebarang aksara

  • ? Mewakili watak

  • [] mewakili padanan beberapa aksara, contohnya, [a,b] bermaksud memadankan dua aksara a dan b, [1-10] bermaksud memadankan sebarang nombor dari 1 hingga 10

  • x bermaksud melarikan diri Apabila anda perlu memadankan watak *, anda perlu melarikan diri

Kami boleh melakukan perkara berikut:

127.0.0.1:6379> keys n[a,e]me
1) "name"
2) "neme"
Salin selepas log masuk

Anda juga boleh melakukan ini

127.0.0.1:6379> keys n?me
1) "name"
2) "neme"
Salin selepas log masuk

Tetapi apabila terdapat sejumlah besar kunci dalam pangkalan data redis, kunci akan menyekat redis.

Apakah yang perlu kita lakukan jika kita perlu melintasi kunci?

Secara amnya persekitaran pengeluaran kami adalah berbilang nod, maka kami boleh mencari nod hamba redis yang tidak menyediakan perkhidmatan luaran untuk melintasi data, tetapi jika jumlah data adalah besar, ia masih akan menyekat redis, tetapi untuk nod hamba, ia hanyalah replikasi tuan-hamba yang terjejas.

Jika anda pasti tidak banyak kunci pada redis, anda boleh melaksanakannya secara terus.

1.2 Traversal progresif

Traversal progresif ialah melintasi bahagian kunci setiap kali, kemudian kembali, dan terus melintasi data berikutnya ke lain kali. Dengan cara ini, semua data boleh dilalui tanpa menyekat perkhidmatan redis.

scan cursor [MATCH pattern] [COUNT count]
Salin selepas log masuk

Parameter diterangkan seperti berikut:

  • kursor ialah parameter yang diperlukan, menunjukkan di mana ia dilalui kali ini akan bermula dari ini Kursor bermula Jika 0 dikembalikan, traversal selesai.

  • Corak PERLAWANAN ialah parameter pilihan, yang sama dengan corak kekunci

  • kiraan COUNT bermaksud melintasi beberapa kekunci, lalainya ialah 10 , boleh ditingkatkan mengikut situasi sebenar

127.0.0.1:6379> mset a 1 b 1 c 1 d 1 e 1 f 1 g 1 h 1 i 1 g 1 k 1 l 1 m 1 n 1 o 1 p 1 q 1 r 1 s 1 t 1 u 1 v 1 w 1 x 1 y 1 z 1
OK
Salin selepas log masuk

Kami menggunakan imbasan untuk melintasi, dan pelaksanaan pertama mengembalikan perkara berikut:

127.0.0.1:6379> scan 0
1) "1"
2)  1) "l"
    2) "f"
    3) "k"
    4) "y"
    5) "c"
    6) "e"
    7) "w"
    8) "d"
    9) "b"
   10) "o"
   11) "q"
Salin selepas log masuk

Yang kedua masa, gunakan yang pertama 1 yang dikembalikan untuk kali pertama dilalui, dan 10 kekunci boleh dilalui

127.0.0.1:6379> scan 1
1) "23"
2)  1) "v"
    2) "u"
    3) "z"
    4) "g"
    5) "n"
    6) "s"
    7) "i"
    8) "a"
    9) "r"
   10) "t"
Salin selepas log masuk

Kali ketiga dilalui menggunakan 23 yang dikembalikan untuk kali kedua Apabila nilai pulangan ialah 0 , ini bermakna traversal telah selesai

127.0.0.1:6379> scan 23
1) "0"
2) 1) "x"
   2) "h"
   3) "m"
   4) "p"
Salin selepas log masuk

Terdapat juga hscan untuk jenis cincang, sscan untuk jenis set dan zscan untuk set tertib Kaedah penggunaan adalah sama seperti imbasan

2 Pengurusan Pangkalan Data

Redis juga mempunyai beberapa arahan untuk operasi pangkalan data: dbsize, select, flushdb/flushall

2.1 Tukar pangkalan data, pilih

pilih dbIndex dbIndex ialah nombor siri pangkalan data yang sepadan. Terdapat 16 pangkalan data dalam konfigurasi redis lalai.

Sebagai contoh, tetapkan kunci dalam pangkalan data lalai No. 0

127.0.0.1:6379> set name luke
OK
Salin selepas log masuk

Kemudian kita beralih ke pangkalan data No. 1 untuk mendapatkan kunci, tetapi ia tidak boleh diperoleh, menunjukkan bahawa antara pangkalan data dalam perkhidmatan redis Tiada komunikasi antara mereka.

127.0.0.1:6379> select 1
OK
127.0.0.1:6379[1]> get name
(nil)
Salin selepas log masuk

Jadi bolehkah ia digunakan sebagai redis berganda Sudah tentu tidak. Walaupun terdapat lebih banyak perpustakaan, kerana redis adalah satu-benang, ia sebenarnya masih CPU Jika arahan dalam pangkalan data dilaksanakan dengan sangat perlahan, perpustakaan lain juga akan terjejas, dalam kes ini, jika ia disekat oleh yang lain perpustakaan, Bagi pembangun yang menggunakan perpustakaan tertentu, mungkin sukar untuk menganalisis masalahnya.

2.2 flushall/flushdb

Perbezaan antara flushall dan flushdb ialah flushall akan mengosongkan semua data dalam semua pustaka, manakala flushdb hanya akan mengosongkan pangkalan data semasa.

Ini mudah difahami, jadi kami tidak akan memberikan contoh, bagaimanapun, perlu diingatkan bahawa kedua-dua arahan ini akan mengosongkan semua data, dan akibat salah operasi akan membawa bencana. Dan apabila terdapat terlalu banyak kunci, redis juga akan disekat, jadi anda mesti berhati-hati apabila menggunakan kedua-dua arahan ini.

Pembelajaran yang disyorkan: Tutorial video Redis

Atas ialah kandungan terperinci Penjelasan terperinci mengenai traversal kunci Redis dan pengurusan pangkalan data. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:juejin.im
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!