Ghost/ghost/adapter-cache-redis
Fabien 'egg' O'Carroll aaaa3ba797
Added support for "Refresh Ahead" caching strategy (#19499)
The main changes are:
- Updating the pipeline to allow for doing a background refresh of the
cache
- Remove the use of the EventAwareCacheWrapper for the posts public
cache

### Background refresh

This is just an initial implementation, and tbh it doesn't sit right
with me that the logic for this is in the pipeline - I think this should
sit in the cache implementation itself, and then we call out to it with
something like: `cache.get(key, fetchData)` and then the updates can
happen internally.

The `cache-manager` project actually has a method like this called
`wrap` - but every time I've used it it hangs, and debugging was a pain,
so I don't really trust it.

### EventAwareCacheWrapper

This is such a small amount of logic, I don't think it's worth creating
an entire wrapper for it, at least not a class based one. I would be
happy to refactor this to use a `Proxy` too, so that we don't have to
add methods to it each time we wanna change the underlying cache
implementation.
2024-01-17 14:00:24 +01:00
..
lib Added support for "Refresh Ahead" caching strategy (#19499) 2024-01-17 14:00:24 +01:00
test Added support for "Refresh Ahead" caching strategy (#19499) 2024-01-17 14:00:24 +01:00
.eslintrc.js Added adapter-cache-redis package 2023-02-13 19:01:43 +08:00
index.js Added eslint rule for file naming convention 2023-05-09 12:34:34 -04:00
package.json Configured all unit tests to use dot reporter 2023-10-05 12:24:24 +02:00
README.md Added adapter-cache-redis package 2023-02-13 19:01:43 +08:00

Adapter Cache Redis

Redis based cache adapter with support of Redis cluster

Usage

Develop

This is a monorepo package.

Follow the instructions for the top-level repo.

  1. git clone this repo & cd into it as usual
  2. Run yarn to install top-level dependencies.

Test

  • yarn lint run just eslint
  • yarn test run lint and tests