GeezerVisonThe World Wide Web, restored to 800 pixels of glory. |
| Home|About|Gaming cabinet|Archives|How it works|Starter sites |
GeezerVison is showing clojure.github.io — clojure.core.cache - core.cache 1.2.999-SNAPSHOT API documentation Table of ContentsAPI for clojure.core.cache - core.cache 1.2.999-SNAPSHOT (in development)by FogusFull namespace name: clojure.core.cache OverviewProject home page is https://github.com/clojure/core.cache/
A caching library for Clojure. ProtocolsCacheProtocolProtocolThis is the protocol describing the basic cache capability.Known implementations: BasicCache, FIFOCache, FnCache, LIRSCache, LRUCache, LUCache, SoftCache, TTLCacheQ evictfunctionUsage: (evict cache e) Removes an entry from the cache has?functionUsage: (has? cache e) Checks if the cache contains a value associated with `e` hitfunctionUsage: (hit cache e) Is meant to be called if the cache is determined to contain a value associated with `e` lookupfunctionUsage: (lookup cache e)
(lookup cache e not-found)
Retrieve the value associated with `e` if it exists, else `nil` in the 2-arg case. Retrieve the value associated with `e` if it exists, else `not-found` in the 3-arg case. missfunctionUsage: (miss cache e ret) Is meant to be called if the cache is determined to **not** contain a value associated with `e` seedfunctionUsage: (seed cache base) Is used to signal that the cache should be created with a seed. The contract is that said cache should return an instance of its own type. TypesBasicCachetypeFields: [cache] Protocols: CacheProtocol Interfaces: clojure.lang.Associative, clojure.lang.Counted, clojure.lang.ILookup, clojure.lang.IPersistentCollection, clojure.lang.IPersistentMap, clojure.lang.Seqable, java.lang.Iterable FIFOCachetypeFields: [cache q limit] Protocols: CacheProtocol Interfaces: clojure.lang.Associative, clojure.lang.Counted, clojure.lang.ILookup, clojure.lang.IPersistentCollection, clojure.lang.IPersistentMap, clojure.lang.Seqable, java.lang.Iterable FnCachetypeFields: [cache f] Protocols: CacheProtocol Interfaces: clojure.lang.Associative, clojure.lang.Counted, clojure.lang.ILookup, clojure.lang.IPersistentCollection, clojure.lang.IPersistentMap, clojure.lang.Seqable, java.lang.Iterable LIRSCachetypeFields: [cache lruS lruQ tick limitS limitQ] Protocols: CacheProtocol Interfaces: clojure.lang.Associative, clojure.lang.Counted, clojure.lang.ILookup, clojure.lang.IPersistentCollection, clojure.lang.IPersistentMap, clojure.lang.Seqable, java.lang.Iterable LRUCachetypeFields: [cache lru tick limit] Protocols: CacheProtocol Interfaces: clojure.lang.Associative, clojure.lang.Counted, clojure.lang.ILookup, clojure.lang.IPersistentCollection, clojure.lang.IPersistentMap, clojure.lang.Seqable, java.lang.Iterable LUCachetypeFields: [cache lu limit] Protocols: CacheProtocol Interfaces: clojure.lang.Associative, clojure.lang.Counted, clojure.lang.ILookup, clojure.lang.IPersistentCollection, clojure.lang.IPersistentMap, clojure.lang.Seqable, java.lang.Iterable SoftCachetypeFields: [cache rcache rq] Protocols: CacheProtocol Interfaces: clojure.lang.Associative, clojure.lang.Counted, clojure.lang.ILookup, clojure.lang.IPersistentCollection, clojure.lang.IPersistentMap, clojure.lang.Seqable, java.lang.Iterable TTLCacheQtypeFields: [cache ttl q gen ttl-ms] Protocols: CacheProtocol Interfaces: clojure.lang.Associative, clojure.lang.Counted, clojure.lang.ILookup, clojure.lang.IPersistentCollection, clojure.lang.IPersistentMap, clojure.lang.Seqable, java.lang.Iterable Public Variables and Functions->BasicCachefunctionUsage: (->BasicCache cache) Positional factory function for class clojure.core.cache.BasicCache.Source ->FIFOCachefunctionUsage: (->FIFOCache cache q limit) Positional factory function for class clojure.core.cache.FIFOCache.Source ->FnCachefunctionUsage: (->FnCache cache f) Positional factory function for class clojure.core.cache.FnCache.Source ->LIRSCachefunctionUsage: (->LIRSCache cache lruS lruQ tick limitS limitQ) Positional factory function for class clojure.core.cache.LIRSCache.Source ->LRUCachefunctionUsage: (->LRUCache cache lru tick limit) Positional factory function for class clojure.core.cache.LRUCache.Source ->LUCachefunctionUsage: (->LUCache cache lu limit) Positional factory function for class clojure.core.cache.LUCache.Source ->SoftCachefunctionUsage: (->SoftCache cache rcache rq) Positional factory function for class clojure.core.cache.SoftCache.Source ->TTLCacheQfunctionUsage: (->TTLCacheQ cache ttl q gen ttl-ms) Positional factory function for class clojure.core.cache.TTLCacheQ.Source basic-cache-factoryfunctionUsage: (basic-cache-factory base) Returns a pluggable basic cache initialized to `base`Source fifo-cache-factoryfunctionUsage: (fifo-cache-factory base & {threshold :threshold, :or {threshold 32}})
Returns a FIFO cache with the cache and FIFO queue initialized to `base` -- the queue is filled as the values are pulled out of `base`. If the associative structure can guarantee ordering, then the said ordering will define the eventual eviction order. Otherwise, there are no guarantees for the eventual eviction ordering. This function takes an optional `:threshold` argument that defines the maximum number of elements in the cache before the FIFO semantics apply (default is 32). If the number of elements in `base` is greater than the limit then some items in `base` will be dropped from the resulting cache. If the associative structure used as `base` can guarantee sorting, then the last `limit` elements will be used as the cache seed values. Otherwise, there are no guarantees about the elements in the resulting cache.Source lirs-cache-factoryfunctionUsage: (lirs-cache-factory base & {:keys [s-history-limit q-history-limit], :or {s-history-limit 32, q-history-limit 32}})
Returns an LIRS cache with the S & R LRU lists set to the indicated limits.Source lru-cache-factoryfunctionUsage: (lru-cache-factory base & {threshold :threshold, :or {threshold 32}})
Returns an LRU cache with the cache and usage-table initialized to `base` -- each entry is initialized with the same usage value. This function takes an optional `:threshold` argument that defines the maximum number of elements in the cache before the LRU semantics apply (default is 32).Source lu-cache-factoryfunctionUsage: (lu-cache-factory base & {threshold :threshold, :or {threshold 32}})
Returns an LU cache with the cache and usage-table initialized to `base`. This function takes an optional `:threshold` argument that defines the maximum number of elements in the cache before the LU semantics apply (default is 32).Source soft-cache-factoryfunctionUsage: (soft-cache-factory base) Returns a SoftReference cache. Cached values will be referred to with SoftReferences, allowing the values to be garbage collected when there is memory pressure on the JVM. SoftCache is a mutable cache, since it is always based on a ConcurrentHashMap.Source throughfunctionUsage: (through cache item)
(through value-fn cache item)
(through wrap-fn value-fn cache item)
The basic hit/miss logic for the cache system. Expects a wrap function and value function. The wrap function takes the value function and the item in question and is expected to run the value function with the item whenever a cache miss occurs. The intent is to hide any cache-specific cells from leaking into the cache logic itelf.Source through-cachefunctionUsage: (through-cache cache item)
(through-cache cache item value-fn)
(through-cache cache item wrap-fn value-fn)
The basic hit/miss logic for the cache system. Like through but always has the cache argument in the first position for easier use with swap! etc.Source ttl-cache-factoryfunctionUsage: (ttl-cache-factory base & {ttl :ttl, :or {ttl 2000}})
Returns a TTL cache with the cache and expiration-table initialized to `base` -- each with the same time-to-live. This function also allows an optional `:ttl` argument that defines the default time in milliseconds that entries are allowed to reside in the cache.Source clojure.core.cache.wrappedA higher level way to use clojure.core.cache that assumes the immutable cache is wrapped in an atom. The API is (almost) the same as clojure.core.cache -- including the factory functions -- but instead of accepting immutable caches, the functions here accept atoms containing those caches. The factory functions return new atoms containing the newly created cache. In addition, lookup-or-miss provides a safe, atomic way to retrieve a value from a cache or compute it if it is missing, without risking a cache stampede. Public Variables and Functionsbasic-cache-factoryfunctionUsage: (basic-cache-factory base) Returns a pluggable basic cache initialized to `base`Source evictfunctionUsage: (evict cache-atom e) Removes an entry from the cache. Returns the updated cache from the atom.Source fifo-cache-factoryfunctionUsage: (fifo-cache-factory base & {threshold :threshold, :or {threshold 32}})
Returns a FIFO cache with the cache and FIFO queue initialized to `base` -- the queue is filled as the values are pulled out of `base`. If the associative structure can guarantee ordering, then the said ordering will define the eventual eviction order. Otherwise, there are no guarantees for the eventual eviction ordering. This function takes an optional `:threshold` argument that defines the maximum number of elements in the cache before the FIFO semantics apply (default is 32). If the number of elements in `base` is greater than the limit then some items in `base` will be dropped from the resulting cache. If the associative structure used as `base` can guarantee sorting, then the last `limit` elements will be used as the cache seed values. Otherwise, there are no guarantees about the elements in the resulting cache.Source has?functionUsage: (has? cache-atom e) Checks if the cache contains a value associated with `e`. Reads from the current version of the atom.Source hitfunctionUsage: (hit cache-atom e) Is meant to be called if the cache is determined to contain a value associated with `e`. Returns the updated cache from the atom. Provided for completeness.Source lirs-cache-factoryfunctionUsage: (lirs-cache-factory base & {:keys [s-history-limit q-history-limit], :or {s-history-limit 32, q-history-limit 32}})
Returns an LIRS cache with the S & R LRU lists set to the indicated limits.Source lookupfunctionUsage: (lookup cache-atom e)
(lookup cache-atom e not-found)
Retrieve the value associated with `e` if it exists, else `nil` in the 2-arg case. Retrieve the value associated with `e` if it exists, else `not-found` in the 3-arg case. Reads from the current version of the atom.Source lookup-or-missfunctionUsage: (lookup-or-miss cache-atom e value-fn)
(lookup-or-miss cache-atom e wrap-fn value-fn)
Retrieve the value associated with `e` if it exists, else compute the value (using value-fn, and optionally wrap-fn), update the cache for `e` and then perform the lookup again. value-fn (and wrap-fn) will only be called (at most) once even in the case of retries, so there is no risk of cache stampede. Since lookup can cause invalidation in some caches (such as TTL), we trap that case and retry (a maximum of ten times).Source lru-cache-factoryfunctionUsage: (lru-cache-factory base & {threshold :threshold, :or {threshold 32}})
Returns an LRU cache with the cache and usage-table initialized to `base` -- each entry is initialized with the same usage value. This function takes an optional `:threshold` argument that defines the maximum number of elements in the cache before the LRU semantics apply (default is 32).Source lu-cache-factoryfunctionUsage: (lu-cache-factory base & {threshold :threshold, :or {threshold 32}})
Returns an LU cache with the cache and usage-table initialized to `base`. This function takes an optional `:threshold` argument that defines the maximum number of elements in the cache before the LU semantics apply (default is 32).Source missfunctionUsage: (miss cache-atom e ret) Is meant to be called if the cache is determined to **not** contain a value associated with `e`. Returns the updated cache from the atom. Provided for completeness.Source seedfunctionUsage: (seed cache-atom base) Is used to signal that the cache should be created with a seed. The contract is that said cache should return an instance of its own type. Returns the updated cache from the atom. Provided for completeness.Source sizefunctionUsage: (size cache-atom) Obtain the approximate size/count of the wrapped cache. The value returned is a point-in-time approximate count/size as the nature of certain caches don't reflect their true size until a 'lookup-or-miss' operation is invoked - such as the TTL cache. Whilst it is an approximate value, the returned result can be useful for metric tracking or decision making. Returns an approximate count/size of the wrapped cache.Source soft-cache-factoryfunctionUsage: (soft-cache-factory base) Returns a SoftReference cache. Cached values will be referred to with SoftReferences, allowing the values to be garbage collected when there is memory pressure on the JVM. SoftCache is a mutable cache, since it is always based on a ConcurrentHashMap.Source throughfunctionUsage: (through cache-atom item)
(through value-fn cache-atom item)
(through wrap-fn value-fn cache-atom item)
The basic hit/miss logic for the cache system. Expects a wrap function and value function. The wrap function takes the value function and the item in question and is expected to run the value function with the item whenever a cache miss occurs. The intent is to hide any cache-specific cells from leaking into the cache logic itelf.Source through-cachefunctionUsage: (through-cache cache-atom item)
(through-cache cache-atom item value-fn)
(through-cache cache-atom item wrap-fn value-fn)
The basic hit/miss logic for the cache system. Like through but always has the cache argument in the first position.Source ttl-cache-factoryfunctionUsage: (ttl-cache-factory base & {ttl :ttl, :or {ttl 2000}})
Returns a TTL cache with the cache and expiration-table initialized to `base` -- each with the same time-to-live. This function also allows an optional `:ttl` argument that defines the default time in milliseconds that entries are allowed to reside in the cache.Source Copyright 2007-2023 by Rich Hickey and the various contributors
Logo & site design by Tom Hickey.
Clojure auto-documentation system by Tom Faulhaber. |
| You are visitor 01402520 — GeezerVison does not store the pages you look up. Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required. |