Authored by simba

update

... ... @@ -10,37 +10,54 @@ import java.util.Map;
public class RedisCommonUtil {
public static Map<String,Object> getRedisInfo(String host,int port){
Jedis client = new Jedis(host, port);
String redisInfo=client.info();
if(StringUtils.isBlank(redisInfo)){
Map<String,Object> result=null;
Jedis client =null;
try {
client=new Jedis(host, port);
String redisInfo=client.info();
if(StringUtils.isBlank(redisInfo)){
return null;
}
Map<String,Object> result=new HashMap<String, Object>();
String[] arr = redisInfo.split("\r\n");
for (String str : arr) {
if (str.startsWith("#")||str.startsWith("\r\n")) {
continue;
}
String[] a = str.split(":");
if(a.length==2){
result.put(a[0], a[1]);
result=new HashMap<String, Object>();
String[] arr = redisInfo.split("\r\n");
for (String str : arr) {
if (str.startsWith("#")||str.startsWith("\r\n")) {
continue;
}
String[] a = str.split(":");
if(a.length==2){
result.put(a[0], a[1]);
}
}
return result;
}catch (Exception e){
return null;
}finally {
if(client!=null){
client.close();
}
}
return result;
}
public static boolean getRedisIsSlave(String masterHost,int masterPort,String host,int port ) {
Jedis masterClient = new Jedis(masterHost, masterPort);
masterClient.set("yoho_redis_monitor_test", "test");
Jedis client = new Jedis(host, port);
client.get("yoho_redis_monitor_test");
if(client.get("yoho_redis_monitor_test").equals("test")){
return true;
}else {
Jedis testClient = null;
try {
//主redis塞值
testClient=new Jedis(masterHost, masterPort);
testClient.set("yoho_redis_monitor_test", "test1");
testClient=new Jedis(host, port);
if("test1".equals(testClient.get("yoho_redis_monitor_test"))){
return true;
}else {
return false;
}
}catch (Exception e){
return false;
}finally {
if(testClient!=null){
testClient.close();
}
}
}
... ... @@ -48,5 +65,6 @@ public class RedisCommonUtil {
public static void main(String args[]){
System.out.println(getRedisInfo("192.168.102.222",6379));
System.out.println(getRedisIsSlave("192.168.102.222", 6379, "192.168.102.222",6379));
}
}
\ No newline at end of file
... ...
... ... @@ -12,6 +12,18 @@ public class TelnetUtils {
public final static void main(String[] args) throws Exception {
String string=getResult("192.168.102.222",22222);
JSONObject response=JSONObject.parseObject(string);
StringBuffer paramMonitor=new StringBuffer();
int total_connections=(Integer)response.get("total_connections");
int curr_connections=(Integer)response.get("curr_connections");
if(total_connections>0){
paramMonitor.append("总连接数:"+total_connections);
}
if (total_connections > 0) {
paramMonitor.append("当前接数:"+curr_connections);
}
System.out.println(paramMonitor.toString());
System.out.println(string);
System.out.println(response);
}
... ...
... ... @@ -142,11 +142,13 @@ public class RedisMonitorHandleServiceImpl implements IRedisMonitorHandleService
for (Map.Entry<String, List<String>> entry : tMap.entrySet()) {
String key = entry.getKey().toString();
List<String> rlist = entry.getValue();
log.info("loook twemproxy value {},redis list",key,rlist);
if(!CollectionUtils.isEmpty(rlist)){
for(String ipStr:rlist){
String[] ipConfig=ipStr.split(":");
Map<String,Object> result=null;
if(ipConfig.length==2){
log.info("redis info ip,port",ipConfig[0],ipConfig[1]);
int isFailed=0;
result= RedisCommonUtil.getRedisInfo(ipConfig[0], Integer.valueOf(ipConfig[1]));
paramMonitor=new StringBuffer();
... ... @@ -161,8 +163,8 @@ public class RedisMonitorHandleServiceImpl implements IRedisMonitorHandleService
paramMonitor.append("内存碎片比率:" + result.get("mem_fragmentation_ratio") + ";");
if("slave".equals(role)){
//测试主从是否是好的
log.info("test master and slave,master_host {},slave {}",result.get("master_host").toString(),ipConfig[0]);
boolean flag = RedisCommonUtil.getRedisIsSlave(result.get("master_host").toString(), (int)result.get("master_port"), ipConfig[0], Integer.valueOf(ipConfig[1]));
log.info("test master and slave info {}",result);
boolean flag = RedisCommonUtil.getRedisIsSlave(result.get("master_host").toString(), Integer.valueOf(result.get("master_port").toString()), ipConfig[0], Integer.valueOf(ipConfig[1]));
log.info("test result",flag);
String msg="";
if(flag){
... ...