Skip to content

Conversation

@jasonvarga
Copy link
Member

@jasonvarga jasonvarga commented Aug 20, 2024

Currently, nocache stores all of its data in the cache. Specifically an array that serves as a manifest of all the URLs that have been cached. With a lot of pages, this array could become large, and leads to high memory usage. Also if you are using redis, the large number of things in the cache can lead to high memory usage anyway.

This PR introduces a way to store it in a database instead.

To enable this:

  1. Add 'nocache' => 'database' to config/statamic/static_caching.php
  2. Run php please nocache:migration to generate the migration file.
  3. Run php artisan migrate to run the migration.
  4. Run php please static:clear to clear the static cache. Things may be out of sync if you have previously cached pages but the nocache regions don't exist in the DB yet.

@jasonvarga jasonvarga marked this pull request as ready for review August 21, 2024 14:43
@ryanmitchell
Copy link
Contributor

It might be good to enable timestamps? That way you would be able to clear regions after a given time period? Thinking about ones that are user specific.

@jasonvarga
Copy link
Member Author

I'm not sure what the implementation on that could look like, but adding timestamps doesn't hurt anything. 👍

@jasonvarga jasonvarga merged commit 4e19a9b into 5.x Aug 21, 2024
@jasonvarga jasonvarga deleted the nocache-database branch August 21, 2024 21:05
duncanmcclean added a commit to statamic/statamic that referenced this pull request Oct 7, 2024
duncanmcclean added a commit to statamic/statamic that referenced this pull request Oct 7, 2024
* Nocache database driver

Related: statamic/cms#10671

* Prevent query parameters bloating the static cache

Related: statamic/cms#10701

* Add entry password protection

Related: statamic/cms#10800

* Fix small typo

Related: statamic/cms#10824

* Move nocache js back to end of body but make configurable

Related: statamic/cms#10898
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants