redis消息队列写入mysql_redis怎么实现将消息队列持久化到数据库中?
要看你用的是什么語言,如果是php的,你可以這樣考慮, 首先一個是將這兩個分為兩個隊列來實現(xiàn), 一個用來實現(xiàn)消息優(yōu)先級,一個來實現(xiàn)定時發(fā)送用的是redis的有序集合,用zadd添加時,將score比做是優(yōu)先級,也可以用時間戳來當做score,用來表示時間將消息加入優(yōu)先級的隊列,將1,2替換為時間就是定時發(fā)送的隊列了$redis = new Redis();$redis->connect('127.0.0.1', 6379);$redis->zAdd('zset1', 1, 'message');$redis->zAdd('zset1', 2, 'message2');從隊列中取出數(shù)據(jù)$redis->zRevRangeByScore('zset1, '+inf', '-inf', array('withscores'=>false, 'limit'=>array(0,20)));
這條語句表示從zset1這個隊列里按照score從最大(+inf)到最小(-inf)的排序中取出20條,不帶score,如果想要從小到大可以用 zRangeByScore如果你想讓這些都運行在命令行下,可以參考下面來,當然這些是經(jīng)過刪減的connect('127.0.0.1', 6379); $redis->zRevRangeByScore('zset1', '+inf', '-inf', array('withscores'=>false, 'limit'=>array(0,20))); exit; } else { pcntl_wait($status); }}pcntl_fork是PHP中的生成子進程,當調(diào)用該函數(shù)時,會返回一個進程pid,當pid為0時表明是在子進程中,所以把要執(zhí)行的東西全放這里,這樣就實現(xiàn)了
總結
以上是生活随笔為你收集整理的redis消息队列写入mysql_redis怎么实现将消息队列持久化到数据库中?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 请问常州抽脂肪一般多少钱?
- 下一篇: 吉林通化御鹿瑰宝多少钱一盒?