protected function setValue($key, $value, $expire)
    {
        $result = $this->db->getCollection($this->cacheCollection)
            ->update(['id' => $key], [
                'expire' => $expire > 0 ? $expire + time() : 0,
                'data' => $value,
            ]);

        if ($result) {
            $this->gc();
            return true;
        }
        return $this->addValue($key, $value, $expire);
    }