public function generateScript()
 {
     $script_tpl = file_get_contents($this->script_tpl_file);
     $redis_servers = $this->redis_conf->getServers();
     $redis_setup_by_host = array();
     foreach ($redis_servers as $r_s_v) {
         $redis_setup_by_host[$r_s_v['host']][] = '/path/to/redis/bin/redis-server /path/to/redis/conf/redis.' . RCT_FLAG . $r_s_v['port'] . '.conf';
     }
     foreach ($redis_setup_by_host as $r_s_b_h_k => $r_s_b_h_v) {
         $_script = str_replace(array('{{REDIS}}', '{{IP}}'), array(implode("\n", $r_s_b_h_v), $r_s_b_h_k), $script_tpl);
         $_script_file = new RCT_File(RCT_PATH . '/tmp/setup/' . $r_s_b_h_k . '/setup.' . RCT_FLAG . '.sh');
         $_script_file->write($_script);
     }
 }
 public function generateConf()
 {
     $conf_tpl = file_get_contents($this->conf_tpl_file);
     $maxmemory = $this->getMaxmemory();
     foreach ($this->ini as $i_v) {
         $_redis_conf = str_replace(array('{{PORT}}', '{{BIND}}', '{{MAXMEMORY}}'), array($i_v['port'], "{$i_v['host']}    127.0.0.1", $maxmemory), $conf_tpl);
         $_conf_file = new RCT_File(RCT_PATH . '/tmp/redis/' . $i_v['host'] . '/redis.' . RCT_FLAG . $i_v['port'] . '.conf');
         $_conf_file->write($_redis_conf);
         if ($i_v['master']) {
             $_master_conf = str_replace(array('{{PORT}}', '{{BIND}}', '{{MAXMEMORY}}'), array($i_v['master']['port'], "{$i_v['master']['host']}    127.0.0.1", $maxmemory), $conf_tpl);
             $_conf_file = new RCT_File(RCT_PATH . '/tmp/redis/' . $i_v['host'] . '/redis.' . RCT_FLAG . $i_v['port'] . '.conf');
             $_conf_file->write($_master_conf);
         }
     }
 }
 public function generateYml()
 {
     $yml_tpl = file_get_contents($this->yml_tpl_file);
     $redis_servers = $this->redis_conf->getServers();
     $servers = '';
     foreach ($redis_servers as $r_s_v) {
         $servers .= "   - {$r_s_v['host']}:{$r_s_v['port']}:1 port{$r_s_v['port']}\n";
     }
     foreach ($this->ini as $i_v) {
         $_nutcracker_yml = '';
         $_nutcracker_yml .= str_replace(array('{{NUMBER}}', '{{IP}}', '{{SERVERS}}'), array(0, '0.0.0.0', $servers), $yml_tpl);
         $_nutcracker_yml .= "\n";
         $_yml_file = new RCT_File(RCT_PATH . '/tmp/nutcracker/' . $i_v[0] . '/nutcracker.' . RCT_FLAG . '.yml');
         $_yml_file->write($_nutcracker_yml);
     }
 }
 public function generateScript()
 {
     $script_tpl = file_get_contents($this->script_tpl_file);
     $servers = $this->redis_conf->getServers();
     $max_memory = $this->redis_conf->getMaxmemory();
     $servers_by_host = array();
     foreach ($servers as $s_v) {
         $servers_by_host[$s_v['host']][] = $s_v;
     }
     $require_memory = ceil($max_memory * 1.5);
     foreach ($servers_by_host as $s_b_h_k => $s_b_h_v) {
         $_servers_str = var_export($s_b_h_v, true);
         $_script = str_replace(array('{{SERVERS}}', '{{REQUIRE_MEMORY}}'), array($_servers_str, $require_memory), $script_tpl);
         $_conf_file = new RCT_File(RCT_PATH . '/tmp/bgsave/' . $s_b_h_k . '/bgsave.' . RCT_FLAG . '.php');
         $_conf_file->write($_script);
     }
 }
 public function generateScript()
 {
     $script_tpl = file_get_contents($this->script_tpl_file);
     $redis_servers = $this->redis_conf->getServers();
     $redis_restart_by_host = array();
     foreach ($redis_servers as $r_s_v) {
         $redis_restart_by_host[$r_s_v['host']][] = 'echo "["`date "+%Y-%m-%d %H:%M:%S"`"]Restarting: ' . $r_s_v['host'] . ':' . $r_s_v['port'] . '"';
         $redis_restart_by_host[$r_s_v['host']][] = '/path/to/redis/bin/redis-cli -p ' . $r_s_v['port'] . ' shutdown save';
         $redis_restart_by_host[$r_s_v['host']][] = 'sleep 1';
         $redis_restart_by_host[$r_s_v['host']][] = '/path/to/redis/bin/redis-server /path/to/redis/conf/redis.' . RCT_FLAG . $r_s_v['port'] . '.conf';
         $redis_restart_by_host[$r_s_v['host']][] = '';
     }
     foreach ($redis_restart_by_host as $r_r_b_h_k => $r_r_b_h_v) {
         $_script = str_replace(array('{{RESTART_REDIS}}'), array(implode("\n", $r_r_b_h_v)), $script_tpl);
         $_script_file = new RCT_File(RCT_PATH . '/tmp/restart/' . $r_r_b_h_k . '/restart.' . RCT_FLAG . '.redis.sh');
         $_script_file->write($_script);
     }
 }