jssh-snippet-redis-shards
Version:
Install multiple Redis servers on one Ubuntu box.
40 lines (35 loc) • 1.4 kB
JavaScript
// Generated by CoffeeScript 1.8.0
(function() {
var defaults;
require('jssh-snippet-redis');
defaults = {
firstPort: 6379,
shards: 4
};
module.exports = function(config) {
var dir, port, ports, rport, tpl_conf, tpl_init, _i, _j, _len, _ref, _ref1, _results;
config = _.extend({}, defaults, config);
ports = (function() {
_results = [];
for (var _i = _ref = config.firstPort, _ref1 = config.firstPort + config.shards - 1; _ref <= _ref1 ? _i <= _ref1 : _i >= _ref1; _ref <= _ref1 ? _i++ : _i--){ _results.push(_i); }
return _results;
}).apply(this);
mkdir('-p', '/var/run/redis');
mkdir('-p', '/var/log/redis');
dir = "" + __dirname + "/tpl";
tpl_conf = cat("" + dir + "/redis.conf");
tpl_init = cat("" + dir + "/redis-server.sh");
rport = new RegExp("__PORT__", "g");
for (_j = 0, _len = ports.length; _j < _len; _j++) {
port = ports[_j];
tpl_conf.replace(rport, port).to("/etc/redis/redis-" + port + ".conf");
mkdir('-p', "/var/lib/redis-" + port);
$("chown redis.redis /var/lib/redis-" + port);
tpl_init.replace(rport, port).to("/etc/init.d/redis_" + port);
chmod(777, "/etc/init.d/redis_" + port);
$("update-rc.d redis_" + port + " defaults");
$("/etc/init.d/redis_" + port + " start");
}
return $('update-rc.d redis-server disable');
};
}).call(this);