An open source, BSD licensed, advanced key-value store
What is Redis?
Redis is an open source, BSD licensed, advanced key-value cache and store. It is often referred to as a data structure server since keys can contain strings, hashes, lists, sets, sorted sets, bitmaps and hyperloglogs. You can run atomic operations on these types, like appending to a string; incrementing the value in a hash; pushing an element to a list; computing set intersection, union and difference; or getting the member with highest ranking in a sorted set. In order to achieve its outstanding performance, Redis works with an in-memory dataset. Depending on your use case, you can persist it either by dumping the dataset to disk every once in a while, or by appending each command to a log. Persistence can be optionally disabled, if you just need a feature-rich, networked, in-memory cache.
Redis also supports trivial-to-setup master-slave asynchronous replication, with very fast non-blocking first synchronization, auto-reconnection with partial resynchronization on net split.
Keys with a limited time-to-live
LRU eviction of keys
This box installs and starts Redis services. You can use Redis with most programming languages.
Customizing Redis with these variables:
redisport: Port to open on the Redis server [6379 is the default].
chef_cookbook: Chef Cookbook box that downloads the Redis Chef recipe.
chef_solo: Chef Solo box that downloads, installs, and runs Chef Solo to apply the Redis recipe.
Deploying this box:
An instance executing this box uses Puppet and Bash scripts to download, install, and configure Redis. It also installs Nginx to forward HTTP requests to the Redis port. Each event script affects the lifecycle of the Redis server as follows:
chef_solo pre_install: Installs Git, Ruby, ruby-devel and rubygems. Then it initializes the Chef Solo install, which installs all the recipes in the chef_solo.COOKBOOK_LIST file variable.
chef_cookbook pre_configure: Downloads and configures default.rb and metadata.rb and saves them into the elasticbox recipe folder (cookbooks/$CHEF_COOKBOOK_NAME/).
chef_solo pre_configure: Downloads and configures solo.rb given the value of the Chef_SOLO_RB variable and applies the Redis Chef recipe using solo.rb and solo.json. Chef Solo uses the Redis recipe to download, install and ensure that its services are running.
This deployment works with these Linux distributions:
Amazon Linux AMI 2015.03
Centos 6.5, 7
Ubuntu 12.04, 14.04