@@ -216,14 +216,98 @@ func (p *Proxy) ConfigGet(key string) *redis.Resp {
216216 p .mu .Lock ()
217217 defer p .mu .Unlock ()
218218 switch key {
219- case "proxy_max_clients" :
220- return redis .NewBulkBytes ([]byte (strconv .Itoa (p .config .ProxyMaxClients )))
219+ case "jodis" :
220+ return redis .NewArray ([]* redis.Resp {
221+ redis .NewBulkBytes ([]byte ("jodis_name" )),
222+ redis .NewBulkBytes ([]byte (p .config .JodisName )),
223+ redis .NewBulkBytes ([]byte ("jodis_addr" )),
224+ redis .NewBulkBytes ([]byte (p .config .JodisAddr )),
225+ redis .NewBulkBytes ([]byte ("jodis_auth" )),
226+ redis .NewBulkBytes ([]byte (p .config .JodisAuth )),
227+ redis .NewBulkBytes ([]byte ("jodis_timeout" )),
228+ redis .NewBulkBytes ([]byte (p .config .JodisTimeout .Duration ().String ())),
229+ redis .NewBulkBytes ([]byte ("jodis_compatible" )),
230+ redis .NewBulkBytes ([]byte (strconv .FormatBool (p .config .JodisCompatible ))),
231+ })
232+ case "proxy" :
233+ return redis .NewArray ([]* redis.Resp {
234+ redis .NewBulkBytes ([]byte ("proxy_datacenter" )),
235+ redis .NewBulkBytes ([]byte (p .config .ProxyDataCenter )),
236+ redis .NewBulkBytes ([]byte ("proxy_max_clients" )),
237+ redis .NewBulkBytes ([]byte (strconv .Itoa (p .config .ProxyMaxClients ))),
238+ redis .NewBulkBytes ([]byte ("proxy_max_offheap_size" )),
239+ redis .NewBulkBytes ([]byte (p .config .ProxyMaxOffheapBytes .HumanString ())),
240+ redis .NewBulkBytes ([]byte ("proxy_heap_placeholder" )),
241+ redis .NewBulkBytes ([]byte (p .config .ProxyHeapPlaceholder .HumanString ())),
242+ })
243+ case "backend_ping_period" :
244+ return redis .NewBulkBytes ([]byte (p .config .BackendPingPeriod .Duration ().String ()))
245+ case "backend_buffer_size" :
246+ return redis .NewArray ([]* redis.Resp {
247+ redis .NewBulkBytes ([]byte ("backend_recv_bufsize" )),
248+ redis .NewBulkBytes ([]byte (p .config .BackendRecvBufsize .HumanString ())),
249+ redis .NewBulkBytes ([]byte ("backend_send_bufsize" )),
250+ redis .NewBulkBytes ([]byte (p .config .BackendSendBufsize .HumanString ())),
251+ })
252+ case "backend_timeout" :
253+ return redis .NewArray ([]* redis.Resp {
254+ redis .NewBulkBytes ([]byte ("backend_recv_timeout" )),
255+ redis .NewBulkBytes ([]byte (p .config .BackendRecvTimeout .Duration ().String ())),
256+ redis .NewBulkBytes ([]byte ("backend_send_timeout" )),
257+ redis .NewBulkBytes ([]byte (p .config .BackendSendTimeout .Duration ().String ())),
258+ })
259+ case "backend_max_pipeline" :
260+ return redis .NewBulkBytes ([]byte (strconv .Itoa (p .config .BackendMaxPipeline )))
221261 case "backend_primary_only" :
222262 return redis .NewBulkBytes ([]byte (strconv .FormatBool (p .config .BackendPrimaryOnly )))
263+ case "max_slot_num" :
264+ return redis .NewBulkBytes ([]byte (strconv .Itoa (p .config .MaxSlotNum )))
265+ case "backend_replica_parallel" :
266+ return redis .NewBulkBytes ([]byte (strconv .Itoa (p .config .BackendReplicaParallel )))
267+ case "backend_keepalive_period" :
268+ return redis .NewBulkBytes ([]byte (p .config .BackendKeepAlivePeriod .Duration ().String ()))
269+ case "backend_number_databases" :
270+ return redis .NewBulkBytes ([]byte (strconv .FormatInt (int64 (p .config .BackendNumberDatabases ), 10 )))
271+ case "session_buffer_size" :
272+ return redis .NewArray ([]* redis.Resp {
273+ redis .NewBulkBytes ([]byte ("session_recv_bufsize" )),
274+ redis .NewBulkBytes ([]byte (p .config .SessionRecvBufsize .HumanString ())),
275+ redis .NewBulkBytes ([]byte ("session_send_bufsize" )),
276+ redis .NewBulkBytes ([]byte (p .config .SessionSendBufsize .HumanString ())),
277+ })
278+ case "session_timeout" :
279+ return redis .NewArray ([]* redis.Resp {
280+ redis .NewBulkBytes ([]byte ("session_recv_timeout" )),
281+ redis .NewBulkBytes ([]byte (p .config .SessionRecvTimeout .Duration ().String ())),
282+ redis .NewBulkBytes ([]byte ("session_send_timeout" )),
283+ redis .NewBulkBytes ([]byte (p .config .SessionSendTimeout .Duration ().String ())),
284+ })
223285 case "slowlog_log_slower_than" :
224286 return redis .NewBulkBytes ([]byte (strconv .FormatInt (p .config .SlowlogLogSlowerThan , 10 )))
225- case "slowlog_max_len" :
226- return redis .NewBulkBytes ([]byte (strconv .FormatInt (p .config .SlowlogMaxLen , 10 )))
287+ case "metrics_report_server" :
288+ return redis .NewBulkBytes ([]byte (p .config .MetricsReportServer ))
289+ case "metrics_report_period" :
290+ return redis .NewBulkBytes ([]byte (p .config .MetricsReportPeriod .Duration ().String ()))
291+ case "metrics_report_influxdb" :
292+ return redis .NewArray ([]* redis.Resp {
293+ redis .NewBulkBytes ([]byte ("metrics_report_influxdb_server" )),
294+ redis .NewBulkBytes ([]byte (p .config .MetricsReportInfluxdbServer )),
295+ redis .NewBulkBytes ([]byte ("metrics_report_influxdb_period" )),
296+ redis .NewBulkBytes ([]byte (p .config .MetricsReportInfluxdbPeriod .Duration ().String ())),
297+ redis .NewBulkBytes ([]byte ("metrics_report_influxdb_username" )),
298+ redis .NewBulkBytes ([]byte (p .config .MetricsReportInfluxdbUsername )),
299+ redis .NewBulkBytes ([]byte ("metrics_report_influxdb_database" )),
300+ redis .NewBulkBytes ([]byte (p .config .MetricsReportInfluxdbDatabase )),
301+ })
302+ case "metrics_report_statsd" :
303+ return redis .NewArray ([]* redis.Resp {
304+ redis .NewBulkBytes ([]byte ("metrics_report_statsd_server" )),
305+ redis .NewBulkBytes ([]byte (p .config .MetricsReportStatsdServer )),
306+ redis .NewBulkBytes ([]byte ("metrics_report_statsd_period" )),
307+ redis .NewBulkBytes ([]byte (p .config .MetricsReportStatsdPeriod .Duration ().String ())),
308+ redis .NewBulkBytes ([]byte ("metrics_report_statsd_prefix" )),
309+ redis .NewBulkBytes ([]byte (p .config .MetricsReportStatsdPrefix )),
310+ })
227311 default :
228312 return redis .NewErrorf ("unsupported key: %s" , key )
229313 }
@@ -233,6 +317,9 @@ func (p *Proxy) ConfigSet(key, value string) *redis.Resp {
233317 p .mu .Lock ()
234318 defer p .mu .Unlock ()
235319 switch key {
320+ case "product_name" :
321+ p .config .ProductName = value
322+ return redis .NewString ([]byte ("OK" ))
236323 case "proxy_max_clients" :
237324 n , err := strconv .Atoi (value )
238325 if err != nil {
@@ -255,20 +342,6 @@ func (p *Proxy) ConfigSet(key, value string) *redis.Resp {
255342 }
256343 p .config .SlowlogLogSlowerThan = n
257344 return redis .NewString ([]byte ("OK" ))
258- case "slowlog_max_len" :
259- n , err := strconv .ParseInt (value , 10 , 64 )
260- if err != nil {
261- return redis .NewErrorf ("err:%s" , err )
262- }
263-
264- if n < 0 {
265- return redis .NewErrorf ("invalid slowlog_max_len" )
266- }
267- p .config .SlowlogMaxLen = n
268- if p .config .SlowlogMaxLen > 0 {
269- SlowLogSetMaxLen (p .config .SlowlogMaxLen )
270- }
271- return redis .NewString ([]byte ("OK" ))
272345 default :
273346 return redis .NewErrorf ("unsupported key: %s" , key )
274347 }
0 commit comments