コード例 #1
0
 /**
  * Set the cache for a token.
  *
  * @param $key
  * @param string $value
  * @param null $expiration
  */
 protected function cacheSet($key, $value, $expiration = null)
 {
     $this->client->set($key, $value);
     if (!empty($expiration)) {
         $this->ttl = $expiration;
     }
     $this->client->expire($key, $this->ttl);
 }
コード例 #2
0
ファイル: PredisTest.php プロジェクト: gmo/cache
 /**
  * @group redis-keys
  */
 public function testPreciseTtl()
 {
     $this->assertSame(-2, $this->client->ttl('foo'));
     $this->client->set('foo', 'bar');
     $this->assertSame(-1, $this->client->ttl('foo'));
     $this->client->expire('foo', 20);
     $this->assertThat($this->client->pttl('foo'), $this->logicalAnd($this->greaterThan(0), $this->lessThanOrEqual(20000)));
 }
コード例 #3
0
 /**
  * @inheritdoc
  */
 public function registerNonceAndTimestamp($nonce, $timestamp, ConsumerInterface $consumer)
 {
     if ($this->checkNonceAndTimestampUnicity($nonce, $timestamp, $consumer)) {
         $noncesRedisKey = $this->noncesRedisKey($consumer, $timestamp);
         $this->client->sadd($noncesRedisKey, [$nonce]);
         $this->client->expire($noncesRedisKey, $this->ttl);
         $timestampsKey = $this->timestampsKey($consumer);
         $this->client->zadd($timestampsKey, $timestamp, $timestamp);
         // While we're here, only keep the top 10 items.
         $sortedSet = $this->client->zrevrange($timestampsKey, 0, -1);
         if (is_array($sortedSet) && !empty($sortedSet)) {
             $lastTimestamp = $sortedSet[0];
             $this->client->zremrangebyscore($timestampsKey, 0, $lastTimestamp - 1);
         }
         return true;
     } else {
         return false;
     }
 }
コード例 #4
0
 /**
  * @param SessionInterface $session
  * @param Response $response
  */
 private function postRequestHandle(SessionInterface $session, Response $response)
 {
     if ($this->sessionIsPersistent($config = $this->manager->getSessionConfig())) {
         $id = $session->getId();
         $key = 'session:' . $id;
         $content = $session->all();
         unset($content['_token'], $content['flash']);
         $lastSeen = time();
         $content['last_seen'] = $lastSeen;
         $session->set('last_seen', $lastSeen);
         $value = Json::dump($content);
         $this->redis->watch($key);
         $this->redis->multi();
         $this->redis->set($key, $value);
         $this->redis->expire($key, $this->getSessionLifetimeInSeconds());
         $this->redis->exec();
         $cookie = new Cookie($this->key, $id, $this->getCookieExpirationDate(), $config['path'], $config['domain'], Arr::get($config, 'secure', false));
         $response->headers->setCookie($cookie);
     }
 }
コード例 #5
0
ファイル: RedisHandler.php プロジェクト: robbert-vdh/bolt
 /**
  * {@inheritdoc}
  */
 public function updateTimestamp($sessionId, $data)
 {
     $this->redis->expire($sessionId, $this->ttl);
 }
コード例 #6
0
ファイル: PredisBridge.php プロジェクト: php-resque/resque
 /**
  * {@inheritDoc}
  */
 public function expire($key, $ttl)
 {
     return $this->predis->expire($key, $ttl);
 }