cari
Rumahpangkalan datatutorial mysqlNosql之Redis: list数据类型及操作命令

Nosql之Redis: list数据类型及操作命令

Jun 07, 2016 pm 04:29 PM
llistnosqlredisPesananberoperasidatamenaip

list类据类型及操作命令 一:概述 List类型是按照插入顺序排序的字符串链表。 二:相关操作命令 1: lpush 描述:从list头部添加一个元素.如果key不存在则先创建一个空链表,再将数据从头部插入. 命令格式: lpush key value [value...] 返回值:插入后链表中元素的

list类据类型及操作命令

一:概述
List类型是按照插入顺序排序的字符串链表。

二:相关操作命令

1: lpush

描述:从list头部添加一个元素.如果key不存在则先创建一个空链表,再将数据从头部插入.
命令格式: lpush key value [value...]
返回值:插入后链表中元素的数量。
时间复杂度: O(1)
操作如下:
redis 127.0.0.1:6379> lpush user_list v_1
(integer) 1
redis 127.0.0.1:6379> lrange user_list 0 2
1) “v_1″
redis 127.0.0.1:6379> lpush user_list v_1 v_2 v_3
(integer) 4
redis 127.0.0.1:6379> lrange user_list 0 6
1) “v_3″
2) “v_2″
3) “v_1″
4) “v_1″
2: lpushx
描述:当Key存在时,该命令才会在其所关联的List Value的头部插入参数中给出的Value,否则将不会有任何操作发生。
返回值:插入链表中元素的数量.
时间复杂度: O(1)
操作如下:
redis 127.0.0.1:6379> lpushx user_list_1 aa
(integer) 0
redis 127.0.0.1:6379> lrange user_list_1 0 6
(empty list or set)
redis 127.0.0.1:6379> lpushx user_list v_4
(integer) 5
redis 127.0.0.1:6379> lrange user_list 0 8
1) “v_4″
2) “v_3″
3) “v_2″
4) “v_1″
5) “v_1″

3:lrange
描述:从自定范围内返回list中元素.0表示链表头部的第一个元素。其中start的值也可以为负值,-1将表示链表中的最后一个元素,即尾部元素,-2表示倒数第二个并以此类推。
返回值:返回指定范围内元素列表.
时间复杂度:O(S+N) S为start参数表示的偏移量,N表示元素的数量。
语法格式: lrange key start stop

操作如下:
redis 127.0.0.1:6379> lrange user_list 0 8
1) “v_4″
2) “v_3″
3) “v_2″
4) “v_1″
5) “v_1″
redis 127.0.0.1:6379> lrange user_list -2 -1
1) “v_1″
2) “v_1″
redis 127.0.0.1:6379>

4: lpop
描述:返回并弹出指定Key关联的链表中的第一个元素,即头部元素,。如果该Key不存,返回nilr.
返回值:返回头部元素.
时间复杂度:O(1)
操作如下:
redis 127.0.0.1:6379> lpop user_list
“v_4″

5:llen
描述:获取链表中元素的数量,如果该Key不存在,则返回0.不是list类型KEY时,则报错.
时间复杂度: O(1)
操作如下:
redis 127.0.0.1:6379> llen user_list
(integer) 4
redis 127.0.0.1:6379> llen user_list1
(integer) 0
redis 127.0.0.1:6379> llen name
(error) ERR Operation against a key holding the wrong kind of value

6:lrem
描述:从key对应的list中删除n个和value相同的元素(n 时间复杂度:O(N) N表示链表中元素的数量
返回值:返回被删除元素的个数
操作命令如下:
redis 127.0.0.1:6379> lrange user_list 0 9
1) “v_3″
2) “v_2″
3) “v_1″
4) “v_1″
redis 127.0.0.1:6379> lrem user_list 2 v_1
(integer) 2
redis 127.0.0.1:6379> lrange user_list 0 9
1) “v_3″
2) “v_2″
7: lset
描述:? 更新某个位置元素的值,如果索引值Index超出了链表中元素的数量范围,该命令将返回相关的错误信息。
时间复杂度:O(N) N表示链表中元素的数量 注:但是设定头部或尾部的元素时,其时间复杂度为O(1)
操作命令如下:
redis 127.0.0.1:6379> lset user_list 3 val
(error) ERR index out of range
redis 127.0.0.1:6379> lset user_list 1 vv
OK
redis 127.0.0.1:6379> lrange user_list 0 3
1) “v_3″
2) “vv”

8:lindex
描述:获取list中指定元素.
时间复杂度: O(N) 注:对于头部或尾部元素,其时间复杂度为O(1)。
返回值:返回请求的元素,如果index超出范围,则返回nil。
操作命令如下:
redis 127.0.0.1:6379> lindex user_list 8
(nil)
redis 127.0.0.1:6379> lindex user_list 0
“v_3″

9: ltrim
描述: 裁剪一个 List 到指定范围
时间复杂度:O(N) N:被删除的元素数量
操作命令如下:
redis 127.0.0.1:6379> lrange user_list 0 9
1) “v9″
2) “v7″
3) “v6″
4) “v5″
5) “v_3″
6) “vv”
redis 127.0.0.1:6379> ltrim user_list 0 3
OK
redis 127.0.0.1:6379> lrange user_list 0 9
1) “v9″
2) “v7″
3) “v6″
4) “v5″

