@@ -2213,6 +2213,18 @@ void ConfigCmd::ConfigGet(std::string& ret) {
22132213 EncodeNumber (&config_body, g_pika_conf->blob_file_size ());
22142214 }
22152215
2216+ if (pstd::stringmatch (pattern.data (), " cache-value-item-max-size" , 1 ) != 0 ) {
2217+ elements += 2 ;
2218+ EncodeString (&config_body, " cache-value-item-max-size" );
2219+ EncodeNumber (&config_body, g_pika_conf->CacheValueItemMaxSize ());
2220+ }
2221+
2222+ if (pstd::stringmatch (pattern.data (), " max-key-size-in-cache" , 1 ) != 0 ) {
2223+ elements += 2 ;
2224+ EncodeString (&config_body, " max-key-size-in-cache" );
2225+ EncodeNumber (&config_body, g_pika_conf->MaxKeySizeInCache ());
2226+ }
2227+
22162228 if (pstd::stringmatch (pattern.data (), " blob-garbage-collection-age-cutoff" , 1 ) != 0 ) {
22172229 elements += 2 ;
22182230 EncodeString (&config_body, " blob-garbage-collection-age-cutoff" );
@@ -2861,6 +2873,32 @@ void ConfigCmd::ConfigSet(std::shared_ptr<DB> db) {
28612873 return ;
28622874 }
28632875 res_.AppendStringRaw (" +OK\r\n " );
2876+ } else if (set_item == " cache-value-item-max-size" ) {
2877+ if ((pstd::string2int (value.data (), value.size (), &ival) == 0 ) || ival <= 0 ) {
2878+ res_.AppendStringRaw (" -ERR Invalid argument \' " + value + " \' for CONFIG SET 'cache-value-item-max-size'\r\n " );
2879+ return ;
2880+ }
2881+ bool success = g_pika_conf->UpdateCacheValueItemMaxSize (int (ival));
2882+ LOG (INFO) << " update cache-value-item-max-size to " << ival
2883+ << (success ? " success" : " failed" );
2884+ if (!success) {
2885+ res_.AppendStringRaw (" -ERR Invalid argument \' " + value + " \' for CONFIG SET 'cache-value-item-max-size', should between 1 and 2048\r\n " );
2886+ return ;
2887+ }
2888+ res_.AppendStringRaw (" +OK\r\n " );
2889+ } else if (set_item == " max-key-size-in-cache" ) {
2890+ if ((pstd::string2int (value.data (), value.size (), &ival) == 0 ) || ival <= 0 ) {
2891+ res_.AppendStringRaw (" -ERR Invalid argument \' " + value + " \' for CONFIG SET 'max-key-size-in-cache'\r\n " );
2892+ return ;
2893+ }
2894+ bool success = g_pika_conf->UpdateMaxKeySizeInCache (size_t (ival));
2895+ LOG (INFO) << " update max-key-size-in-cache to " << ival
2896+ << (success ? " success" : " failed" );
2897+ if (!success) {
2898+ res_.AppendStringRaw (" -ERR Invalid argument \' " + value + " \' for CONFIG SET 'max-key-size-in-cache', should between 1 and 2097152 \r\n " );
2899+ return ;
2900+ }
2901+ res_.AppendStringRaw (" +OK\r\n " );
28642902 } else if (set_item == " throttle-bytes-per-second" ) {
28652903 if ((pstd::string2int (value.data (), value.size (), &ival) == 0 ) || ival <= 0 ) {
28662904 res_.AppendStringRaw (" -ERR Invalid argument \' " + value + " \' for CONFIG SET 'throttle-bytes-per-second'\r\n " );
0 commit comments