class Redis

Public Instance Methods

deploy() click to toggle source
# File lib/dust/recipes/redis.rb, line 3
def deploy
  @node.install_package 'redis-server'
  @node.write '/etc/redis/redis.conf', generate_redis_conf
  @node.restart_service 'redis-server' if @options.restart
end
status() click to toggle source
# File lib/dust/recipes/redis.rb, line 10
def status
  return false unless @node.package_installed? 'redis-server'
  msg = @node.messages.add('running "redis-cli info"')
  ret = @node.exec 'redis-cli info'
  msg.parse_result(ret[:exit_code])

  @node.messages.add(ret[:stdout], :indent => 0) unless ret[:stdout].empty?
end

Private Instance Methods

default_config() click to toggle source

default configuration variables for ubuntu if you use a different os, you may adapt these listens on all interfaces per default

# File lib/dust/recipes/redis.rb, line 25
def default_config
  { 'daemonize' => 'yes',
    'port' => 6379,
    'timeout' => 300,
    'loglevel' => 'notice',
    'databases' => 16,
    'save' => [ '900 1', '300 10', '60 10000' ],
    'rdbcompression' => 'yes',
    'dbfilename' => 'dump.rdb',
    'slave-serve-stale-data' => 'yes',
    'appendonly' => 'no',
    'appendfsync' => 'everysec',
    'no-appendfsync-on-rewrite' => 'no',
    'vm-enabled' => 'no',
    'vm-max-memory' => 0,
    'vm-page-size' => 32,
    'vm-pages' => 134217728,
    'vm-max-threads' => 4,
    'hash-max-zipmap-entries' => 512,
    'hash-max-zipmap-value' => 64,
    'list-max-ziplist-entries' => 512,
    'list-max-ziplist-value' => 64,
    'set-max-intset-entries' => 512,
    'activerehashing' => 'yes',

    # os specific settings
    'dir' => '/var/lib/redis',
    'pidfile' => '/var/run/redis.pid',
    'logfile' => '/var/log/redis/redis-server.log',
    'vm-swap-file' => '/var/lib/redis/redis.swap'
  }
end
generate_redis_conf() click to toggle source
# File lib/dust/recipes/redis.rb, line 58
def generate_redis_conf
  @config.boolean_to_string!
  @config = default_config.merge @config
  
  redis_conf = ''
  @config.each do |key, value|
    if value.is_a? Array
      value.each { |v| redis_conf << "#{key} #{v}\n" }
    else
      redis_conf << "#{key} #{value}\n"
    end
  end
  
  redis_conf
end