【问题标题】:Does a redis key is permenent if no expire value is set如果没有设置过期值,redis 键是否是永久的
【发布时间】:2019-06-18 01:14:20
【问题描述】:

我正在我的个人项目中设置新的 redis 服务器。

如果我没有使用 EXPIRE 命令设置任何超时值,则 ttl 为 -1

我只想知道 -1 是否意味着永久或默认过期超时。

如果设置键值设置 ttl -1 那么 PERSIST 命令的目的是什么

【问题讨论】:

    标签: redis


    【解决方案1】:

    我只想知道 -1 是否意味着永久或默认过期超时。

    是的,如果不设置超时,则默认 TTL 为-1,并且密钥不会过期。但是,它可能会在内存不足时被驱逐,请检查 redis.conf 中的maxmemory-policy 配置。

    如果设置键值设置 ttl -1 那么 PERSIST 命令的目的是什么

    您不能使用 EXPIRE 命令手动将密钥的 TTL 设置为 -1。如果您这样做,即expire key -1,Redis 将删除该密钥。

    正如您在回答中提到的,PERSIST 用于删除过期设置,并使密钥持久化。

    【讨论】:

    • 我只想说清楚。当内存不足时,设置为持久的键是否也会被删除?
    • @Raghav 正如我在答案中提到的,这取决于您的 maxmemory-policy 配置。详情请查看redis.conf
    【解决方案2】:

    是的。经过一些研究我发现,只有在使用 EXPIRE 命令后,密钥才会过期 如果已经为某个键指定了过期值,则持久化用于删除过期值

    【讨论】:

      猜你喜欢
      • 2023-03-14
      • 2017-11-23
      • 2021-03-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-13
      • 2012-05-31
      相关资源
      最近更新 更多