当前位置: 首页 > 面试题库 >

复制Redis中的密钥

吕昀
2023-03-14
问题内容

我可以使用连接的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}“


问题答案:

您可以使用DUMP和RESTORE命令来复制密钥:

  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 ,



 类似资料:
  • 在 Redis 中,可以通过执行 SLAVEOF 命令或设置 slaveof 选项,让一个服务器去复制(replicate)另一个服务器,其中,后者叫主服务器(master),前者叫从服务器(slave) 一、复制简介 一个主服务器可以有多个从服务器。不仅主服务器可以有从服务器,从服务器也可以有自己的从服务器, 多个从服务器之间可以构成一个图状结构。 可以通过复制功能来让主服务器免于执行持久化操作

  • 如果我不能承受失去一致性,并且更喜欢它而不是可用性,我如何关闭复制,以便当Sentinel将一个新副本标记为master时,所有的第一个请求都将是缓存未命中,并且我的缓存可以慢慢升温,而不是返回潜在的陈旧数据? 还有,这是个好主意吗?还有其他好的选择吗?

  • 问题内容: 有人知道Redis复制和Redis分片之间的区别吗? 它们有什么用?Redis将数据存储在内存中,这如何影响复制/分片? 可以同时使用它们吗? 问题答案: 分片几乎是复制的对立面,尽管它们是正交的概念并且可以很好地协同工作。 分片,也称为分区,是通过密钥对数据进行拆分。复制(也称为镜像)是复制所有数据。 分片有助于提高性能,减少任何一种资源的命中和内存负载。复制对于获得高可用性的读取很

  • 本文向大家介绍Redis主从复制详解,包括了Redis主从复制详解的使用技巧和注意事项,需要的朋友参考一下 单机Redis存在的问题 无法故障转移 ,无法避免单点故障 磁盘空间的瓶颈 QPS瓶颈 Redis主从复制的作用 提供数据副本 扩展读性能 配置方法 通过命令 通过配置文件 演示 为方便演示,在一台服务器上搭建redis主从(生产上不会这样做),根据端口区分。 主库 6379 从库 6380

  • 问题内容: 我正在使用此代码: 在my_set中插入“ el1”。sadd仅返回插入元素的数量。我需要的是插入元素的键,以便以后可以检索它。我确信有一种我不知道的方法。难道是正确的功能,还是我应该选择其他类似设置/获取? 编辑:我需要类似mysql中的auto_increment键。当我插入一些东西时,获取最后插入的元素以备将来使用。 我需要这样的东西: 所以我可以使用key = 1获得数组 问题

  • 如何在不使用 SSL 的情况下使用复制的 MYSQL/MariaDB 服务器之间配置加密? 我不想使用SSL,因为我必须为我所有的服务器购买证书,而且证书会过期.. 难道不能设置一个用于加密的密码吗?