10:linsert
描述:在list特定位置前或后面添加元素
语法格式:LINSERT key BEFORE|AFTER pivot value
时间复杂度:O(N) N表示在找到该元素pivot之前需要遍历的元素数量
返回值:成功插入后链表中元素的数量,如果没有找到pivot,返回-1,如果key不存在,返回0。
操作如下:
redis 127.0.0.1:6379> lrange user_list 0 9
1) “v9″
2) “v7″
3) “v6″
4) “v5″
redis 127.0.0.1:6379> linsert user_list before v9 v0
(integer) 5
redis 127.0.0.1:6379> lrange user_list 0 9
1) “v0″
2) “v9″
3) “v7″
4) “v6″
5) “v5″
redis 127.0.0.1:6379> linsert user_list after v9 v11
(integer) 6
redis 127.0.0.1:6379> lrange user_list 0 9
1) “v0″
2) “v9″
3) “v11″
4) “v7″
5) “v6″
6) “v5″
redis 127.0.0.1:6379>

11: rpush
描述:往list尾部压入元素
时间复杂度: O(1)
语法格式:RPUSH key value [value ...]
返回值:插入后的元素数量
操作命令如下:
redis 127.0.0.1:6379> rpush user_list v12 v13
(integer) 8
redis 127.0.0.1:6379> lrange user_list 0 10
1) “v0″
2) “v9″
3) “v11″
4) “v7″
5) “v6″
6) “v5″
7) “v12″
8) “v13″

12: rpushx
描述:当key存时,往list尾部压入元素,不存在没有操作
时间复杂度: O(1)
返回值:插入后的元素数量

13: rpop
描述:弹出尾部元素.如果该Key不存,返回nil。
时间复杂度: O(1)

10: rpoplpush
描述:弹出 (源list)中最后一个元素并将其压入 (目标list)
时间复杂度: O(1)
返回值:返回弹出和插入的元素。
操作命令如下:
redis 127.0.0.1:6379> rpoplpush user_list user_list_1
“v13″
redis 127.0.0.1:6379> lrange user_list_1 0 2
1) “v13″

Kenyataan
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
Bagaimana anda membuat dan mengurus akaun pengguna di MySQL?Bagaimana anda membuat dan mengurus akaun pengguna di MySQL?Apr 22, 2025 pm 06:05 PM

Langkah -langkah untuk membuat dan mengurus akaun pengguna di MySQL adalah seperti berikut: 1. Buat pengguna: Gunakan createuser'newuser '@' localhost'identifiedby'password '; 2. Menetapkan Kebenaran: Gunakan Grantselect, Insert, UpdateOnmydatabase.to'newuser'@'localhost '; 3. Betulkan Ralat Kebenaran: Gunakan RevokeAllPrivileSeonMydatabase.from'newuser'@'localhost '; kemudian menetapkan semula kebenaran; 4. Kebenaran Pengoptimuman: Gunakan Showgra

Bagaimana MySQL berbeza dari Oracle?Bagaimana MySQL berbeza dari Oracle?Apr 22, 2025 pm 05:57 PM

MySQL sesuai untuk pembangunan pesat dan aplikasi kecil dan sederhana, sementara Oracle sesuai untuk perusahaan besar dan keperluan ketersediaan yang tinggi. 1) MySQL adalah sumber terbuka dan mudah digunakan, sesuai untuk aplikasi web dan perusahaan kecil dan sederhana. 2) Oracle berkuasa dan sesuai untuk perusahaan besar dan agensi kerajaan. 3) MySQL menyokong pelbagai enjin penyimpanan, dan Oracle menyediakan fungsi peringkat perusahaan yang kaya.

Apakah kelemahan menggunakan MySQL berbanding dengan pangkalan data hubungan lain?Apakah kelemahan menggunakan MySQL berbanding dengan pangkalan data hubungan lain?Apr 22, 2025 pm 05:49 PM

Kelemahan MySQL berbanding dengan pangkalan data relasi lain termasuk: 1. Isu Prestasi: Anda mungkin menghadapi kesesakan apabila memproses data berskala besar, dan PostgreSQL melakukan lebih baik dalam pertanyaan kompleks dan pemprosesan data besar. 2. Skalabiliti: Keupayaan skala mendatar tidak sebaik Google Spanner dan Amazon Aurora. 3. Batasan Fungsian: Tidak sebaik PostgreSQL dan Oracle dalam Fungsi Lanjutan, beberapa fungsi memerlukan lebih banyak kod dan penyelenggaraan tersuai.

Bagaimana anda melakukan operasi gabungan di MySQL?Bagaimana anda melakukan operasi gabungan di MySQL?Apr 22, 2025 pm 05:41 PM

