redis 队列推送信息

Redis LTRIM 用于修剪(trim)一个已存在的 list,这样 list 就会只包含指定范围的指定元素。start 和 stop 都是由0开始计数的, 这里的 0 是列表里的第一个元素(表头),1 是第二个元素,以此类推。

例如: LTRIM foobar 0 2 将会对存储在 foobar 的列表进行修剪,只保留列表里的前3个元素。

start 和 end 也可以用负数来表示与表尾的偏移量,比如 -1 表示列表里的最后一个元素, -2 表示倒数第二个,等等。



   Redis::rpush('list_queue', json_encode($tmp));

public function Notice($number,$cishu= null){
       if ($frequency){
      $queue_data = Redis::lrange("list_queue" . $cishu, 0, $number);
      Redis::ltrim("list_queue" . $cishu, count($queue_data ), -1);
  } else {
      $queue_data = Redis::lrange("list_queue", 0, $number);
      Redis::ltrim("list_queue", count($queue_data ), -1);
  }



 
                    // 重新回redis 第二次
                    $redis_key = "";
                    $field_key = "";
                    switch ($type){
                        case "test":
                            $redis_key = "list_queue";
                          
                             $tmp = [
                                 shujushu
                            ];
                          
                            Redis::rpush($redis_key . '_' . ($frequency + 1), json_encode($tmp));
                            break;
                    }

kernel.php


  $schedule->command('pos:list_queue--push_number=100 --push_type=test')->everyMinute()->description("test通知")->withoutOverlapping()->sendOutputTo($output);
  $schedule->command('pos:list_queue--push_number=100 --push_type=test--push_frequency=1')->everyFiveMinutes()->description("test补推1")->withoutOverlapping()->sendOutputTo($output);
posted @ 2022-08-01 17:37  Bashuslovakia  阅读(57)  评论(0编辑  收藏  举报