900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > redis消息队列写入mysql_redis怎么实现将消息队列持久化到数据库中?

redis消息队列写入mysql_redis怎么实现将消息队列持久化到数据库中?

时间:2020-02-22 06:46:15

相关推荐

redis消息队列写入mysql_redis怎么实现将消息队列持久化到数据库中?

要看你用的是什么语言,如果是php的,你可以这样考虑, 首先一个是将这两个分为两个队列来实现, 一个用来实现消息优先级,一个来实现定时发送用的是redis的有序集合,用zadd添加时,将score比做是优先级,也可以用时间戳来当做score,用来表示时间将消息加入优先级的队列,将1,2替换为时间就是定时发送的队列了$redis = new Redis();$redis->connect('127.0.0.1', 6379);$redis->zAdd('zset1', 1, 'message');$redis->zAdd('zset1', 2, 'message2');从队列中取出数据$redis->zRevRangeByScore('zset1, '+inf', '-inf', array('withscores'=>false, 'limit'=>array(0,20)));

这条语句表示从zset1这个队列里按照score从最大(+inf)到最小(-inf)的排序中取出20条,不带score,如果想要从小到大可以用 zRangeByScore如果你想让这些都运行在命令行下,可以参考下面来,当然这些是经过删减的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中的生成子进程,当调用该函数时,会返回一个进程pid,当pid为0时表明是在子进程中,所以把要执行的东西全放这里,这样就实现了

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。