# phpman > perldoc > Cache::SizeAwareCache

## NAME
    [Cache::SizeAwareCache](https://www.chedong.com/phpMan.php/perldoc/Cache%3A%3ASizeAwareCache/markdown) -- extends the Cache interface.

## DESCRIPTION
    The SizeAwareCache interface is implemented by classes that support all of the [Cache::Cache](https://www.chedong.com/phpMan.php/perldoc/Cache%3A%3ACache/markdown)
    interface in addition to the limit_size and max_size features of a size aware cache.

    The default cache size limiting algorithm works by removing cache objects in the following order
    until the desired limit is reached:

      1) objects that have expired
      2) objects that are least recently accessed
      3) objects that expire next

## SYNOPSIS
      use [Cache::SizeAwareCache](https://www.chedong.com/phpMan.php/perldoc/Cache%3A%3ASizeAwareCache/markdown);
      use vars qw( @ISA );

      @ISA = qw( [Cache::SizeAwareCache](https://www.chedong.com/phpMan.php/perldoc/Cache%3A%3ASizeAwareCache/markdown) );

## CONSTANTS
    Please see [Cache::Cache](https://www.chedong.com/phpMan.php/perldoc/Cache%3A%3ACache/markdown) for standard constants

    *$NO_MAX_SIZE*
        The cache has no size restrictions

## METHODS
    Please see [Cache::Cache](https://www.chedong.com/phpMan.php/perldoc/Cache%3A%3ACache/markdown) for the standard methods

### limit_size
        Attempt to resize the cache such that the total disk usage is under the *$new_size*
        parameter. *$new_size* represents t size (in bytes) that the cache should be limited to.
        Note that this is only a one time adjustment. To maintain the cache size, consider using the
        *max_size* option, although it is considered very expensive, and can often be better
        achieved by periodically calling *limit_size*.

## OPTIONS
    Please see [Cache::Cache](https://www.chedong.com/phpMan.php/perldoc/Cache%3A%3ACache/markdown) for the standard options

    *max_size*
        Sets the max_size property (size in bytes), which is described in detail below. Defaults to
        *$NO_MAX_SIZE*.

## PROPERTIES
    Please see [Cache::Cache](https://www.chedong.com/phpMan.php/perldoc/Cache%3A%3ACache/markdown) for standard properties

    (get|set)_max_size
        If this property is set, then the cache will try not to exceed the max size value (in bytes)
        specified. NOTE: This causes the size of the cache to be checked on every set, and can be
        considered *very* expensive in some implementations. A good alternative approach is leave
        max_size as $NO_MAX_SIZE and to periodically limit the size of the cache by calling the
        limit_size( $size ) method.

## SEE ALSO
    [Cache::Cache](https://www.chedong.com/phpMan.php/perldoc/Cache%3A%3ACache/markdown)

## AUTHOR
    Original author: DeWitt Clinton <<dewitt@unto.net>>

    Last author: $Author: dclinton $

    Copyright (C) 2001-2003 DeWitt Clinton

