Rumah  >  Artikel  >  pangkalan data  >  Pertempuran praktikal: Mari kita bincangkan tentang arahan senarai dalam Redis melalui kod sampel

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

青灯夜游
青灯夜游ke hadapan
2021-12-13 09:58:203994semak imbas

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"

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"

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"

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

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"

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"

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"

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"

[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"

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"

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秒
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!

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