Rumah > Artikel > pangkalan data > Analisis arahan yang berkaitan dengan jenis data senarai redis dan cara menggunakannya
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.
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"
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
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
127.0.0.1:6379> ltrim ids 0 0 OK 127.0.0.1:6379> lrange ids 0 -1 1) "1"
lset key index value
kunci 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
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 6Anda boleh melihat elemen yang sepadan muncul serta-merta dalam tingkap 1 dan 2:
Senario aplikasi
Baris gilir mesej: lpop dan rpush (atau sebaliknya, lpush dan rpop) boleh merealisasikan fungsi queueLikes 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!