Releases: thewizardplusplus/go-cache
Releases · thewizardplusplus/go-cache
v1.5.2
Pass a context to the cache.NewCacheWithGC() method directly.
Change Log
- pass a context to the
cache.NewCacheWithGC()method directly.
Features
- implementation of an in-memory cache:
- operations:
- running garbage collection at the same time as initializing a cache (optional);
- getting a value by a key:
- signaling a reason for the absence of a key - missed or expired;
- getting a value by a key with deletion of expired values:
- signaling a reason for the absence of a key - missed or expired;
- iteration over values and their keys:
- support stopping of iteration:
- via a handling result;
- via a context;
- support stopping of iteration:
- iteration over values and their keys with deletion of expired values:
- support stopping of iteration:
- via a handling result;
- via a context;
- support stopping of iteration:
- setting a key-value pair with a specified time to live:
- support of key-value pairs without a set time to live (persistent);
- deletion;
- options (optional):
- without running garbage collection:
- implementation of a key-value storage;
- callback for timing;
- with running garbage collection:
- context for stopping of iteration;
- implementation of a key-value storage;
- callback for timing;
- callback that produces an instance of an implementation of garbage collection;
- period of running of garbage collection;
- without running garbage collection:
- operations:
- implementation of garbage collection:
- independent implementation of garbage collection running:
- support interruption via a context;
- support specification of a running period;
- implementation of total garbage collection (based on a full scan):
- options (optional):
- callback for timing;
- options (optional):
- implementation of partial garbage collection (based on expiration in Redis):
- options (optional):
- callback for timing;
- maximum iteration count;
- minimum percent of expired values.
- options (optional):
- independent implementation of garbage collection running:
v1.5.1
Add explanatory comments for the implementation of an in-memory cache and describe releases of the library.
Change Log
- improve benchmarks:
- remove data races from additional concurrent loading;
- implementation of an in-memory cache:
- add explanatory comments;
- describe for releases:
- features;
- change log.
Features
- implementation of an in-memory cache:
- operations:
- running garbage collection at the same time as initializing a cache (optional);
- getting a value by a key:
- signaling a reason for the absence of a key - missed or expired;
- getting a value by a key with deletion of expired values:
- signaling a reason for the absence of a key - missed or expired;
- iteration over values and their keys:
- support stopping of iteration:
- via a handling result;
- via a context;
- support stopping of iteration:
- iteration over values and their keys with deletion of expired values:
- support stopping of iteration:
- via a handling result;
- via a context;
- support stopping of iteration:
- setting a key-value pair with a specified time to live:
- support of key-value pairs without a set time to live (persistent);
- deletion;
- options (optional):
- without running garbage collection:
- implementation of a key-value storage;
- callback for timing;
- with running garbage collection:
- context for stopping of iteration;
- implementation of a key-value storage;
- callback for timing;
- callback that produces an instance of an implementation of garbage collection;
- period of running of garbage collection;
- without running garbage collection:
- operations:
- implementation of garbage collection:
- independent implementation of garbage collection running:
- support interruption via a context;
- support specification of a running period;
- implementation of total garbage collection (based on a full scan):
- options (optional):
- callback for timing;
- options (optional):
- implementation of partial garbage collection (based on expiration in Redis):
- options (optional):
- callback for timing;
- maximum iteration count;
- minimum percent of expired values.
- options (optional):
- independent implementation of garbage collection running:
v1.5
Support running garbage collection at the same time as initializing a cache and support iteration over values and their keys in a cache.
Change Log
- implementation of an in-memory cache:
- operations:
- running garbage collection at the same time as initializing a cache (optional);
- iteration over values and their keys:
- support stopping of iteration:
- via a handling result;
- via a context;
- support stopping of iteration:
- iteration over values and their keys with deletion of expired values:
- support stopping of iteration:
- via a handling result;
- via a context;
- support stopping of iteration:
- options (with running garbage collection; optional):
- context for stopping of iteration;
- implementation of a key-value storage;
- callback for timing;
- callback that produces an instance of an implementation of garbage collection;
- period of running of garbage collection;
- operations:
- refactoring:
- use the
hashmap.WithInterruption()function; - extract the
modelspackage:- move the
cache.Clocktype into it; - move the
cache.Valuestructure into it;
- move the
- use the
- add the example with running garbage collection at the same time as initializing a cache.
Features
- implementation of an in-memory cache:
- operations:
- running garbage collection at the same time as initializing a cache (optional);
- getting a value by a key:
- signaling a reason for the absence of a key - missed or expired;
- getting a value by a key with deletion of expired values:
- signaling a reason for the absence of a key - missed or expired;
- iteration over values and their keys:
- support stopping of iteration:
- via a handling result;
- via a context;
- support stopping of iteration:
- iteration over values and their keys with deletion of expired values:
- support stopping of iteration:
- via a handling result;
- via a context;
- support stopping of iteration:
- setting a key-value pair with a specified time to live:
- support of key-value pairs without a set time to live (persistent);
- deletion;
- options (optional):
- without running garbage collection:
- implementation of a key-value storage;
- callback for timing;
- with running garbage collection:
- context for stopping of iteration;
- implementation of a key-value storage;
- callback for timing;
- callback that produces an instance of an implementation of garbage collection;
- period of running of garbage collection;
- without running garbage collection:
- operations:
- implementation of garbage collection:
- independent implementation of garbage collection running:
- support interruption via a context;
- support specification of a running period;
- implementation of total garbage collection (based on a full scan):
- options (optional):
- callback for timing;
- options (optional):
- implementation of partial garbage collection (based on expiration in Redis):
- options (optional):
- callback for timing;
- maximum iteration count;
- minimum percent of expired values.
- options (optional):
- independent implementation of garbage collection running:
v1.4
Support options for the implementation of an in-memory cache and for implementations of garbage collection.
Change Log
- implementation of an in-memory cache:
- options (optional):
- implementation of a key-value storage;
- callback for timing;
- options (optional):
- implementation of garbage collection:
- implementation of total garbage collection (based on a full scan):
- options (optional):
- callback for timing;
- options (optional):
- implementation of partial garbage collection (based on expiration in Redis):
- options (optional):
- callback for timing;
- maximum iteration count;
- minimum percent of expired values;
- options (optional):
- implementation of total garbage collection (based on a full scan):
- refactoring:
- update the
github.com/thewizardplusplus/go-hashmappackage; - use the
hashmap.Storageinterface;
- update the
- misc.:
- improve the Travis CI configuration.
Features
- implementation of an in-memory cache:
- operations:
- getting a value by a key:
- signaling a reason for the absence of a key - missed or expired;
- getting a value by a key with deletion of expired values:
- signaling a reason for the absence of a key - missed or expired;
- setting a key-value pair with a specified time to live:
- support of key-value pairs without a set time to live (persistent);
- deletion;
- getting a value by a key:
- options (optional):
- implementation of a key-value storage;
- callback for timing;
- operations:
- implementation of garbage collection:
- independent implementation of garbage collection running:
- support interruption via a context;
- support specification of a running period;
- implementation of total garbage collection (based on a full scan):
- options (optional):
- callback for timing;
- options (optional):
- implementation of partial garbage collection (based on expiration in Redis):
- options (optional):
- callback for timing;
- maximum iteration count;
- minimum percent of expired values.
- options (optional):
- independent implementation of garbage collection running:
v1.3
Improve support of interruption of garbage collection via a context, improve benchmarks, and perform refactoring.
Change Log
- implementation of garbage collection:
- improve support of interruption via a context:
- pass a context to the
gc.GC.Clean()method; - additional interruption via a context:
- in the
gc.TotalGC.Clean()method; - in the
gc.PartialGC.Clean()method;
- in the
- pass a context to the
- improve support of interruption via a context:
- improve benchmarks:
- add to benchmarks:
- different storage sizes;
- different expired percents;
- stop at the end of each benchmark:
- garbage collecting;
- additional concurrent loading;
- slow down additional concurrent loading;
- add to benchmarks:
- refactoring:
- extract from the
gc.TotalGC.Clean()method:- the
gc.TotalGC.handleIteration()method;
- the
- extract from the
gc.PartialGC.Clean()method:- the
gc.counterstructure; - the
gc.iteratorstructure.
- the
- extract from the
Features
- implementation of an in-memory cache:
- operations:
- getting a value by a key:
- signaling a reason for the absence of a key - missed or expired;
- getting a value by a key with deletion of expired values:
- signaling a reason for the absence of a key - missed or expired;
- setting a key-value pair with a specified time to live:
- support of key-value pairs without a set time to live (persistent);
- deletion;
- getting a value by a key:
- operations:
- implementation of garbage collection:
- independent implementation of garbage collection running:
- support interruption via a context;
- support specification of a running period;
- implementation of total garbage collection (based on a full scan);
- implementation of partial garbage collection (based on expiration in Redis).
- independent implementation of garbage collection running:
v1.2
Implementation of partial garbage collection (based on expiration in Redis) and of independent running of garbage collection.
Change Log
- implementation of garbage collection:
- independent implementation of garbage collection running;
- implementation of partial garbage collection (based on expiration in Redis).
Features
- implementation of an in-memory cache:
- operations:
- getting a value by a key:
- signaling a reason for the absence of a key - missed or expired;
- getting a value by a key with deletion of expired values:
- signaling a reason for the absence of a key - missed or expired;
- setting a key-value pair with a specified time to live:
- support of key-value pairs without a set time to live (persistent);
- deletion;
- getting a value by a key:
- operations:
- implementation of garbage collection:
- independent implementation of garbage collection running:
- support interruption via a context;
- support specification of a running period;
- implementation of total garbage collection (based on a full scan);
- implementation of partial garbage collection (based on expiration in Redis).
- independent implementation of garbage collection running:
v1.1
Implementation of total garbage collection (based on a full scan).
Change Log
- implementation of an in-memory cache:
- make public the expired value model;
- implementation of garbage collection:
- implementation of total garbage collection (based on a full scan):
- support interruption via a context;
- support specification of a running period.
- implementation of total garbage collection (based on a full scan):
Features
- implementation of an in-memory cache:
- operations:
- getting a value by a key:
- signaling a reason for the absence of a key - missed or expired;
- getting a value by a key with deletion of expired values:
- signaling a reason for the absence of a key - missed or expired;
- setting a key-value pair with a specified time to live:
- support of key-value pairs without a set time to live (persistent);
- deletion;
- getting a value by a key:
- operations:
- implementation of garbage collection:
- implementation of total garbage collection (based on a full scan):
- support interruption via a context;
- support specification of a running period.
- implementation of total garbage collection (based on a full scan):
v1.0
Major version.
Features
- implementation of an in-memory cache:
- operations:
- getting a value by a key:
- signaling a reason for the absence of a key - missed or expired;
- getting a value by a key with deletion of expired values:
- signaling a reason for the absence of a key - missed or expired;
- setting a key-value pair with a specified time to live:
- support of key-value pairs without a set time to live (persistent);
- deletion.
- getting a value by a key:
- operations: