Rumah > pangkalan data > Redis > teks badan

Pertempuran praktikal: Mari kita bincangkan tentang arahan senarai dalam Redis melalui kod sampel

青灯夜游
Lepaskan: 2021-12-13 09:58:20
ke hadapan
3989 orang telah melayarinya

Artikel ini akan memperkenalkan anda kepada arahan senarai dalam Redis, dan belajar cara menggunakan arahan senarai melalui contoh kod saya harap ia akan membantu anda!

Pertempuran praktikal: Mari kita bincangkan tentang arahan senarai dalam Redis melalui kod sampel

Senaraikan struktur data

Jenis senarai ialah struktur 双端链表, kapasiti ialah 2 hingga kuasa ke-32 tolak 1 elemen , iaitu, lebih daripada 4 bilion fungsi utamanya termasuk elemen tolak, pop, dan mendapatkan, dsb.; [Cadangan berkaitan: 栈、队列、消息队列Tutorial video Redis]

Amalan arahan senarai Redis

[l/r] tolak ke kiri /Tambah elemen di sebelah kanan

Sintaks:

[l/r]push key value [value ...]

Sisipkan satu atau lebih elemen dalam baris gilir kunci yang ditentukan dengan sisipan kepala atau sisipan ekor

127.0.0.1:6379> lpush pushkey 1 2 3
(integer) 3
127.0.0.1:6379> lpush pushkey 4
(integer) 4
127.0.0.1:6379> rpush pushkey 5
(integer) 5
127.0.0.1:6379> lrange pushkey 0 -1
1) "4"
2) "3"
3) "2"
4) "1"
5) "5"
Salin selepas log masuk

lrange - elemen julat pertanyaan

Sintaks:

lrange key start stop

Dapatkan elemen dalam julat senarai yang ditentukan

127.0.0.1:6379> lpush products 1 2 3
(integer) 3
127.0.0.1:6379> lpush products 4 5 6
(integer) 6
127.0.0.1:6379> lrange products 0 -1
1) "6"
2) "5"
3) "4"
4) "3"
5) "2"
6) "1"
Salin selepas log masuk

linsert - Sisipkan elemen sebelum atau selepas elemen

Sintaks:

linsert key BEFORE|AFTER pivot value

Sisipkan elemen sebelum atau selepas elemen dalam senarai

127.0.0.1:6379> lrange products 0 -1
1) "6"
2) "5"
3) "4"
4) "3"
5) "2"
6) "1"
127.0.0.1:6379> linsert products before 5 a
(integer) 7
127.0.0.1:6379> lrange products 0 -1
1) "6"
2) "a"
3) "5"
4) "4"
5) "3"
6) "2"
7) "1"
127.0.0.1:6379> linsert products after a b
(integer) 8
127.0.0.1:6379> lrange products 0 -1
1) "6"
2) "a"
3) "b"
4) "5"
5) "4"
6) "3"
7) "2"
8) "1"
Salin selepas log masuk

llen - Dapatkan panjang

Sintaks:

llen key

Dapatkan panjang senarai

127.0.0.1:6379> lrange products 0 -1
1) "6"
2) "a"
3) "b"
4) "5"
5) "4"
6) "3"
7) "2"
8) "1"
127.0.0.1:6379> llen products
(integer) 8
Salin selepas log masuk

lindex - Dapatkan elemen berdasarkan subskrip

Sintaks:

lindex key index

Dapatkan elemen dalam senarai mengikut indeks

127.0.0.1:6379> lrange products 0 -1
1) "6"
2) "a"
3) "b"
4) "5"
5) "4"
6) "3"
7) "2"
8) "1"
127.0.0.1:6379> lindex products 2
"b"
Salin selepas log masuk

lset - Tetapkan nilai berdasarkan subskrip

Sintaks:

lset key index value

Tetapkan nilai elemen senarai mengikut indeks

127.0.0.1:6379> lrange products 0 -1
1) "6"
2) "a"
3) "b"
4) "5"
5) "4"
6) "3"
7) "2"
8) "1"
127.0.0.1:6379> lset products 2 B
OK
127.0.0.1:6379> lrange products 0 -1
1) "6"
2) "a"
3) "B"
4) "5"
5) "4"
6) "3"
7) "2"
8) "1"
Salin selepas log masuk

ltrim - elemen memintas

Sintaks:

ltrim key start end

