package cn.superdesk.uniorder.common.mq.redis.constants;

import java.util.EnumSet;
import java.util.HashMap;
import java.util.Map;

/**
 * @Description: Java类作用描述
 * @Author: linjinyu
 * @CreateDate: 2021/8/30 上午11:29
 * @UpdateUser: linjinyu
 * @UpdateDate: 2021/8/30 上午11:29
 * @UpdateRemark: 修改内容
 * @Version: 1.0
 */
public enum RedisInfoEnum {


//		server          :有关Redis服务器的常规信息
//		clients         :客户端连接部分
//		memory          :内存消耗相关信息
//		persistence     :RDB和AOF相关信息
//		stats           :一般统计
//		replication     :主/副本复制信息
//		cpu             :CPU消耗统计信息
//		commandstats    :Redis命令统计
//		cluster         :"Redis群集"部分
//		keyspace        :与数据库相关的统计


//		它还可以采用以下值:
//		all             :返回所有部分
//		default         :仅返回默认的部分集
//		如果未提供任何参数,则采用该default选项。


	all("all", "所有部分"),
//	default("default", "默认部分"),


	server("server", "有关Redis服务器的常规信息"),
	clients("clients", "客户端连接部分"),
	memory("memory", "内存消耗相关信息"),
	persistence("persistence", "RDB和AOF相关信息"),
	stats("stats", "一般统计"),
	replication("replication", "主/副本复制信息"),
	cpu("cpu", "CPU消耗统计信息"),
	commandstats("commandstats", "命令统计"),
	cluster("cluster", "群集部分"),
	keyspace("keyspace", "与数据库相关的统计"),
	;

	private String key;
	private String desc;

	RedisInfoEnum(String key, String desc) {
		this.key = key;
		this.desc = desc;
	}

	public String getKey() {
		return key;
	}

	public String getDesc() {
		return desc;
	}

	public static String getDesc(String key) {
		for (RedisInfoEnum c : RedisInfoEnum.values()) {
			if (c.key.equals(key)) {
				return c.getDesc();
			}
		}
		return "default";
	}

	private static final Map<String, RedisInfoEnum> LOOKUP = new HashMap<>();

	static {
		for (RedisInfoEnum s : EnumSet.allOf(RedisInfoEnum.class)) {
			LOOKUP.put(s.getKey(), s);
		}
	}

	public static RedisInfoEnum get(String key) {
		return LOOKUP.get(key);
	}
}
