Share clojure atoms between services.
Define redis connection spec like with taoensso.carmine
. Define an atom by passing in the connetion spec, a key that will point to the atom value on Redis and the atom value. Everything else is exactly the same as with Clojure atoms.
(require '[redis-atom.core :refer [redis-atom]])
(def conn {:pool {} :spec {:uri "redis://localhost:6379"}})
(def a (redis-atom conn :redis-key {:my-data "42" :more-data 43}))
a ; => #object[redis_atom.core.RedisAtom 0x471a378 {:status :ready, :val {:my-data "42", :more-data 43}}]
@a ; => {:my-data "42" :more-data 43}
(reset! a 42) ; => 42
(reset-vals! a 43) ; => [42 43]
(swap! a inc) ; => 43
(swap-vals! a inc) ; => [43 44]
Running the test suite requires redis backend service which can be easily created with docker-compose. To start a local backend:
$ cd redis
$ docker-compose up -d
This will start a redis server on 6379
and a redis-commander on 8081
. If you are a fan of redis-cli, run redis-cli.sh
script in the same dir for the console.
Can you improve this documentation?Edit on GitHub
cljdoc is a website building & hosting documentation for Clojure/Script libraries
× close