MySQL menyokong empat jenis gabungan: innerjoin, leftjoin, rightjoin dan fullouterjoin. 1.InnerJoin digunakan untuk memadankan baris dalam dua jadual dan hasil pulangan yang memenuhi kriteria. 2.LeftJoin Mengembalikan semua baris di meja kiri, walaupun jadual yang betul tidak sepadan. 3. Rightjoin bertentangan dengan leftjoin dan mengembalikan semua baris di meja kanan. 4.FullouterJoin Mengembalikan semua baris dalam dua jadual yang memenuhi atau tidak memenuhi syarat -syarat.

Bagaimanakah prestasi MySQL berbanding dengan RDBM lain di bawah beban tinggi?Bagaimanakah prestasi MySQL berbanding dengan RDBM lain di bawah beban tinggi?Apr 22, 2025 pm 05:37 PM

Prestasi MySQL di bawah beban tinggi mempunyai kelebihan dan kekurangannya berbanding dengan RDBMS yang lain. 1) MySQL berfungsi dengan baik di bawah beban tinggi melalui enjin InnoDB dan strategi pengoptimuman seperti pengindeksan, cache pertanyaan dan jadual partition. 2) PostgreSQL menyediakan bacaan dan tulis serentak yang cekap melalui mekanisme MVCC, manakala Oracle dan Microsoft SQLServer meningkatkan prestasi melalui strategi pengoptimuman masing -masing. Dengan konfigurasi dan pengoptimuman yang munasabah, MySQL boleh berfungsi dengan baik dalam persekitaran beban tinggi.

Terangkan kolam penampan InnoDB dan kepentingannya untuk prestasi.Terangkan kolam penampan InnoDB dan kepentingannya untuk prestasi.Apr 19, 2025 am 12:24 AM

Innodbbufferpool mengurangkan cakera I/O dengan data caching dan halaman pengindeksan, meningkatkan prestasi pangkalan data. Prinsip kerjanya termasuk: 1. Bacaan Data: Baca data dari Bufferpool; 2. Penulisan Data: Selepas mengubah suai data, tulis kepada Bufferpool dan menyegarkannya ke cakera secara teratur; 3. Pengurusan cache: Gunakan algoritma LRU untuk menguruskan halaman cache; 4. Mekanisme Membaca: Muatkan halaman data bersebelahan terlebih dahulu. Dengan saiz bufferpool dan menggunakan pelbagai contoh, prestasi pangkalan data dapat dioptimumkan.

Mysql vs Bahasa Pengaturcaraan Lain: PerbandinganMysql vs Bahasa Pengaturcaraan Lain: PerbandinganApr 19, 2025 am 12:22 AM

Berbanding dengan bahasa pengaturcaraan lain, MySQL digunakan terutamanya untuk menyimpan dan mengurus data, manakala bahasa lain seperti Python, Java, dan C digunakan untuk pemprosesan logik dan pembangunan aplikasi. MySQL terkenal dengan prestasi tinggi, skalabilitas dan sokongan silang platform, sesuai untuk keperluan pengurusan data, sementara bahasa lain mempunyai kelebihan dalam bidang masing-masing seperti analisis data, aplikasi perusahaan, dan pengaturcaraan sistem.

Belajar MySQL: Panduan Langkah demi Langkah untuk Pengguna BaruBelajar MySQL: Panduan Langkah demi Langkah untuk Pengguna BaruApr 19, 2025 am 12:19 AM

MySQL bernilai belajar kerana ia adalah sistem pengurusan pangkalan data sumber terbuka yang sesuai untuk penyimpanan data, pengurusan dan analisis. 1) MySQL adalah pangkalan data relasi yang menggunakan SQL untuk mengendalikan data dan sesuai untuk pengurusan data berstruktur. 2) Bahasa SQL adalah kunci untuk berinteraksi dengan MySQL dan menyokong operasi CRUD. 3) Prinsip kerja MySQL termasuk seni bina klien/pelayan, enjin penyimpanan dan pengoptimum pertanyaan. 4) Penggunaan asas termasuk membuat pangkalan data dan jadual, dan penggunaan lanjutan melibatkan menyertai jadual menggunakan Join. 5) Kesilapan umum termasuk kesilapan sintaks dan isu kebenaran, dan kemahiran debugging termasuk menyemak sintaks dan menggunakan perintah menjelaskan. 6) Pengoptimuman prestasi melibatkan penggunaan indeks, pengoptimuman penyata SQL dan penyelenggaraan pangkalan data yang tetap.

See all articles

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

PhpStorm versi Mac

PhpStorm versi Mac

Alat pembangunan bersepadu PHP profesional terkini (2018.2.1).

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

Persekitaran pembangunan bersepadu PHP yang berkuasa

Versi Mac WebStorm

Versi Mac WebStorm

Alat pembangunan JavaScript yang berguna

Pelayar Peperiksaan Selamat

Pelayar Peperiksaan Selamat

Pelayar Peperiksaan Selamat ialah persekitaran pelayar selamat untuk mengambil peperiksaan dalam talian dengan selamat. Perisian ini menukar mana-mana komputer menjadi stesen kerja yang selamat. Ia mengawal akses kepada mana-mana utiliti dan menghalang pelajar daripada menggunakan sumber yang tidak dibenarkan.

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma