Дублируйте ключ в Redis
Могу ли я продублировать ключ, используя Redis-Cli, есть ли какие-либо команды, предопределенные в Redis или нет?
Дублировать FSS_SYSAGENT до FSS_SYSAGENTDuplicate.
10.44.112.213:6403> hgetall FSS_SYSAGENT
1) "SYSTEM_01" 2) "{\" port \ ": \" 4407 \ ", \" ipAddress \ ": \" 10.44.112.213 \ ", \" symbolicName \ ": \" SYSTEM_01 \ ", \" eventLogEnabled \ ": \" 1110 \ "\ "статус \":1,\"wcPort\":\"6029\",\"activeSystem\":\"N\",\"CreatedBy\":\"\",\"creationDate\":\"2018-11-20 13:11:16\",\"ifiedBy\":\"\",\"ifiedDate\":\"\",\" учреждение \":\"FSS\",\"DelFlag\":0,\"accessID\":0,\"сверку \": 0, \ "endCount\":0}"
1 ответ
Вы можете использовать команды DUMP и RESTORE для дублирования ключа:
- использовать
DUMP
Команда для сериализации значения ключа. - использовать
RESTORE
команда для восстановления сериализованного значения в другой ключ.
Вы можете заключить эти два шага в скрипт Lua:
-- duplicate.lua
local src = KEYS[1]
local dest = KEYS[2]
local val = redis.call('DUMP', src)
if val == false then
return 0
else
-- with RESTORE command, you can also set TTL for the new key, and use the [REPLACE] option to set the new key forcefully.
redis.call('RESTORE', dest, 0, val)
return 1
end
Запустите скрипт Lua с помощью redis-cli: ./redis-cli --eval duplicate.lua FSS_SYSAGENT FSS_SYSAGENTDuplicate ,