【问题标题】:How to clear values of keys in redis如何清除redis中键的值
【发布时间】:2015-04-23 06:59:10
【问题描述】:

我正在运行我的 php 应用程序的两个实例,一个是实时的,一个是测试版。我在我的实时服务器中使用 redis 来缓存数据。我将文章类别存储为键,将文章 ID 存储为值。

最近我错误地将我的 beta 服务器与 redis 连接,它弄乱了 redis 缓存。我的意思是它在错误的键中添加了一些其他文章 ID。所以现在我开始从 redis 获取错误的数据。

我的问题是

“有没有办法只清除 redis 键的值?”

我不想清除键,只清除它的值。

我浏览了 redis 文档,发现了 flushAlldel 等。但根据文档,它似乎也会删除我的密钥。

我正在使用 predis php 库与 redis 服务器通信。

谁能帮我只删除redis服务器中的值。

【问题讨论】:

  • 取决于为该键存储的值的类型,但来自 redis cli 的 set <key> <value> 的变体?
  • 我存储的数据类似于:set technologies "10 20 30"
  • 那就试试set technologies null
  • 如果是列表,则只需rpop technologies 直到get technologies 返回null
  • 对不起,我如何在 cli 中列出键值对?

标签: php caching redis predis


【解决方案1】:

当您“清除”某个键的值时,Redis 将删除该键。换句话说,你不能有没有值的键。

【讨论】:

    【解决方案2】:

    尝试使用这个功能

    $redis->mset(array('key0' => '', 'key1' => ''));
    

    【讨论】:

    • 很可能,这不是 OP 想要的。如果你这样做,缓存层可能会为键返回一个空字符串。 OP 需要删除密钥才能重新填充缓存。
    猜你喜欢
    • 2017-02-19
    • 1970-01-01
    • 2012-05-20
    • 2018-07-17
    • 2015-04-16
    • 1970-01-01
    • 1970-01-01
    • 2018-03-10
    • 1970-01-01
    相关资源
    最近更新 更多