@@ -1404,9 +1404,10 @@ void InfoCmd::InfoData(std::string& info) {
14041404 uint64_t total_background_errors = 0 ;
14051405 uint64_t total_memtable_usage = 0 ;
14061406 uint64_t total_table_reader_usage = 0 ;
1407+ uint64_t total_big_key_count = 0 ;;
14071408 uint64_t memtable_usage = 0 ;
14081409 uint64_t table_reader_usage = 0 ;
1409- uint64_t total_big_key_count = 0 ;
1410+ uint64_t big_key_count = 0 ;
14101411 std::shared_lock db_rwl (g_pika_server->dbs_rw_ );
14111412 for (const auto & db_item : g_pika_server->dbs_ ) {
14121413 if (!db_item.second ) {
@@ -1418,8 +1419,7 @@ void InfoCmd::InfoData(std::string& info) {
14181419 db_item.second ->storage ()->GetUsage (storage::PROPERTY_TYPE_ROCKSDB_CUR_SIZE_ALL_MEM_TABLES, &memtable_usage);
14191420 db_item.second ->storage ()->GetUsage (storage::PROPERTY_TYPE_ROCKSDB_ESTIMATE_TABLE_READER_MEM, &table_reader_usage);
14201421 db_item.second ->storage ()->GetUsage (storage::PROPERTY_TYPE_ROCKSDB_BACKGROUND_ERRORS, &background_errors);
1421-
1422- uint64_t big_key_count = db_item.second ->storage ()->GetBigKeyStatistics (db_item.first , " bigkey_property" );
1422+ db_item.second ->storage ()->GetBigKeyStatistics ();
14231423 total_big_key_count += big_key_count;
14241424 db_item.second ->DBUnlockShared ();
14251425 total_memtable_usage += memtable_usage;
@@ -2293,6 +2293,12 @@ void ConfigCmd::ConfigGet(std::string& ret) {
22932293 g_pika_conf->acl_pubsub_default () ? EncodeString (&config_body, " allchannels" )
22942294 : EncodeString (&config_body, " resetchannels" );
22952295 }
2296+
2297+ if (pstd::stringmatch (pattern.data (), " keys-analysis" , 1 )) {
2298+ elements += 2 ;
2299+ EncodeString (&config_body, " keys-analysis" );
2300+ EncodeNumber (&config_body, g_pika_conf->keys_analysis ());
2301+ }
22962302
22972303 std::stringstream resp;
22982304 resp << " *" << std::to_string (elements) << " \r\n " << config_body;
@@ -2483,6 +2489,17 @@ void ConfigCmd::ConfigSet(std::shared_ptr<DB> db) {
24832489 g_pika_conf->SetSlowCmdPool (SlowCmdPool);
24842490 g_pika_server->SetSlowCmdThreadPoolFlag (SlowCmdPool);
24852491 res_.AppendStringRaw (" +OK\r\n " );
2492+ } else if (set_item == " keys-analysis" ) {
2493+ bool KeysAnalysis;
2494+ if (value == " yes" ) {
2495+ KeysAnalysis = true ;
2496+ } else if (value == " no" ) {
2497+ KeysAnalysis = false ;
2498+ } else {
2499+ res_.AppendStringRaw ( " -ERR Invalid argument \' " + value + " \' for CONFIG SET 'keys-analysis'\r\n " );
2500+ return ;
2501+ }
2502+ g_pika_conf->SetKeysAnalysis (KeysAnalysis);
24862503 } else if (set_item == " slowlog-log-slower-than" ) {
24872504 if ((pstd::string2int (value.data (), value.size (), &ival) == 0 ) || ival < 0 ) {
24882505 res_.AppendStringRaw (" -ERR Invalid argument \' " + value + " \' for CONFIG SET 'slowlog-log-slower-than'\r\n " );
0 commit comments