@@ -2132,6 +2132,18 @@ void ConfigCmd::ConfigGet(std::string& ret) {
21322132 EncodeNumber (&config_body, g_pika_conf->blob_file_size ());
21332133 }
21342134
2135+ if (pstd::stringmatch (pattern.data (), " cache-value-item-max-size" , 1 ) != 0 ) {
2136+ elements += 2 ;
2137+ EncodeString (&config_body, " cache-value-item-max-size" );
2138+ EncodeNumber (&config_body, g_pika_conf->CacheValueItemMaxSize ());
2139+ }
2140+
2141+ if (pstd::stringmatch (pattern.data (), " max-key-size-in-cache" , 1 ) != 0 ) {
2142+ elements += 2 ;
2143+ EncodeString (&config_body, " max-key-size-in-cache" );
2144+ EncodeNumber (&config_body, g_pika_conf->MaxKeySizeInCache ());
2145+ }
2146+
21352147 if (pstd::stringmatch (pattern.data (), " blob-garbage-collection-age-cutoff" , 1 ) != 0 ) {
21362148 elements += 2 ;
21372149 EncodeString (&config_body, " blob-garbage-collection-age-cutoff" );
@@ -2902,6 +2914,32 @@ void ConfigCmd::ConfigSet(std::shared_ptr<DB> db) {
29022914 return ;
29032915 }
29042916 res_.AppendStringRaw (" +OK\r\n " );
2917+ } else if (set_item == " cache-value-item-max-size" ) {
2918+ if ((pstd::string2int (value.data (), value.size (), &ival) == 0 ) || ival <= 0 ) {
2919+ res_.AppendStringRaw (" -ERR Invalid argument \' " + value + " \' for CONFIG SET 'cache-value-item-max-size'\r\n " );
2920+ return ;
2921+ }
2922+ bool success = g_pika_conf->UpdateCacheValueItemMaxSize (int (ival));
2923+ LOG (INFO) << " update cache-value-item-max-size to " << ival
2924+ << (success ? " success" : " failed" );
2925+ if (!success) {
2926+ res_.AppendStringRaw (" -ERR Invalid argument \' " + value + " \' for CONFIG SET 'cache-value-item-max-size', should between 1 and 2048\r\n " );
2927+ return ;
2928+ }
2929+ res_.AppendStringRaw (" +OK\r\n " );
2930+ } else if (set_item == " max-key-size-in-cache" ) {
2931+ if ((pstd::string2int (value.data (), value.size (), &ival) == 0 ) || ival <= 0 ) {
2932+ res_.AppendStringRaw (" -ERR Invalid argument \' " + value + " \' for CONFIG SET 'max-key-size-in-cache'\r\n " );
2933+ return ;
2934+ }
2935+ bool success = g_pika_conf->UpdateMaxKeySizeInCache (size_t (ival));
2936+ LOG (INFO) << " update max-key-size-in-cache to " << ival
2937+ << (success ? " success" : " failed" );
2938+ if (!success) {
2939+ res_.AppendStringRaw (" -ERR Invalid argument \' " + value + " \' for CONFIG SET 'max-key-size-in-cache', should between 1 and 2097152 \r\n " );
2940+ return ;
2941+ }
2942+ res_.AppendStringRaw (" +OK\r\n " );
29052943 } else if (set_item == " throttle-bytes-per-second" ) {
29062944 if ((pstd::string2int (value.data (), value.size (), &ival) == 0 ) || ival <= 0 ) {
29072945 res_.AppendStringRaw (" -ERR Invalid argument \' " + value + " \' for CONFIG SET 'throttle-bytes-per-second'\r\n " );
0 commit comments