<?php namespace Doctrine\Common\Cache; use Predis\ClientInterface; use function array_combine; use function array_filter; use function array_map; use function array_values; use function call_user_func_array; use function serialize; use function unserialize; /** * Predis cache provider. * * @deprecated Deprecated without replacement in doctrine/cache 1.11. This class will be dropped in 2.0 */ class PredisCache extends CacheProvider { /** @var ClientInterface */ private $client; public function __construct(ClientInterface $client) { $this->client = $client; } /** * {@inheritdoc} */ protected function doFetch($id) { $result = $this->client->get($id); if ($result === null) { return false; } return unserialize($result); } /** * {@inheritdoc} */ protected function doFetchMultiple(array $keys) { $fetchedItems = call_user_func_array([$this->client, 'mget'], array_values($keys)); return array_map('unserialize', array_filter(array_combine($keys, $fetchedItems))); } /** * {@inheritdoc} */ protected function doSaveMultiple(array $keysAndValues, $lifetime = 0) { if ($lifetime) { $success = true; // Keys have lifetime, use SETEX for each of them foreach ($keysAndValues as $key => $value) { $response = (string) $this->client->setex($key, $lifetime, serialize($value)); if ($response == 'OK') { continue; } $success = false; } return $success; } // No lifetime, use MSET $response = $this->client->mset(array_map(static function ($value) { return serialize($value); }, $keysAndValues)); return (string) $response == 'OK'; } /** * {@inheritdoc} */ protected function doContains($id) { return (bool) $this->client->exists($id); } /** * {@inheritdoc} */ protected function doSave($id, $data, $lifeTime = 0) { $data = serialize($data); if ($lifeTime > 0) { $response = $this->client->setex($id, $lifeTime, $data); } else { $response = $this->client->set($id, $data); } return $response === true || $response == 'OK'; } /** * {@inheritdoc} */ protected function doDelete($id) { return $this->client->del($id) >= 0; } /** * {@inheritdoc} */ protected function doDeleteMultiple(array $keys) { return $this->client->del($keys) >= 0; } /** * {@inheritdoc} */ protected function doFlush() { $response = $this->client->flushdb(); return $response === true || $response == 'OK'; } /** * {@inheritdoc} */ protected function doGetStats() { $info = $this->client->info(); return [ Cache::STATS_HITS => $info['Stats']['keyspace_hits'], Cache::STATS_MISSES => $info['Stats']['keyspace_misses'], Cache::STATS_UPTIME => $info['Server']['uptime_in_seconds'], Cache::STATS_MEMORY_USAGE => $info['Memory']['used_memory'], Cache::STATS_MEMORY_AVAILABLE => false, ]; } }
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
Psr6 | Folder | 0755 |
|
|
ApcCache.php | File | 2.33 KB | 0644 |
|
ApcuCache.php | File | 2.22 KB | 0644 |
|
ArrayCache.php | File | 2.17 KB | 0644 |
|
Cache.php | File | 2.73 KB | 0644 |
|
CacheProvider.php | File | 8.28 KB | 0644 |
|
ChainCache.php | File | 4.84 KB | 0644 |
|
ClearableCache.php | File | 501 B | 0644 |
|
CouchbaseBucketCache.php | File | 4.67 KB | 0644 |
|
CouchbaseCache.php | File | 2.27 KB | 0644 |
|
ExtMongoDBCache.php | File | 5.22 KB | 0644 |
|
FileCache.php | File | 8 KB | 0644 |
|
FilesystemCache.php | File | 2.12 KB | 0644 |
|
FlushableCache.php | File | 350 B | 0644 |
|
InvalidCacheId.php | File | 970 B | 0644 |
|
LegacyMongoDBCache.php | File | 4.69 KB | 0644 |
|
MemcacheCache.php | File | 2.16 KB | 0644 |
|
MemcachedCache.php | File | 3.86 KB | 0644 |
|
MongoDBCache.php | File | 3.23 KB | 0644 |
|
MultiDeleteCache.php | File | 466 B | 0644 |
|
MultiGetCache.php | File | 593 B | 0644 |
|
MultiOperationCache.php | File | 251 B | 0644 |
|
MultiPutCache.php | File | 704 B | 0644 |
|
PhpFileCache.php | File | 2.72 KB | 0644 |
|
PredisCache.php | File | 3.35 KB | 0644 |
|
RedisCache.php | File | 4.36 KB | 0644 |
|
RiakCache.php | File | 6.65 KB | 0644 |
|
SQLite3Cache.php | File | 4.66 KB | 0644 |
|
Version.php | File | 211 B | 0644 |
|
VoidCache.php | File | 994 B | 0644 |
|
WinCacheCache.php | File | 2.34 KB | 0644 |
|
XcacheCache.php | File | 2.16 KB | 0644 |
|
ZendDataCache.php | File | 1.32 KB | 0644 |
|