Esempio n. 1
0
        public RedisMemoryAnalysis GetDatabaseMemoryAnalysis(int database, bool runIfMaster = false)
        {
            if (IsMaster && !runIfMaster)
            {
                return(new RedisMemoryAnalysis(ConnectionInfo, database)
                {
                    ErrorMessage = "Cannot run memory analysis on a master - it hurts."
                });
            }

            return(RedisAnalyzer.AnalyzeDatabaseMemory(ConnectionInfo, database));
        }
Esempio n. 2
0
        public RedisMemoryAnalysis(RedisAnalyzer analyzer, RedisConnectionInfo connectionInfo, int database)
        {
            CreationDate = DateTime.UtcNow;
            KeyStats     = new ConcurrentDictionary <KeyMatcher, KeyStats>();

            ConnectionInfo = connectionInfo;
            Database       = database;
            KeyMatchers    = analyzer.KeyMatchers;
            if (KeyMatchers.Count == 0)
            {
                ErrorMessage = "Could not find regexes defined for " + connectionInfo;
                return;
            }
            foreach (var km in KeyMatchers)
            {
                KeyStats[km] = new KeyStats();
            }
        }
Esempio n. 3
0
        public RedisMemoryAnalysis GetDatabaseMemoryAnalysis(int database, bool runIfMaster = false)
        {
            var ci = ConnectionInfo;

            if (IsMaster && !runIfMaster)
            {
                // no slaves, and a master - boom
                if (SlaveCount == 0)
                {
                    return(new RedisMemoryAnalysis(ConnectionInfo, database)
                    {
                        ErrorMessage = "Cannot run memory analysis on a master - it hurts."
                    });
                }

                // Go to the first slave, automagically
                ci = SlaveInstances[0].ConnectionInfo;
            }

            return(RedisAnalyzer.AnalyzeDatabaseMemory(ci, database));
        }
Esempio n. 4
0
 public void ClearDatabaseMemoryAnalysisCache(int database)
 {
     RedisAnalyzer.ClearDatabaseMemoryAnalysisCache(ConnectionInfo, database);
 }