Pisahkan elemen dalam julat baris gilir yang ditentukan, dan elemen yang selebihnya ialah Padam

127.0.0.1:6379> lrange products 0 -1
1) "6"
2) "a"
3) "B"
4) "5"
5) "4"
6) "3"
7) "2"
8) "1"
127.0.0.1:6379> ltrim products 0 3
OK
127.0.0.1:6379> lrange products 0 -1
1) "6"
2) "a"
3) "B"
4) "5"
Salin selepas log masuk

lrem - Alih keluar elemen

Sintaks:

lrem key count value

Alih keluar elemen senarai

127.0.0.1:6379> lpush test a 1 a 2 a 3 a 4  5 6
(integer) 10
127.0.0.1:6379> lrange  test 0 -1
 1) "6"
 2) "5"
 3) "4"
 4) "a"
 5) "3"
 6) "a"
 7) "2"
 8) "a"
 9) "1"
10) "a"
127.0.0.1:6379> lrem test 3 a
(integer) 4
127.0.0.1:6379> lrange  test 0 -1
1) "6"
2) "5"
3) "4"
4) "3"
5) "2"
6) "1"
7) "a"
Salin selepas log masuk

[l/r] pop - elemen pop dari kiri/kanan

Sintaks:

[l/r]pop key

daripada Menimbulkan elemen nod daripada kepala atau ekor baris gilir (mengembalikan elemen dan mengalih keluarnya daripada baris gilir)

127.0.0.1:6379> lrange  test 0 -1
1) "6"
2) "5"
3) "4"
4) "3"
5) "2"
6) "1"
127.0.0.1:6379> lpop test
"6"
127.0.0.1:6379> lrange  test 0 -1
1) "5"
2) "4"
3) "3"
4) "2"
5) "1"
127.0.0.1:6379> rpop test
"1"
127.0.0.1:6379> lrange  test 0 -1
1) "5"
2) "4"
3) "3"
4) "2"
Salin selepas log masuk

rpoplpush - mengalih keluar elemen kanan dan menambahkannya pada senarai lain di kiri

Sintaks:

rpoplpush source destination

mengalih keluar elemen terakhir senarai (kanan ) dan menambah elemen itu pada senarai lain (kiri) dan mengembalikan

127.0.0.1:6379> lpush src 1 2 3
(integer) 3
127.0.0.1:6379> lrange src 0 -1
1) "3"
2) "2"
3) "1"
127.0.0.1:6379> lpush dst a b c
(integer) 3
127.0.0.1:6379> lrange dst 0 -1
1) "c"
2) "b"
3) "a"
127.0.0.1:6379> rpoplpush src dst
"1"
127.0.0.1:6379> lrange src 0 -1
1) "3"
2) "2"
127.0.0.1:6379> lrange dst 0 -1
1) "1"
2) "c"
3) "b"
4) "a"
Salin selepas log masuk

b[l/r]pop - Sekat muncul satu elemen ke kiri/kanan

Sintaks:

b[l/r]pop key1 [key2 ...] timeout

Alih keluar dan dapatkan senarai Elemen pertama atau terakhir senarai Jika tiada elemen dalam senarai, ia akan

menunggu sehingga 阻塞列表 atau 超时 boleh mengeluarkan elemen. 发现

127.0.0.1:6379> lpush list1 1 2
(integer) 2
127.0.0.1:6379> lpush list2 a b
(integer) 2
127.0.0.1:6379> lrange list1 0 -1
1) "2"
2) "1"
127.0.0.1:6379> lrange list2 0 -1
1) "b"
2) "a"
127.0.0.1:6379> blpop list1 list2 10
1) "list1"   #弹出元素所属的列表
2) "2"       #弹出元素所属的值
127.0.0.1:6379> blpop list1 list2 10
1) "list1"
2) "1"
127.0.0.1:6379> blpop list1 list2 10
1) "list2"
2) "b"
127.0.0.1:6379> blpop list1 list2 10
1) "list2"
2) "a"
127.0.0.1:6379> blpop list1 list2 10
(nil)
(10.08s)  # 列表为空的时候,就等待超时10秒
Salin selepas log masuk
Untuk lebih banyak pengetahuan berkaitan pengaturcaraan, sila lawati:

Pengenalan kepada Pengaturcaraan! !

Atas ialah kandungan terperinci Pertempuran praktikal: Mari kita bincangkan tentang arahan senarai dalam Redis melalui kod sampel. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:juejin.cn
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!