bentools/redis-psr6-ttl-aware-adapter

覆盖Symfony PSR6缓存RedisAdapter,获取现有项的过期时间。

v1.0.1 2016-09-02 12:15 UTC

This package is auto-updated.

Last update: 2024-09-15 00:06:22 UTC


README

覆盖Symfony PSR6缓存RedisAdapter,获取现有项的过期时间。

这允许,例如,在缓存中增加一个值直到它过期。原始的Symfony缓存实现实际上在每次调用save()后重置过期延迟。

示例用法

$redis = new Redis();
$redis->connect('127.0.0.1');
$cache = new \BenTools\Cache\Adapter\RedisTTLAwareAdapter($redis);

$key = 'my.example';

# Assume my.example does not exist
var_dump($cache->hasItem($key)); // false
$item = $cache->getItem($key);
$item->set(1);
$item->expiresAfter(5); // expires in 5 seconds
$cache->save($item);
sleep(2);

# After 2 seconds, my.example == 1
var_dump($cache->hasItem($key)); // true
$item = $cache->getItem($key);
$value = $item->get(); // 1
var_dump($value); // 1

$item->set($value + 1);
$cache->save($item);
sleep(2);


# After 4 seconds, my.example == 2
var_dump($cache->hasItem($key)); // true
$item = $cache->getItem($key);
$value = $item->get();
var_dump($value); // 2

$item->set($value + 1);
$cache->save($item);
sleep(2);

# After 6 seconds, my.example does not exist anymore
var_dump($cache->hasItem($key)); // false
$item = $cache->getItem($key);
$value = $item->get();
var_dump($value); // null

安装

composer require bentools/redis-psr6-ttl-aware-adapter