Deletion¶
Terminology:
- eviction means deletion due to the policy
- invalidation means manual deletion by the caller
- deletion occurs as a consequence of invalidation or eviction
Invalidation¶
At any time, you may explicitly invalidate cache entries rather than waiting for entries to be evicted.
Deletion Handlers¶
cache := otter.Must(&otter.Options[string, string]{
OnDeletion: func(e otter.DeletionEvent[string, string]) {
fmt.Printf("Key %s was deleted (%s)\n", e.Key, e.Cause)
},
OnAtomicDeletion: func(e otter.DeletionEvent[string, string]) {
fmt.Printf("Key %s was deleted (%s)\n", e.Key, e.Cause)
},
})
You may specify a deletion handler for your cache to perform some operation when an entry is deleted, via OnDeletion
. These operations are executed asynchronously using a goroutine by default.
When the operation must be performed synchronously with deletion, use OnAtomicDeletion
instead.