Redis中的密钥丢失

Redis中的密钥丢失,redis,Redis,我刚开始使用Redis 在我的应用程序停止使用10到12个小时后,我看到redis缓存中的密钥丢失了 这是一个非机密的登台环境,因此无法在redis上获得安全性 两天内发生了两次 注意:redis是独立运行的 我曾尝试从wildfly应用程序服务器连接,当应用程序服务器在夜间关闭时,这个问题会在早上出现 在redis保存到磁盘后,redis是否从内存中删除密钥 我已经尝试得到统计数据,并检查了TTL的关键是-1。 统计数字显示: 过期的\u密钥:0 逐出的\u密钥:0 maxmemory增加到6

我刚开始使用Redis

在我的应用程序停止使用10到12个小时后,我看到redis缓存中的密钥丢失了

这是一个非机密的登台环境,因此无法在redis上获得安全性

两天内发生了两次

注意:redis是独立运行的

我曾尝试从wildfly应用程序服务器连接,当应用程序服务器在夜间关闭时,这个问题会在早上出现

在redis保存到磁盘后,redis是否从内存中删除密钥

我已经尝试得到统计数据,并检查了TTL的关键是-1。 统计数字显示: 过期的\u密钥:0 逐出的\u密钥:0 maxmemory增加到6GB,无法达到,这比我的输入大小要高 以下统计数字 Redis在CentOS上作为独立设备运行

  127.0.0.1:6379>  info
  # Server
  redis_version:3.2.12
  redis_git_sha1:00000000
  redis_git_dirty:0
  redis_build_id:7897e7d0e13773f
  redis_mode:standalone
  os:Linux 3.10.0-957.12.2.el7.x86_64 x86_64
  arch_bits:64
  multiplexing_api:epoll
  gcc_version:4.8.5
  process_id:20830
  run_id:eea4f3ccc73fc20e16ef20441393b1189050fdb8
  tcp_port:6379
  uptime_in_seconds:208558
  uptime_in_days:2
  hz:10
  lru_clock:3417026
  executable:not shown
  config_file:not shown 

  # Clients
  connected_clients:1
  client_longest_output_list:0
  client_biggest_input_buf:0
  blocked_clients:0

  # Memory
  used_memory:814024
  used_memory_human:794.95K
  used_memory_rss:8163328
  used_memory_rss_human:7.79M
  used_memory_peak:1250632
  used_memory_peak_human:1.19M
  total_system_memory:8201187328
  total_system_memory_human:7.64G
  used_memory_lua:40960
  used_memory_lua_human:40.00K
  maxmemory:6442450944
  maxmemory_human:6.00G
  maxmemory_policy:noeviction
  mem_fragmentation_ratio:10.03
  mem_allocator:jemalloc-3.6.0

  # Persistence
  loading:0
  rdb_changes_since_last_save:0
  rdb_bgsave_in_progress:0
  rdb_last_save_time:1563697205
  rdb_last_bgsave_status:ok
  rdb_last_bgsave_time_sec:0
  rdb_current_bgsave_time_sec:-1
  aof_enabled:0
  aof_rewrite_in_progress:0
  aof_rewrite_scheduled:0
  aof_last_rewrite_time_sec:-1
  aof_current_rewrite_time_sec:-1
  aof_last_bgrewrite_status:ok
  aof_last_write_status:ok

  # Stats
  total_connections_received:119
  total_commands_processed:378
  instantaneous_ops_per_sec:0
  total_net_input_bytes:26750
  total_net_output_bytes:115176
  instantaneous_input_kbps:0.00
  instantaneous_output_kbps:0.00
  rejected_connections:0
  sync_full:0
  sync_partial_ok:0
  sync_partial_err:0
  expired_keys:0
  evicted_keys:0
  keyspace_hits:165
  keyspace_misses:27
  pubsub_channels:0
  pubsub_patterns:0
  latest_fork_usec:928
  migrate_cached_sockets:0

 # Replication
 role:master
 connected_slaves:0
 master_repl_offset:0
 repl_backlog_active:0
 repl_backlog_size:1048576
 repl_backlog_first_byte_offset:0
 repl_backlog_histlen:0

 # CPU
 used_cpu_sys:130.68
 used_cpu_user:60.20
 used_cpu_sys_children:0.26
 used_cpu_user_children:0.04

 # Cluster
 cluster_enabled:0

  Last action on Redis -valid hits from our application

  14649:C 21 Jul 01:17:31.508 * RDB: 4 MB of memory used by copy-on-write
  20830:M 21 Jul 01:17:31.605 * Background saving terminated with success
  20830:M 21 Jul 01:32:32.018 * 1 changes in 900 seconds. Saving...
  20830:M 21 Jul 01:32:32.019 * Background saving started by pid 14817
  14817:C 21 Jul 01:32:32.021 * DB saved on disk
  14817:C 21 Jul 01:32:32.021 * RDB: 4 MB of memory used by copy-on-write
  20830:M 21 Jul 01:32:32.119 * Background saving terminated with success
  20830:M 21 Jul 03:03:44.634 * 1 changes in 900 seconds. Saving...
  20830:M 21 Jul 03:03:44.636 * Background saving started by pid 15843
  15843:C 21 Jul 03:03:44.638 * DB saved on disk
  15843:C 21 Jul 03:03:44.638 * RDB: 4 MB of memory used by copy-on-write
  20830:M 21 Jul 03:03:44.736 * Background saving terminated with success
  20830:M 21 Jul 03:18:45.076 * 1 changes in 900 seconds. Saving...
  20830:M 21 Jul 03:18:45.079 * Background saving started by pid 16040
  16040:C 21 Jul 03:18:45.080 * DB saved on disk
  16040:C 21 Jul 03:18:45.081 * RDB: 4 MB of memory used by copy-on-write
  20830:M 21 Jul 03:18:45.179 * Background saving terminated with success

实际结果我希望即使在不使用redis的情况下,按键也会出现不,redis在保存到光盘时不会从内存中删除按键

您的正常运行时间正常(因此重启时不会丢失数据),因此我们只有两个理论:

  • 您可以在客户端应用程序中以某种方式删除密钥(如果Redis公开,则可以删除其他人的密钥)

  • 更可能的情况是,您试图使用错误的密钥名称访问密钥。尝试使用
    CLI
    检查Redis中所有存储的密钥


否,Redis在保存到光盘时不会从内存中删除密钥

您的正常运行时间正常(因此重启时不会丢失数据),因此我们只有两个理论:

  • 您可以在客户端应用程序中以某种方式删除密钥(如果Redis公开,则可以删除其他人的密钥)

  • 更可能的情况是,您试图使用错误的密钥名称访问密钥。尝试使用
    CLI
    检查Redis中所有存储的密钥


谢谢@Evgenii Malikov。第二个选项不是一个选项,正如我在redis cli和monitor中检查过的那样,因此对公众的暴露可能是一个问题。我今天在redis cli启动了一个监视过程,以查看changesThanks@Evgenii-Malikov。第二个选项不是一个选项,正如我在redis cli和monitor中检查过的那样,因此对公众的暴露可能是一个问题。我今天在redis cli上启动了一个监视过程,以查看更改