From a594aedf7b13258110a626c5e5b9823da9ff4b98 Mon Sep 17 00:00:00 2001 From: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Date: Tue, 16 Dec 2025 17:51:33 +0000 Subject: [PATCH] Migrate SONiC from Redis to Valkey This commit migrates the SONiC buildimage codebase from Redis to Valkey. Valkey maintains Redis protocol compatibility, so the swsscommon library continues to work without changes. Changes include: - Update Docker Database Container (Dockerfile.j2, supervisord.conf.j2) - Replace redis-tools/redis-server with valkey-tools/valkey-server - Update configuration paths from /etc/redis/ to /etc/valkey/ - Update socket/pidfile paths from /var/run/redis/ to /var/run/valkey/ - Update Database Configuration (database_config.json.j2) - Rename instance 'redis' to 'valkey' - Rename instance 'redis_chassis' to 'valkey_chassis' - Rename instance 'redis_bmp' to 'valkey_bmp' - Rename instance 'remote_redis' to 'remote_valkey' - Update all socket paths accordingly - Update Virtual Switch Platform (database_config.json, Dockerfile.j2) - Apply same redis->valkey naming changes - Update configuration paths - Update P4 Platform (Dockerfile.j2) - Update configuration paths from /etc/redis/ to /etc/valkey/ - Update Database Initialization Script (docker-database-init.sh) - Rename REDIS_DIR to VALKEY_DIR - Update all path references from redis to valkey - Update user ownership from redis:redis to valkey:valkey - Update Utility Scripts (flush_unused_database) - Update error message to reference Valkey instead of Redis Co-Authored-By: Arthur Poon --- dockers/docker-database/Dockerfile.j2 | 10 ++-- .../docker-database/database_config.json.j2 | 58 +++++++++---------- .../docker-database/docker-database-init.sh | 50 ++++++++-------- dockers/docker-database/flush_unused_database | 2 +- dockers/docker-database/supervisord.conf.j2 | 14 ++--- platform/p4/docker-sonic-p4/Dockerfile.j2 | 2 +- platform/vs/docker-sonic-vs/Dockerfile.j2 | 6 +- .../vs/docker-sonic-vs/database_config.json | 44 +++++++------- 8 files changed, 93 insertions(+), 93 deletions(-) diff --git a/dockers/docker-database/Dockerfile.j2 b/dockers/docker-database/Dockerfile.j2 index a377d3f3753..91f929d8c70 100644 --- a/dockers/docker-database/Dockerfile.j2 +++ b/dockers/docker-database/Dockerfile.j2 @@ -11,8 +11,8 @@ ENV DEBIAN_FRONTEND=noninteractive # Update apt's cache of available packages RUN apt-get update -# Install redis-server -RUN apt-get install -y redis-tools redis-server +# Install valkey-server +RUN apt-get install -y valkey-tools valkey-server # Install click for CLI RUN pip3 install click @@ -25,17 +25,17 @@ RUN pip3 install click {{ install_debian_packages(docker_database_debs.split(' ')) }} {%- endif %} -# Configure redis settings +# Configure valkey settings RUN sed -ri 's/^# save ""$/save ""/g; \ s/^daemonize yes$/daemonize no/; \ s/^logfile .*$/logfile ""/; \ s/^# syslog-enabled no$/syslog-enabled no/; \ s/^# unixsocket/unixsocket/; \ - s/redis-server.sock/redis.sock/g; \ + s/valkey-server.sock/valkey.sock/g; \ s/^client-output-buffer-limit pubsub [0-9]+mb [0-9]+mb [0-9]+/client-output-buffer-limit pubsub 0 0 0/; \ s/^notify-keyspace-events ""$/notify-keyspace-events AKE/; \ s/^databases [0-9]+$/databases 100/ \ - ' /etc/redis/redis.conf + ' /etc/valkey/valkey.conf COPY ["supervisord.conf.j2", "/usr/share/sonic/templates/"] COPY ["critical_processes.j2", "/usr/share/sonic/templates/"] diff --git a/dockers/docker-database/database_config.json.j2 b/dockers/docker-database/database_config.json.j2 index b97589d3733..f915c1a5b21 100644 --- a/dockers/docker-database/database_config.json.j2 +++ b/dockers/docker-database/database_config.json.j2 @@ -1,23 +1,23 @@ {% set include_remote_db = (REMOTE_DB_IP is defined and REMOTE_DB_PORT is defined) %} { "INSTANCES": { - "redis":{ + "valkey":{ "hostname" : "{{HOST_IP}}", "port" : {{REDIS_PORT}}, - "unix_socket_path" : "/var/run/redis{{DEV}}/redis.sock", + "unix_socket_path" : "/var/run/valkey{{DEV}}/valkey.sock", "persistence_for_warm_boot" : "yes" {% if DATABASE_TYPE is defined and DATABASE_TYPE != "" %} ,"database_type": "{{DATABASE_TYPE}}" {% endif %} }, - "redis_chassis":{ - "hostname" : "redis_chassis.server", + "valkey_chassis":{ + "hostname" : "valkey_chassis.server", "port": 6380, - "unix_socket_path": "/var/run/redis-chassis/redis_chassis.sock", + "unix_socket_path": "/var/run/valkey-chassis/valkey_chassis.sock", "persistence_for_warm_boot" : "yes" } {% if include_remote_db %} - ,"remote_redis":{ + ,"remote_valkey":{ "hostname" : "{{REMOTE_DB_IP}}", "port" : {{REMOTE_DB_PORT}}, "unix_socket_path": "", @@ -27,10 +27,10 @@ {% if DATABASE_TYPE is defined and DATABASE_TYPE == "dpudb" %} {% else %} , - "redis_bmp":{ + "valkey_bmp":{ "hostname" : "{{HOST_IP}}", "port" : {{BMP_DB_PORT}}, - "unix_socket_path" : "/var/run/redis{{DEV}}/redis_bmp.sock", + "unix_socket_path" : "/var/run/valkey{{DEV}}/valkey_bmp.sock", "persistence_for_warm_boot" : "yes" } {% endif %} @@ -39,112 +39,112 @@ "APPL_DB" : { "id" : 0, "separator": ":", - "instance" : "redis" + "instance" : "valkey" }, "ASIC_DB" : { "id" : 1, "separator": ":", - "instance" : "redis" + "instance" : "valkey" }, "COUNTERS_DB" : { "id" : 2, "separator": ":", - "instance" : "redis" + "instance" : "valkey" }, "LOGLEVEL_DB" : { "id" : 3, "separator": ":", - "instance" : "redis" + "instance" : "valkey" }, "CONFIG_DB" : { "id" : 4, "separator": "|", - "instance" : "redis" + "instance" : "valkey" }, "PFC_WD_DB" : { "id" : 5, "separator": ":", - "instance" : "redis" + "instance" : "valkey" }, "FLEX_COUNTER_DB" : { "id" : 5, "separator": ":", - "instance" : "redis" + "instance" : "valkey" }, "STATE_DB" : { "id" : 6, "separator": "|", - "instance" : "redis" + "instance" : "valkey" }, "SNMP_OVERLAY_DB" : { "id" : 7, "separator": "|", - "instance" : "redis" + "instance" : "valkey" }, "RESTAPI_DB" : { "id" : 8, "separator": "|", - "instance" : "redis" + "instance" : "valkey" }, "GB_ASIC_DB" : { "id" : 9, "separator": ":", - "instance" : "redis" + "instance" : "valkey" }, "GB_COUNTERS_DB" : { "id" : 10, "separator": ":", - "instance" : "redis" + "instance" : "valkey" }, "GB_FLEX_COUNTER_DB" : { "id" : 11, "separator": ":", - "instance" : "redis" + "instance" : "valkey" }, "CHASSIS_APP_DB" : { "id" : 12, "separator": "|", - "instance" : "redis_chassis" + "instance" : "valkey_chassis" }, "CHASSIS_STATE_DB" : { "id" : 13, "separator": "|", - "instance" : "redis_chassis" + "instance" : "valkey_chassis" }, "APPL_STATE_DB" : { "id" : 14, "separator": ":", - "instance" : "redis" + "instance" : "valkey" } {% if DATABASE_TYPE is defined and DATABASE_TYPE == "dpudb" %} , "DPU_APPL_DB" : { "id" : 15, "separator": ":", - "instance" : {% if include_remote_db %} "remote_redis" {% else %} "redis" {% endif %}, + "instance" : {% if include_remote_db %} "remote_valkey" {% else %} "valkey" {% endif %}, "format": "proto" }, "DPU_APPL_STATE_DB" : { "id" : 16, "separator": "|", - "instance" : {% if include_remote_db %} "remote_redis" {% else %} "redis" {% endif %} + "instance" : {% if include_remote_db %} "remote_valkey" {% else %} "valkey" {% endif %} }, "DPU_STATE_DB" : { "id" : 17, "separator": "|", - "instance" : {% if include_remote_db %} "remote_redis" {% else %} "redis" {% endif %} + "instance" : {% if include_remote_db %} "remote_valkey" {% else %} "valkey" {% endif %} }, "DPU_COUNTERS_DB" : { "id" : 18, "separator": ":", - "instance" : {% if include_remote_db %} "remote_redis" {% else %} "redis" {% endif %} + "instance" : {% if include_remote_db %} "remote_valkey" {% else %} "valkey" {% endif %} } {% else %} , "BMP_STATE_DB" : { "id" : 20, "separator": "|", - "instance" : "redis_bmp" + "instance" : "valkey_bmp" } {% endif %} }, diff --git a/dockers/docker-database/docker-database-init.sh b/dockers/docker-database/docker-database-init.sh index 7afdbf6dc47..fa472e6b0cb 100755 --- a/dockers/docker-database/docker-database-init.sh +++ b/dockers/docker-database/docker-database-init.sh @@ -43,27 +43,27 @@ fi export BMP_DB_PORT=6400 -REDIS_DIR=/var/run/redis$NAMESPACE_ID -mkdir -p $REDIS_DIR/sonic-db +VALKEY_DIR=/var/run/valkey$NAMESPACE_ID +mkdir -p $VALKEY_DIR/sonic-db mkdir -p /etc/supervisor/conf.d/ if [ -f /etc/sonic/database_config$NAMESPACE_ID.json ]; then - cp /etc/sonic/database_config$NAMESPACE_ID.json $REDIS_DIR/sonic-db/database_config.json + cp /etc/sonic/database_config$NAMESPACE_ID.json $VALKEY_DIR/sonic-db/database_config.json else if [ -f /etc/sonic/enable_multidb ]; then - HOST_IP=$host_ip REDIS_PORT=$redis_port DATABASE_TYPE=$DATABASE_TYPE BMP_DB_PORT=$BMP_DB_PORT j2 /usr/share/sonic/templates/multi_database_config.json.j2 > $REDIS_DIR/sonic-db/database_config.json + HOST_IP=$host_ip REDIS_PORT=$redis_port DATABASE_TYPE=$DATABASE_TYPE BMP_DB_PORT=$BMP_DB_PORT j2 /usr/share/sonic/templates/multi_database_config.json.j2 > $VALKEY_DIR/sonic-db/database_config.json else - HOST_IP=$host_ip REDIS_PORT=$redis_port DATABASE_TYPE=$DATABASE_TYPE BMP_DB_PORT=$BMP_DB_PORT j2 /usr/share/sonic/templates/database_config.json.j2 > $REDIS_DIR/sonic-db/database_config.json + HOST_IP=$host_ip REDIS_PORT=$redis_port DATABASE_TYPE=$DATABASE_TYPE BMP_DB_PORT=$BMP_DB_PORT j2 /usr/share/sonic/templates/database_config.json.j2 > $VALKEY_DIR/sonic-db/database_config.json fi fi -# on VoQ system, we only publish redis_chassis instance and CHASSIS_APP_DB when +# on VoQ system, we only publish valkey_chassis instance and CHASSIS_APP_DB when # either chassisdb.conf indicates starts chassis_db or connect to chassis_db, -# and redis_chassis instance is started in different container. +# and valkey_chassis instance is started in different container. # in order to do that, first we save original database config file, then # call update_chasissdb_config to remove chassis_db config from # the original database config file and use the modified config file to generate -# supervisord config, so that we won't start redis_chassis service. +# supervisord config, so that we won't start valkey_chassis service. # then we will decide to publish modified or original database config file based # on the setting in chassisdb.conf start_chassis_db=0 @@ -72,23 +72,23 @@ chassis_db_port="" chassisdb_config="/usr/share/sonic/platform/chassisdb.conf" [ -f $chassisdb_config ] && source $chassisdb_config -db_cfg_file="/var/run/redis/sonic-db/database_config.json" -db_cfg_file_tmp="/var/run/redis/sonic-db/database_config.json.tmp" +db_cfg_file="/var/run/valkey/sonic-db/database_config.json" +db_cfg_file_tmp="/var/run/valkey/sonic-db/database_config.json.tmp" cp $db_cfg_file $db_cfg_file_tmp if [[ $DATABASE_TYPE == "chassisdb" ]]; then # Docker init for database-chassis echo "Init docker-database-chassis..." - VAR_LIB_REDIS_CHASSIS_DIR="/var/lib/redis_chassis" - mkdir -p $VAR_LIB_REDIS_CHASSIS_DIR + VAR_LIB_VALKEY_CHASSIS_DIR="/var/lib/valkey_chassis" + mkdir -p $VAR_LIB_VALKEY_CHASSIS_DIR update_chassisdb_config -j $db_cfg_file_tmp -k -p $chassis_db_port - # generate all redis server supervisord configuration file + # generate all valkey server supervisord configuration file sonic-cfggen -j $db_cfg_file_tmp \ -t /usr/share/sonic/templates/supervisord.conf.j2,/etc/supervisor/conf.d/supervisord.conf \ -t /usr/share/sonic/templates/critical_processes.j2,/etc/supervisor/critical_processes rm $db_cfg_file_tmp - chown -R redis:redis $VAR_LIB_REDIS_CHASSIS_DIR - chown -R redis:redis $REDIS_DIR + chown -R valkey:valkey $VAR_LIB_VALKEY_CHASSIS_DIR + chown -R valkey:valkey $VALKEY_DIR exec /usr/local/bin/supervisord exit 0 fi @@ -97,9 +97,9 @@ fi if [[ $NAMESPACE_ID == "" && $DATABASE_TYPE == "" && ( $NAMESPACE_COUNT -gt 1 || $NUM_DPU -gt 1) ]] then if [ -f /etc/sonic/database_global.json ]; then - cp /etc/sonic/database_global.json $REDIS_DIR/sonic-db/database_global.json + cp /etc/sonic/database_global.json $VALKEY_DIR/sonic-db/database_global.json else - j2 /usr/share/sonic/templates/database_global.json.j2 > $REDIS_DIR/sonic-db/database_global.json + j2 /usr/share/sonic/templates/database_global.json.j2 > $VALKEY_DIR/sonic-db/database_global.json fi fi # delete chassisdb config to generate supervisord config @@ -116,9 +116,9 @@ fi rm $db_cfg_file_tmp # copy dump.rdb file to each instance for restoration -DUMPFILE=/var/lib/redis/dump.rdb -redis_inst_list=`/usr/bin/python3 -c "from swsscommon import swsscommon; print(' '.join(swsscommon.SonicDBConfig.getInstanceList().keys()))"` -for inst in $redis_inst_list +DUMPFILE=/var/lib/valkey/dump.rdb +valkey_inst_list=`/usr/bin/python3 -c "from swsscommon import swsscommon; print(' '.join(swsscommon.SonicDBConfig.getInstanceList().keys()))"` +for inst in $valkey_inst_list do mkdir -p /var/lib/$inst if [[ -f $DUMPFILE ]]; then @@ -129,12 +129,12 @@ do else echo -n > /var/lib/$inst/dump.rdb fi - # the Redis process is operating under the 'redis' user in supervisord and make redis user own /var/lib/$inst inside db container. - chown -R redis:redis /var/lib/$inst + # the Valkey process is operating under the 'valkey' user in supervisord and make valkey user own /var/lib/$inst inside db container. + chown -R valkey:valkey /var/lib/$inst done -chown -R redis:redis $REDIS_DIR -REDIS_BMP_DIR="/var/lib/redis_bmp" -chown -R redis:redis $REDIS_BMP_DIR +chown -R valkey:valkey $VALKEY_DIR +VALKEY_BMP_DIR="/var/lib/valkey_bmp" +chown -R valkey:valkey $VALKEY_BMP_DIR exec /usr/local/bin/supervisord diff --git a/dockers/docker-database/flush_unused_database b/dockers/docker-database/flush_unused_database index f4c1efdc126..99c9b0aafef 100755 --- a/dockers/docker-database/flush_unused_database +++ b/dockers/docker-database/flush_unused_database @@ -39,4 +39,4 @@ for instname, v in instlists.items(): connector.flushdb() except RuntimeError: - syslog.syslog(syslog.LOG_INFO,"flushdb:Redis Unix Socket connection error for path {} and dbaname {}".format(instsocket, dbname)) + syslog.syslog(syslog.LOG_INFO,"flushdb:Valkey Unix Socket connection error for path {} and dbaname {}".format(instsocket, dbname)) diff --git a/dockers/docker-database/supervisord.conf.j2 b/dockers/docker-database/supervisord.conf.j2 index bd345d7807c..cf0fba341da 100644 --- a/dockers/docker-database/supervisord.conf.j2 +++ b/dockers/docker-database/supervisord.conf.j2 @@ -31,21 +31,21 @@ stderr_syslog=true dependent_startup=true {% if INSTANCES %} -{% for redis_inst, redis_items in INSTANCES.items() %} -{%- if redis_inst != 'remote_redis' %} -[program:{{ redis_inst }}] -{% if redis_items['hostname'] != '127.0.0.1' %} +{% for valkey_inst, valkey_items in INSTANCES.items() %} +{%- if valkey_inst != 'remote_valkey' %} +[program:{{ valkey_inst }}] +{% if valkey_items['hostname'] != '127.0.0.1' %} {%- set ADDITIONAL_OPTS = '--protected-mode no' %} -{%- if redis_inst != 'redis_chassis' %} +{%- if valkey_inst != 'valkey_chassis' %} {%- set LOOPBACK_IP = '127.0.0.1' -%} {%- endif -%} {%- else -%} {%- set LOOPBACK_IP = '' -%} {%- set ADDITIONAL_OPTS = '' %} {%- endif -%} -command=/bin/bash -c "{ [[ -s /var/lib/{{ redis_inst }}/dump.rdb ]] || rm -f /var/lib/{{ redis_inst }}/dump.rdb; } && mkdir -p /var/lib/{{ redis_inst }} && exec /usr/bin/redis-server /etc/redis/redis.conf --bind {{ LOOPBACK_IP }} {{ redis_items['hostname'] }} --port {{ redis_items['port'] }} --unixsocket {{ redis_items['unix_socket_path'] }} --pidfile /var/run/redis/{{ redis_inst }}.pid --dir /var/lib/{{ redis_inst }} {{ ADDITIONAL_OPTS }}" +command=/bin/bash -c "{ [[ -s /var/lib/{{ valkey_inst }}/dump.rdb ]] || rm -f /var/lib/{{ valkey_inst }}/dump.rdb; } && mkdir -p /var/lib/{{ valkey_inst }} && exec /usr/bin/valkey-server /etc/valkey/valkey.conf --bind {{ LOOPBACK_IP }} {{ valkey_items['hostname'] }} --port {{ valkey_items['port'] }} --unixsocket {{ valkey_items['unix_socket_path'] }} --pidfile /var/run/valkey/{{ valkey_inst }}.pid --dir /var/lib/{{ valkey_inst }} {{ ADDITIONAL_OPTS }}" priority=2 -user=redis +user=valkey autostart=true autorestart=false stdout_logfile=NONE diff --git a/platform/p4/docker-sonic-p4/Dockerfile.j2 b/platform/p4/docker-sonic-p4/Dockerfile.j2 index 11e34ff1f88..da99fe50cef 100644 --- a/platform/p4/docker-sonic-p4/Dockerfile.j2 +++ b/platform/p4/docker-sonic-p4/Dockerfile.j2 @@ -79,7 +79,7 @@ RUN sed -ri 's/^(save .*$)/# \1/g; s/^# unixsocket/unixsocket/; \ s/notify-keyspace-events ""/notify-keyspace-events AKE/; \ s/^client-output-buffer-limit pubsub [0-9]+mb [0-9]+mb [0-9]+/client-output-buffer-limit pubsub 0 0 0/ \ - ' /etc/redis/redis.conf + ' /etc/valkey/valkey.conf COPY ["port_config.ini", "/port_config.ini"] COPY ["start.sh", "orchagent.sh", "config_bm.sh", "/usr/bin/"] diff --git a/platform/vs/docker-sonic-vs/Dockerfile.j2 b/platform/vs/docker-sonic-vs/Dockerfile.j2 index 15ff85d808d..c04ce35812f 100644 --- a/platform/vs/docker-sonic-vs/Dockerfile.j2 +++ b/platform/vs/docker-sonic-vs/Dockerfile.j2 @@ -59,7 +59,7 @@ RUN apt-get install -y net-tools \ libasan6 \ {%- endif %} dbus \ - redis-server \ + valkey-server \ # For libkrb5-dev comerr-dev \ libgssrpc4 \ @@ -120,11 +120,11 @@ RUN sed -ri 's/^# save ""$/save ""/g; \ s/^logfile .*$/logfile ""/; \ s/^# syslog-enabled no$/syslog-enabled no/; \ s/^# unixsocket/unixsocket/; \ - s/redis-server.sock/redis.sock/g; \ + s/valkey-server.sock/valkey.sock/g; \ s/^client-output-buffer-limit pubsub [0-9]+mb [0-9]+mb [0-9]+/client-output-buffer-limit pubsub 0 0 0/; \ s/^notify-keyspace-events ""$/notify-keyspace-events AKE/; \ s/^databases [0-9]+$/databases 100/ \ - ' /etc/redis/redis.conf + ' /etc/valkey/valkey.conf COPY ["50-default.conf", "/etc/rsyslog.d/"] COPY ["start.sh", "orchagent.sh", "files/update_chassisdb_config", "/usr/bin/"] diff --git a/platform/vs/docker-sonic-vs/database_config.json b/platform/vs/docker-sonic-vs/database_config.json index a4e2c62571d..8910c69fd26 100644 --- a/platform/vs/docker-sonic-vs/database_config.json +++ b/platform/vs/docker-sonic-vs/database_config.json @@ -1,102 +1,102 @@ { "INSTANCES": { - "redis":{ + "valkey":{ "hostname" : "127.0.0.1", "port" : 6379, - "unix_socket_path" : "/var/run/redis/redis.sock" + "unix_socket_path" : "/var/run/valkey/valkey.sock" }, - "redis_chassis":{ - "hostname" : "redis_chassis.server", + "valkey_chassis":{ + "hostname" : "valkey_chassis.server", "port": 6380, - "unix_socket_path": "/var/run/redis/redis_chassis.sock" + "unix_socket_path": "/var/run/valkey/valkey_chassis.sock" } }, "DATABASES" : { "APPL_DB" : { "id" : 0, "separator": ":", - "instance" : "redis" + "instance" : "valkey" }, "ASIC_DB" : { "id" : 1, "separator": ":", - "instance" : "redis" + "instance" : "valkey" }, "COUNTERS_DB" : { "id" : 2, "separator": ":", - "instance" : "redis" + "instance" : "valkey" }, "CONFIG_DB" : { "id" : 4, "separator": "|", - "instance" : "redis" + "instance" : "valkey" }, "PFC_WD_DB" : { "id" : 5, "separator": ":", - "instance" : "redis" + "instance" : "valkey" }, "FLEX_COUNTER_DB" : { "id" : 5, "separator": ":", - "instance" : "redis" + "instance" : "valkey" }, "STATE_DB" : { "id" : 6, "separator": "|", - "instance" : "redis" + "instance" : "valkey" }, "SNMP_OVERLAY_DB" : { "id" : 7, "separator": "|", - "instance" : "redis" + "instance" : "valkey" }, "GB_ASIC_DB" : { "id" : 9, "separator": ":", - "instance" : "redis" + "instance" : "valkey" }, "GB_COUNTERS_DB" : { "id" : 10, "separator": ":", - "instance" : "redis" + "instance" : "valkey" }, "GB_FLEX_COUNTER_DB" : { "id" : 11, "separator": ":", - "instance" : "redis" + "instance" : "valkey" }, "CHASSIS_APP_DB" : { "id" : 12, "separator": "|", - "instance" : "redis_chassis" + "instance" : "valkey_chassis" }, "APPL_STATE_DB" : { "id" : 14, "separator": ":", - "instance" : "redis" + "instance" : "valkey" }, "DPU_APPL_DB" : { "id" : 15, "separator": ":", - "instance" : "redis" + "instance" : "valkey" }, "DPU_APPL_STATE_DB" : { "id" : 16, "separator": "|", - "instance" : "redis" + "instance" : "valkey" }, "DPU_STATE_DB" : { "id": 17, "separator": "|", - "instance" : "redis" + "instance" : "valkey" }, "DPU_COUNTERS_DB" : { "id": 18, "separator": ":", - "instance" : "redis" + "instance" : "valkey" } }, "VERSION" : "1.0"