【问题标题】:redis removes key before expire time and memory limitredis 在过期时间和内存限制之前删除密钥
【发布时间】:2020-08-11 08:56:11
【问题描述】:

我已经在 CentOS7 中安装了 redis

yum install redis

我使用 redis-cli 检查当前内存,但 redis 只使用了 0.1% 的分配内存。

# Memory
used_memory:1068640
used_memory_human:1.02M
maxmemory:1000000000
maxmemory_human:953.67M
maxmemory_policy:noeviction

每 1 分钟插入一次密钥,大约 3kb。

我正在 python redis 模块中插入数据。

redis_connection.set(key, value, timedelta(days=2))

keys/values都插入好了,但是redis在2天前就删除了key。

ttl <key> command 显示172797(大约 2 天)

我必须更改哪些配置以防止在过期时间之前删除密钥?

【问题讨论】:

  • 这个stackoverflow.com/a/62584515/2188922 可能会提供一些关于它的想法/见解。
  • 我已将 noeviction 更改为 volatile-ttl 并将 appendonly 更改为 yes。现在我正在监控redis是否删除了密钥。
  • 我发现“flushall”命令是从未知程序执行的。但是它有相同的IP地址和不同的端口。
  • 可能是同一服务器中的其他程序正在执行它,或者是某个框架有一些后台进程。
  • 我希望您的 Redis 实例没有在公共 Internet 上运行。如果是这样,它可能会被入侵和劫持。 (这很常见)

标签: redis


【解决方案1】:

redis-cli monitor监控后发现有人在发送“FLUSHALL”命令。

所以,我更改了我的 redis 端口(默认 6379 -> 其他)并添加了 rename-command FLUSHALL <rename_flushall> 并且它起作用了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-09-01
    • 2022-06-29
    • 2016-05-15
    • 2020-09-26
    • 2020-04-19
    • 2016-04-25
    • 1970-01-01
    • 2016-12-05
    相关资源
    最近更新 更多