code: public function rpoplpush($destination, int $timeout = -1)
      {
          $destination = ($destination instanceof self) ? $destination->key : $destination;
  
          if ($timeout >= 0) {
              $ret = $this->redis->brpoplpush($this->key, $destination, $timeout);
          } else {
              $ret = $this->redis->rpoplpush($this->key, $destination);
          }
  
          return $this->unSerialize($ret);
      }
docs: @param RedisList|string $destination Where to push the last element to. Can be key or other RedisList.
  Will be inserted at the beginning.
  
  @param int              $timeout     Maximal time in seconds to wait for items to pop. Zero blocks until
  something becomes available.
  -1 to disable blocking and immediately return null if nothing is available
  to pop.
  
  @return mixed The unserialized item or null when the timeout was reached.