Rumah  >  Artikel  >  pangkalan data  >  Analisis arahan yang berkaitan dengan jenis data senarai redis dan cara menggunakannya

Analisis arahan yang berkaitan dengan jenis data senarai redis dan cara menggunakannya

WBOY
WBOYke hadapan
2023-05-28 09:32:18995semak imbas

    Pengenalan kepada senarai

    • senarai ialah tatasusunan rentetan yang diisih mengikut tertib sisipan (dalam istilah awam, ia masih menyimpan rentetan ). Anda boleh menambah elemen pada kepala (kiri) atau ekor (kanan) senarai dan senarai boleh mengandungi sehingga ^32-1 elemen (lebih daripada 4 bilion elemen setiap senarai).

    • Senarai dalam Redis sangat serupa dengan LinkedList di Java Lapisan bawah ialah struktur senarai terpaut Operasi penyisipan dan pemadaman senarai adalah sangat pantas, dengan kerumitan masa daripada 0(1). Tidak seperti operasi pemasukan dan pemadaman struktur tatasusunan, data perlu dialihkan. Walaupun nampaknya masih merupakan senarai, pelaksanaan asas senarai dalam Redis tidak terhad kepada senarai pautan berganda yang mudah.

    • Apabila jumlah data adalah kecil, struktur storan asasnya ialah sekeping memori berterusan, dipanggil ziplist (senarai termampat), yang menyimpan dan memperuntukkan semua elemen rapat bersama-sama adalah sekeping berterusan memori; apabila jumlah data adalah besar, ia akan menjadi struktur senarai pantas (senarai pautan cepat).

    • Tetapi senarai terpaut yang ringkas juga cacat Penunjuk senarai terpaut sebelumnya dan seterusnya akan menduduki lebih banyak memori, membuang ruang dan meningkatkan pemecahan memori. Sejak Redis 3.2, Redis menggunakan senarai cepat struktur data hibrid (senarai pautan cepat), yang terdiri daripada senarai zip dan senarai terpaut.

    Arahan biasa

    Tambah arahan

    lpush key value

    Sisipkan elemen dari sebelah kiri (masukkan satu atau lebih nilai ​​ke dalam Ketua senarai)

    127.0.0.1:6379> lpush ids 1
    (integer) 1
    127.0.0.1:6379> lrange ids 0 -1
    1) "1"
    127.0.0.1:6379> lpush ids 2
    (integer) 2
    127.0.0.1:6379> lrange ids 0 -1
    1) "2"
    2) "1"

    rpush key value

    Sisipkan elemen dari sebelah kanan (masukkan satu atau lebih nilai ke dalam ekor (paling kanan) senarai)

    127.0.0.1:6379> rpush ids 3
    (integer) 3
    127.0.0.1:6379> lrange ids 0 -1
    1) "2"
    2) "1"
    3) "3"

    linsert key BEFORE|AFTER pivot value
    Sisipkan elemen sebelum/selepas elemen, dan hasil yang dikembalikan ialah panjang senarai semasa Ambil perhatian bahawa tiada operasi akan dilakukan apabila senarai tidak wujud atau elemen yang dinyatakan tidak wujud senarai itu.

    //元素3前插入0
    127.0.0.1:6379> linsert ids before 3 0
    (integer) 4
    127.0.0.1:6379> lrange ids 0 -1
    1) "2"
    2) "1"
    3) "0"
    4) "3"
    //元素3后插入0
    127.0.0.1:6379> linsert ids after 3 4
    (integer) 5
    127.0.0.1:6379> lrange ids 0 -1
    1) "2"
    2) "1"
    3) "0"
    4) "3"
    5) "4"

    Arahan pertanyaan

    lrange key start end
    Dapatkan senarai elemen dalam julat yang ditentukan dalam senarai jika nilai mula lebih besar daripada nilai akhir senarai, kosong senarai akan dikembalikan
    Seperti yang ditunjukkan di atas

    lindex key index
    Dapatkan elemen pada subskrip indeks yang ditentukan bagi senarai

    127.0.0.1:6379> lindex ids 0
    "2"
    127.0.0.1:6379> lindex ids -1
    "4"

    llen key
    Dapatkan panjang senarai; jika senarai itu tidak wujud, kembalikan 0

    127.0.0.1:6379> llen ids
    (integer) 5

    arahan timbul /Padam

    lpop key
    Elemen pop dari sebelah kiri senarai dan kembalikan elemen kepala

    127.0.0.1:6379> lpop ids
    "2"
    127.0.0.1:6379> lrange ids 0 -1
    1) "1"
    2) "0"
    3) "3"
    4) "4"

    rpop key
    Elemen pop dari sebelah kanan senarai dan kembalikan elemen ekor

    127.0.0.1:6379> rpop ids
    "4"
    127.0.0.1:6379> lrange ids 0 -1
    1) "1"
    2) "0"
    3) "3"

    lrem key count value
    Cari elemen yang sama dengan nilai daripada senarai dan padamkannya. Ia dibahagikan kepada tiga situasi mengikut kiraan:
    kira > ; 0, bermula dari hujung jadual ke kepala, keluarkan nilai mutlak elemen kiraan; 🎜>
    memangkas senarai, iaitu senarai hanya mengekalkan elemen dalam julat yang ditentukan dan elemen yang tidak dalam julat yang ditentukan akan dipadamkan

    127.0.0.1:6379> lrem ids 0 3
    (integer) 1
    127.0.0.1:6379> lrange ids 0 -1
    1) "1"
    2) "0"

    Ubah suai perintah

    ltrim key start end

    Ubah suai nilai elemen dengan subskrip yang ditentukan dan tetapkan kepada nilai

    127.0.0.1:6379> ltrim ids 0 0
    OK
    127.0.0.1:6379> lrange ids 0 -1
    1) "1"

    Sekat perintah pop timbul

    lset key index valuekunci blpop [kunci &hellip ] tamat masa
    Alih keluar dan dapatkan elemen pertama senarai. Jika tiada unsur dalam senarai, senarai akan disekat sehingga tamat masa menunggu (dalam saat) atau elemen boleh pop ditemui

    kunci brpop [kunci …] tamat masa

    Alih keluar dan dapatkan elemen terakhir senarai Jika tiada elemen dalam senarai, senarai akan disekat sehingga tamat masa menunggu atau elemen timbul ditemui

    Buka tiga tetingkap sambungan reids, yang pertama melaksanakan blpop, yang kedua melaksanakan brpop, dan pelaksanaan ketiga menambah:
    Anda boleh melihat bahawa tingkap 1 dan 2 telah disekat di sini selepas pelaksanaan Ini kerana tiada unsur dalam id





    Tetingkap 3 melaksanakan penambahan: lpush id 1 2 3 4 5 6Analisis arahan yang berkaitan dengan jenis data senarai redis dan cara menggunakannyaAnda boleh melihat elemen yang sepadan muncul serta-merta dalam tingkap 1 dan 2:

    Analisis arahan yang berkaitan dengan jenis data senarai redis dan cara menggunakannya


    Senario aplikasiAnalisis arahan yang berkaitan dengan jenis data senarai redis dan cara menggunakannya

    Baris gilir mesej: lpop dan rpush (atau sebaliknya, lpush dan rpop) boleh merealisasikan fungsi queue

    Analisis arahan yang berkaitan dengan jenis data senarai redis dan cara menggunakannyaLikes in Moments List, comment list, ranking list: Arahan lpush dan arahan lrange boleh merealisasikan fungsi senarai terkini Setiap kali, arahan lpush digunakan untuk memasukkan elemen baharu ke dalam senarai, dan kemudian perintah lrange digunakan untuk membaca senarai elemen terkini.

    Atas ialah kandungan terperinci Analisis arahan yang berkaitan dengan jenis data senarai redis dan cara menggunakannya. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

    Kenyataan:
    Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam