This cookbooks installs Redis 2 key-value datastore server. Redis can be installed from packages (where available) or source.
For compiling from source: build-essential, ark
- Set
node.default["redis2"]["install_from"] = "package"
to install from distro packages, any other value to install from source. node["redis2"]["instances"]["default"]
- default attributes for all redis instances, will be merged with per instance attributesnode["redis2"]["instances"][_instance_name_]
per instance configuration attributes tree
If compiling from source using the redis2::source
recipe, note the following attributes:
node["redis2"]["source"]["url"]
= Source tarball URLnode["redis2"]["source"]["checksum"]
= sha256 checksum of the source tarballnode["redis2"]["source"]["version"]
= Redis version
This cookbook implements redis instances as a definition. If you plan to run only one instance, use the redis::default_instance recipe which call a "redis_default" redis_instance. To spawn instances of redis, use the +redis_instance+ definition, usage is pretty straight forward:
redis_instance "datastore" do
port 8866
data_dir "/mnt/redis/datastore"
master master_node
nofile 16384
end
nofile, port, data_dir and master are the only attributes directly configurable using the definition syntax. Other attributes can be configured using the normal attribute interface under the node["redis2"]["instances"][instance_name]
scope. Missing attributes will be merged from node["redis2"]["instances"]["default"]
The master attribute will set up redis as a slave of a the same redis instance on another server. It will not set node["redis2"]["instances"][instance_name]["replication"]["role"]
(which can be slave or master), because redis can be both at the same time (e.g. chained masters).
redis2::auto
- automagically call redis_instance for every instance defined in thenode["redis2"]["instances"]
tree.redis2::default_instance
- use this if you want a simple recipe with a single redis instance called "redis_prime" It's generally not a good idea to use the redis2::default_instance recipe. If you want a single redis instance, either use redis_instance definition or redis2::auto and define your instance in the attributes tree.