This article describe how internal cache mechanism works for AAM 5.3 or higher.
AAM is very flexible and powerful tool with the most advanced access inheritance mechanism. However this comes with the cost of your website performance. The good news is that you have the ability to optimize AAM functionality and significantly increase your website performance with few core AAM settings.
= So, what is AAM cache? =
AAM caches access settings for all your posts, pages, custom post types, categories and custom hierarchical taxonomies. From the “How to manage access to the WordPress content” article you can learn how AAM inherits access settings for posts and terms so you can fully understand the importance of caching mechanism.
By default AAM stores access settings for all posts and terms for each individual user however this behavior can be modified. There are two possible strategies that you can choose, depending on the amount of content and users on your website and both are described below.
= Large website =
A large website is the one that contains thousands of posts, pages, categories and users. In this case you should expect that AAM may take some megabytes of your database space because by default AAM stores access settings on user level. This significantly increase your website performance however if database space is important for you, there is a way to redefine how AAM stores cache. Go to AAM Settings area and on the ConfigPress tab with core.cache.post.levels option specify only role and visitor levels.
This way you direct AAM to store access settings cache ONLY for roles and visitor and AAM will inherit cached settings for current user from it’s parent role. This will significantly reduce the amount of cache data that is stored in a database however adds few extra calls to a database.
= Medium and small websites =
For medium and small website we recommend to keep default AAM cache settings.
= Other cache options =
AAM has couple more other options that you can utilize to customize AAM cache. For example you can completely disable AAM cache with core.cache.status option or redefine how cache is stored for terms (if you use AAM Plus Package extension).
Note! Feel free to contact us if you have questions of do not really understand what exactly all above means.