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!
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]
[l/r] tolak ke kiri /Tambah elemen di sebelah kanan
Sintaks:[l/r]push key value [value ...]
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
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
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
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
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
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
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
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
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
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
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秒
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!