dox_cache 3.0.0-alpha.13
dox_cache: ^3.0.0-alpha.13 copied to clipboard
Cache for Dart and the Dox framework. Memory, file and Redis drivers, TTL, locks, tags and remember helpers.
3.0.0-alpha.13 #
- Version bump only, to match the other packages.
3.0.0-alpha.12 #
- Version bump only, to match the other packages.
3.0.0-alpha.11 #
- Version bump only, to match the other packages.
3.0.0-alpha.10 #
- Version bump only, to match the other packages.
3.0.0-alpha.9 #
- Version bump only, to match the other packages.
3.0.0-alpha.8 #
- Version bump only, to match the other packages.
3.0.0-alpha.7 #
- Perf: the memory driver removes expired items and expired locks in a sweep after many writes. Before, a key that was written once with a ttl and never read again stayed in memory forever.
- Perf: the memory driver with no
max_sizedoes not reorder the map on every hit. The order is only needed for LRU. - Perf: a tagged cache reads all tag versions with one
manycall (oneMGETon Redis).tags(...).flush()raises all tag versions at the same time. Before, each tag was one round trip after the other. - Perf: the Redis driver frees a lock with
EVALSHA. It sends the full script only when Redis does not know it yet. - Perf: the file driver makes the cache folder only when it is missing. Before, it ran
create(recursive: true)on every write. Lock tokens use one sharedRandom.secure().
3.0.0-alpha.6 #
- New
CacheManager.close(). It closes the connections of every store that was built. The Redis driver closes its connection and its pool connections, with no reconnect. Memory, file and null stores do nothing. It is safe to call twice. A store used after it is built again. - New
CacheDriver.close(), for one driver. Custom drivers can override it. The default does nothing.
3.0.0-alpha.5 #
- Version bump only, to match the other packages.
3.0.0-alpha.4 #
- Version bump only, to match the other packages.
3.0.0-alpha.3 #
- New:
getRaw(key)gives the stored value as JSON text, with no decode. Use it to send a cached value as a JSON response. Memory and Redis return the stored text as is. A stored String comes back with its quotes ("bar"). The stored format did not change, so old values still read the same. - Faster
get: a plain store builds the key with no async step.itemKeynow returnsFutureOr<String>. Memorygetcosts about 0.6 µs instead of 0.86 µs. MemorygetRawcosts about 0.3 µs. - New Redis option
pool_size: the most connections one store opens (ioredismaxConnection). Default is 10, the same as before. - Uses
ioredis2.0.0-alpha.2. It sends all commands on one shared connection and writes them together (auto-pipelining). A Redis read costs much less CPU. The cache now uses one connection per store, sopool_sizerarely matters.
3.0.0-alpha.2 #
- Needs Dart 3.13 or newer.
- All dependencies updated to their latest versions.
3.0.0-alpha.1 #
- Uses
ioredis2. Redis error replies throwRedisError. - Redis: no value size limit by default (was 60 KB).
maxValueBytesis still there if you want one. - Redis:
manyuses oneMGET,putManyuses one pipeline,flushusesSCAN+DEL(no Lua). - First release.
CacheManagerwith named stores and custom drivers.- Drivers: memory (with LRU), file, Redis, null.
remember,pull,add,increment,many, tags and atomic locks.