ttlru
Stores key/value pairs in a ttlru in-memory cache. This cache is therefore reset every time the service restarts.
- Common
- Advanced
# Common config fields, showing default values
label: ""
ttlru:
cap: 1024
default_ttl: 5m0s
init_values: {}
# All config fields, showing default values
label: ""
ttlru:
cap: 1024
default_ttl: 5m0s
ttl: "" # No default (optional)
init_values: {}
optimistic: false
The cache ttlru provides a simple, goroutine safe, cache with a fixed number of entries. Each entry has a per-cache defined TTL.
This TTL is reset on both modification and access of the value. As a result, if the cache is full, and no items have expired, when adding a new item, the item with the soonest expiration will be evicted.
It uses the package expirable
The field init_values can be used to pre-populate the memory cache with any number of key/value pairs:
cache_resources:
- label: foocache
ttlru:
default_ttl: '5m'
cap: 1024
init_values:
foo: bar
These values can be overridden during execution.
Fields
cap
The cache maximum capacity (number of entries)
Type: int
Default: 1024
default_ttl
The cache ttl of each element
Type: string
Default: "5m0s"
Requires version 1.0.0 or newer
ttl
Deprecated. Please use default_ttl
field
Type: string
init_values
A table of key/value pairs that should be present in the cache on initialization. This can be used to create static lookup tables.
Type: object
Default: {}
# Examples
init_values:
Nickelback: "1995"
Spice Girls: "1994"
The Human League: "1977"
optimistic
If true, we do not lock on read/write events. The ttlru package is thread-safe, however the ADD operation is not atomic.
Type: bool
Default: false