Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
What changed?
We allow setting a Redis URL in our config via
redis_options
instead of having to specify a host, port, and password.E.g.
This is particularly helpful when dealing with Redis + SSL, when the URL scheme changes from
redis
torediss
.Implementation details
Redix
(the library we use to communicate with Redis) will automatically setssl: true
when it is passed a URL with arediss
scheme.Unfortunately, the only way to pass a URL to
Redix
is by passing a modified set of options ({url, list_of_opts}
instead oflist_of_opts
).Instead of passing those options to
Redbird.Redis.start_link/1
only to then pass them again toRedix.start_link/1
, we now rely onRedix
'schild_spec
function directly, and put it in our supervision tree.Finally, to abstract the configuration of options, we create a new module
Redbird.Config
which handles the merging of options and separating theurl
from the rest of the options if one is present.