RedisTagAwareAdapter
        
        extends AbstractTagAwareAdapter
    
    
            
            in package
            
        
    
    
            
            Uses
                            RedisTrait                    
    
        
            Stores tag id <> cache id relationship as a Redis Set.
Set (tag relation info) is stored without expiry (non-volatile), while cache always gets an expiry (volatile) even if not set by caller. Thus if you configure redis with the right eviction policy you can be safe this tag <> cache relationship survives eviction (cache cleanup when Redis runs out of memory).
Redis server 2.8+ with any volatile-* eviction policy, OR noeviction if you're sure memory will NEVER fill up
Design limitations:
- Max 4 billion cache keys per cache tag as limited by Redis Set datatype. E.g. If you use a "all" items tag for expiry instead of clear(), that limits you to 4 billion cache items also.
Tags
Table of Contents
- DEFAULT_CACHE_TTL = 8640000
- On cache items without a lifetime set, we set it to 100 days. This is to make sure cache items are preferred to be evicted over tag Sets, if eviction policy is configured according to requirements.
- $namespace : mixed
- $redisEvictionPolicy : string|null
- __construct() : mixed
- doDeleteTagRelations() : bool
- {@inheritdoc}
- doDeleteYieldTags() : iteratable<string|int, mixed>
- {@inheritdoc}
- doInvalidate() : bool
- {@inheritdoc}
- doSave() : array<string|int, mixed>
- {@inheritdoc}
- getRedisEvictionPolicy() : string
Constants
DEFAULT_CACHE_TTL
On cache items without a lifetime set, we set it to 100 days. This is to make sure cache items are preferred to be evicted over tag Sets, if eviction policy is configured according to requirements.
    private
    mixed
    DEFAULT_CACHE_TTL
    = 8640000
    
        
    
Properties
$namespace
    private
        mixed
    $namespace
    
        
        
    
$redisEvictionPolicy
    private
        string|null
    $redisEvictionPolicy
    
    
        detected eviction policy used on Redis server
Methods
__construct()
    public
                __construct(Redis|RedisArray|RedisCluster|ClientInterface|RedisProxy|RedisClusterProxy $redis[, string $namespace = '' ], int $defaultLifetime[, MarshallerInterface|null $marshaller = null ]) : mixed
    
        Parameters
- $redis : Redis|RedisArray|RedisCluster|ClientInterface|RedisProxy|RedisClusterProxy
- 
                    The redis client 
- $namespace : string = ''
- 
                    The default namespace 
- $defaultLifetime : int
- 
                    The default lifetime 
- $marshaller : MarshallerInterface|null = null
Return values
mixed —doDeleteTagRelations()
{@inheritdoc}
    protected
                doDeleteTagRelations(array<string|int, mixed> $tagData) : bool
    
        Parameters
- $tagData : array<string|int, mixed>
Return values
bool —doDeleteYieldTags()
{@inheritdoc}
    protected
                doDeleteYieldTags(array<string|int, mixed> $ids) : iteratable<string|int, mixed>
    
        Parameters
- $ids : array<string|int, mixed>
Return values
iteratable<string|int, mixed> —doInvalidate()
{@inheritdoc}
    protected
                doInvalidate(array<string|int, mixed> $tagIds) : bool
    
        Parameters
- $tagIds : array<string|int, mixed>
Return values
bool —doSave()
{@inheritdoc}
    protected
                doSave(array<string|int, mixed> $values, int $lifetime[, array<string|int, mixed> $addTagData = [] ][, array<string|int, mixed> $delTagData = [] ]) : array<string|int, mixed>
    
        Parameters
- $values : array<string|int, mixed>
- $lifetime : int
- $addTagData : array<string|int, mixed> = []
- $delTagData : array<string|int, mixed> = []
Return values
array<string|int, mixed> —getRedisEvictionPolicy()
    private
                getRedisEvictionPolicy() : string