本文摘自PHP中文网,作者(*-*)浩,侵删。

Redis实现消息队列有两种形式:
广播订阅模式:基于Redis的 Pub/Sub 机制,一旦有客户端往某个key里面 publish一个消息,所有subscribe的客户端都会触发事件集群订阅模式:基于Redis List双向+ 原子性 + BRPOP (推荐学习:Redis视频教程)
Redis消息队列时,当Redis宕机后,消息可能会丢失(也要看持久化的策略)。如果收消息方未有重发和验证机制,Redis内的数据会出现丢失。所以,使用Redis的作为消息队列,通常是对于消息的准确性并非特别高的场景。
如果绝对的保证数据最终一致性,保证消息百分百不丢,那么需要:
1.写入时候要求启用事务处理,保证写一定成功。
2. redis配置成任何变更一定实时持久化,比如存储端是磁盘的话,每次变更马上同步写入磁盘,才算完成。redis是支持这种方式配置的,但是这么做会使它的内存数据库特性完全消失,性能变得十分低下。
相关阅读 >>
更多相关阅读请进入《Redis》频道 >>

数据库系统概念 第6版
本书主要讲述了数据模型、基于对象的数据库和XML、数据存储和查询、事务管理、体系结构等方面的内容。