小编典典

复制Redis中的密钥

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
\“:\” \ “,\” createdDate \“:\” 2018-11-20 13:11:16 \“,\” modifiedBy \“:\”
\“,\” modifiedDate \“:\” \“,\”机构\“ :\“ FSS \”,\“ delFlag \”:0,\“ accessID
\”:0,\“ rowCount \”:0,\“ endCount \”:0}“


阅读 298

收藏
2020-06-20

共1个答案

小编典典

您可以使用DUMPRESTORE命令来复制密钥:

  1. 使用DUMP命令序列化密钥的值。
  2. 使用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

使用redis-cli运行Lua脚本: ./redis-cli --eval duplicate.lua FSS_SYSAGENT FSS_SYSAGENTDuplicate ,

2020-06-20