小编Exc*_*bur的帖子

批量重命名密钥

我有一个相当大的数据库(5 个数据库,每个数据库大约有一百万个键),每个键都有环境命名空间。例如:"datamine::production::crosswalk==foobar"

我需要将我的开发环境与从生产 RDB 快照复制的数据同步。

所以我想做的是批量重命名每个键,将命名空间从 更改datamine::productiondatamine::development. 有没有好的方法来实现这一目标?

到目前为止我尝试过的

  • redis-cli 命令keys "datamine::production*",通过管道传输到 sed,然后返回到redis-cli. 这需要很长时间,并且由于某种原因在许多键上爆炸(偶尔将几个键组合在同一行中)。我更喜欢更好的选择。

  • Perl 在 .rdb 文件上搜索/替换。我的本地 redis-server 平面拒绝加载修改后的 RDB。

redis

9
推荐指数
2
解决办法
4006
查看次数

无法阻止Magento缓存块

我正在使用Magento 1.6站点,该站点在主页的CMS"布局更新XML"字段中包含以下xml:

<reference name="content">
   <block type="catalog/navigation" name="catalog.category.home" as="homecategory" template="catalog/category/homecategory.phtml" />
</reference>
Run Code Online (Sandbox Code Playgroud)

由于模板显示随机类别,我想禁用此块的缓存.为此,我尝试使用getChildHtml('sub-block-template',false)以及以下内容:

(homecategory 在其模板中有$ this-> getChildHtml('random_categories',false))

<reference name="content">
    <block type="catalog/navigation" name="catalog.category.home" as="homecategory" useCache="false" template="catalog/category/homecategory.phtml">
        <block type="catalog/navigation" name="catalog.category.home.randcats" as="random_categories"  useCache="false" template="catalog/category/random.phtml" />
    </block>
</reference>
Run Code Online (Sandbox Code Playgroud)

所以现在我陷入困境,想知道为什么我不能阻止缓存该块,尽管使用'false'参数.

magento

6
推荐指数
2
解决办法
9692
查看次数

在xargs变量上使用sed在shell扩展中不起作用

我试图在Redis中进行批量密钥重命名,使用shell为每个密钥名称替换一个替换.(似乎没有更好的方法在redis内部执行此操作).

redis-cli -n 5 KEYS "*::staging::*"| xargs -I {} echo "RENAME {} $(echo {} | sed 's/staging/development/g')" 
# Then pipe this command into redis-cli when working
Run Code Online (Sandbox Code Playgroud)

我期待这样的输出: "RENAME redis::staging::key redis::development::key"

相反,我得到这个: "RENAME redis::staging::key redis::staging::key"

echo {} $(echo {}| sed 's/old/new/')是什么是挂了我...怎样才能正确地实现服用xargs输出和回声原始和那一个编辑的版本?$(echo {} |sed)应该工作吧?(如果是这样,我该怎么做呢?)

bash sed redis

4
推荐指数
1
解决办法
946
查看次数

标签 统计

redis ×2

bash ×1

magento ×1

sed ×1