Redis 列表(list)是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边),一个列表最多可以包含 232 - 1 个元素 (4294967295, 每个列表超过40亿个元素)。(推荐:《redis视频教程》)
list
常用命令:
lpush,rpush,lpop,rpop,lrange,BLPOP(阻塞版)等。
应用场景:
Redis list的应用场景非常多,也是Redis最重要的数据结构之一。
我们可以轻松地实现最新消息排行等功能。
Lists的另一个应用就是消息队列,可以利用Lists的PUSH操作,将任务存在Lists中,然后工作线程再用POP操作将任务取出进行执行。
实现方式:
Redis list的实现为一个双向链表,即可以支持反向查找和遍历,更方便操作,不过带来了部分额外的内存开销,Redis内部的很多实现,包括发送缓冲队列等也都是用的这个数据结构。
RPOPLPUSH source destination
命令 RPOPLPUSH 在一个原子时间内,执行以下两个动作:
将列表 source 中的最后一个元素(尾元素)弹出,并返回给客户端。
将 source 弹出的元素插入到列表 destination ,作为 destination 列表的的头元素。
如果 source 和 destination 相同,则列表中的表尾元素被移动到表头,并返回该元素,可以把这种特殊情况视作列表的旋转(rotation)操作。
一个典型的例子就是服务器的监控程序:它们需要在尽可能短的时间内,并行地检查一组网站,确保它们的可访问性。
redis.lpush "downstream_ips", "192.168.0.10" redis.lpush "downstream_ips", "192.168.0.11" redis.lpush "downstream_ips", "192.168.0.12" redis.lpush "downstream_ips", "192.168.0.13" Then: next_ip = redis.rpoplpush "downstream_ips", "downstream_ips"
BLPOP
假设现在有 job 、 command 和 request 三个列表,其中 job 不存在, command 和 request 都持有非空列表。考虑以下命令:
BLPOP job command request 30 #阻塞30秒,0的话就是无限期阻塞,job列表为空,被跳过,紧接着command 列表的第一个元素被弹出。
1) "command" # 弹出元素所属的列表
2) "update system..." # 弹出元素所属的值
为什么要阻塞版本的pop呢,主要是为了避免轮询。举个简单的例子如果我们用list来实现一个工作队列。执行任务的thread可以调用阻塞版本的pop去获取任务这样就可以避免轮询去检查是否有任务存在。当任务来时候工作线程可以立即返回,也可以避免轮询带来的延迟。
Atas ialah kandungan terperinci redis什么时候用list. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Artikel ini membincangkan pelaksanaan pengesahan dan kebenaran di REDIS, memberi tumpuan kepada membolehkan pengesahan, menggunakan ACL, dan amalan terbaik untuk mendapatkan REDIS. Ia juga meliputi menguruskan kebenaran pengguna dan alat untuk meningkatkan keselamatan Redis.

Artikel ini membincangkan memilih kekunci shard dalam redis cluster, menekankan kesannya terhadap prestasi, skalabilitas, dan pengagihan data. Isu -isu utama termasuk memastikan pengagihan data walaupun selaras dengan corak akses, dan mengelakkan kesilapan biasa l

Artikel ini membincangkan strategi untuk melaksanakan dan menguruskan pembatalan cache di Redis, termasuk tamat tempoh masa, kaedah yang didorong oleh peristiwa, dan versi. Ia juga meliputi amalan terbaik untuk tamat tempoh cache dan alat untuk pemantauan dan automat

Artikel ini membincangkan menggunakan REDIS untuk beratur pekerjaan dan pemprosesan latar belakang, perincian persediaan, definisi pekerjaan, dan pelaksanaan. Ia meliputi amalan terbaik seperti operasi atom dan keutamaan kerja, dan menerangkan bagaimana REDI meningkatkan kecekapan pemprosesan.

Artikel ini menerangkan cara menggunakan REDIS untuk pemesejan pub/sub, meliputi persediaan, amalan terbaik, memastikan kebolehpercayaan mesej, dan prestasi pemantauan.

Artikel membincangkan pemantauan prestasi kluster Redis dan kesihatan menggunakan alat seperti Redis CLI, Redis Insight, dan penyelesaian pihak ketiga seperti Datadog dan Prometheus.

Artikel ini membincangkan menggunakan REDIS untuk pengurusan sesi dalam aplikasi web, memperincikan persediaan, faedah seperti skalabilitas dan prestasi, dan langkah -langkah keselamatan.

Artikel membincangkan mendapatkan REDIS terhadap kelemahan, memberi tumpuan kepada kata laluan yang kuat, mengikat rangkaian, melumpuhkan arahan, pengesahan, penyulitan, kemas kini, dan pemantauan.


Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

SublimeText3 versi Inggeris
Disyorkan: Versi Win, menyokong gesaan kod!

VSCode Windows 64-bit Muat Turun
Editor IDE percuma dan berkuasa yang dilancarkan oleh Microsoft

MantisBT
Mantis ialah alat pengesan kecacatan berasaskan web yang mudah digunakan yang direka untuk membantu dalam pengesanan kecacatan produk. Ia memerlukan PHP, MySQL dan pelayan web. Lihat perkhidmatan demo dan pengehosan kami.

Versi Mac WebStorm
Alat pembangunan JavaScript yang berguna

EditPlus versi Cina retak
Saiz kecil, penyerlahan sintaks, tidak menyokong fungsi gesaan kod