搜索

首页  >  问答  >  正文

看过火丁笔记的那篇“使用Redis来实现消息通知系统”的朋友帮忙讲解下

作者的原文链接:http://huoding.com/2012/02/29/146
redis初学者,轻喷,下面可能很多错误,是我的大致理解:

他首先创建一个需要收到消息的用户的队列
再创建了一个有消息重要等级消息队列
然后创建了一个用户id和消息id关联的队列

然后他用redis命令行做演示:
首先创建了一个消息的hash表
然后创建了类似于上面的用户id和消息id关联的集合
最后通过SORT模拟关联查询渠道消息内容

但是这些内容我用PHP数组+mysql也能实现啊?
为什么要用redis呢?
到底优势在哪里呢?
为什么redis适合于这样的场景呢?
消息发送完毕之后又如何做持久化存储呢?
说明的越详细越好,谢谢了。

伊谢尔伦伊谢尔伦2800 天前683

全部回复(2)我来回复

  • ringa_lee

    ringa_lee2017-04-21 11:18:45

    你用MYSQL当然也可以实现,但是
    1.数据操作上,redis(应该是NOSQL)就是比常规的MYSQL快。因为MYSQL处理数据要经过很多过程,比如SQL解析等等
    2.redis支持多种数据结构,比如文中提到的有序集zSet,列表list.一个软件原生就提供了,你不用自己去实现这些数据结构,节约你的时间。
    3.Redis本身支持持久化存储,要是担心丢失,那就备份一个到MYSQL里.
    4...其他的自己慢慢体会,最好边用边琢磨

    回复
    0
  • PHPz

    PHPz2017-04-21 11:18:45

    数据库的选择要和你的需求挂钩,如果你的消息推送每条就几百几千条,用redis的优势的确看不到,但如果推送消息数到了百万级、千万级时,redis的优势就会很明显。

    同样是排序,冒泡和快排的差距是如何体现出来的呢?算法和数据结构在输入规模很大的情况下,其意义就会体现出来了。

    关于redis的一切,就去google吧

    回复
    0
  • 取消回复