2 level caching (In memory + memcache) for Clojure.
Nippy is used internally to serialize values in memcache. full.cache 1.0.1 is
using nippy 2.10.0, full.cache 1.1.0 is using nippy 2.13.0.
full.cache 1.2.0 is using nippy 2.14.0 and prefixes cache keys with n2.14.0-
Memcached server url can be set in the yaml config file(s), it's loaded via full.core:
memcache-url: localhost:11211
All methods in full.cache follow naming conventions:
methods starting with r will only use remote cache (rget, for example)
methods starting with l will only use localc cache (lget, for example)
methods without r or l prefix will use both caches (on writes - writing
to both, on reads - using local first & fallbacking to remote)
methods ending with a > return a core.async channel with the value
methods not ending with a > are blocking
full.cache provides methods for working with cache in any of desired
combinations (local only, remote only, or both)
; method that tries to load a cool value & fallbacks to the loader method
; if value is absent.
(get-or-load>
"cool-value"
(fn []
(go
(clojure.core.async/<! (clojure.core.async/timeout 3000))
42))
100)
; read from remote cache only
(rget "cool-value")
; fetching or loading from local cache only
(lget-or-load>
"cool-value"
(fn []
(go
(clojure.core.async/<! (clojure.core.async/timeout 3000))
42))
100)
Can you improve this documentation? These fine people already did:
Karlis Lauva, jeremyplichtafc & Skylar LoweryEdit on GitHub
cljdoc builds & hosts documentation for Clojure/Script libraries
| Ctrl+k | Jump to recent docs |
| ← | Move to previous article |
| → | Move to next article |
| Ctrl+/ | Jump to the search field |