View Source RedisMutex (redis_mutex v0.6.0)
An Elixir library for using Redis locks
Setup
- Add
redis_mutex
to your list of dependencies inmix.exs
:
def deps do
[{:redis_mutex, "~> 0.4.0"}]
end
- Ensure
redis_mutex
is started before your application:
def application do
[applications: [:redis_mutex]]
end
- Set the
redis_url
in yourconfig.exs
config :redis_mutex, redis_url: {:system, "REDIS_URL"}
- Call
use RedisMutex
in the module you want to use the lock.
defmodule PossumLodge do
def get_oath do
"Quando omni flunkus moritati"
end
end
With a Redis lock:
defmodule PossumLodge do
use RedisMutex
def get_oath do
with_lock("my_key") do
"Quando omni flunkus moritati"
end
end
end
Custom Redix configuration
Instead of passing a redis_url
to configure the Redix
client, use redix_config
to pass any of the configuration options available to Redix:
config :redis_mutex,
redix_config: [
host: "example.com",
port: 9999,
ssl: true,
socket_opts: [
customize_hostname_check: [
match_fun: :public_key.pkix_verify_hostname_match_fun(:https)
]
]
]
Only one of `:redix_config` and `:redis_url` can be used at a time.