microsoftarchive / redis

Redis is an in-memory database that persists on disk. The data model is key-value, but many different kind of values are supported: Strings, Lists, Sets, Sorted Sets, Hashes
http://redis.io
Other
20.81k stars 5.37k forks source link

RedisError: MISCONF Redis is configured to save RDB snapshots, but is currently not able to persist on disk. Commands that may modify the data set are disabled. Please check Redis logs for details about the error #492

Open gruan01 opened 8 years ago

gruan01 commented 8 years ago

Hello

We try to write more than 20,000,000 datas to redis cluster, after some time , we only write about 5,000,000 items into cluster. I'm trying to add a new key manually (set xxx xxx), but return :

RedisError: MISCONF Redis is configured to save RDB snapshots, but is currently not able to persist on disk. Commands that may modify the data set are disabled. Please check Redis logs for details about the error.

I see somebody turn off stop-writes-on-bgsave-error to resolve this problem, but also somebody say it's not correctly way.

somebody say set vm.overcommit_memory=1 can resolve this problem, but it's on Linux...

The cluster include 2 solid servers, in same network , each one has 128G memory, currently just use less than 30G. Each server have 4 nodes , master and slaver were auto set by redis-trib.rb .

The following is redis log : [34704] 05 Aug 19:15:52.987 # WSA_IO_PENDING writing to socket fd 19 [34704] 05 Aug 19:15:52.987 # clusterWriteDone written 2520 fd 19 [34704] 05 Aug 19:15:53.128 # WSA_IO_PENDING writing to socket fd 20 [34704] 05 Aug 19:15:53.128 # clusterWriteDone written 2520 fd 20 [34704] 05 Aug 19:15:53.440 # WSA_IO_PENDING writing to socket fd 64 [34704] 05 Aug 19:15:53.440 # clusterWriteDone written 2520 fd 64 [34704] 05 Aug 19:15:53.549 # WSA_IO_PENDING writing to socket fd 62 [34704] 05 Aug 19:15:53.549 # clusterWriteDone written 2520 fd 62 [34704] 05 Aug 19:15:53.658 - DB 0: 2571425 keys (2571425 volatile) in 4194304 slots HT. [34704] 05 Aug 19:15:53.658 - 4 clients connected (0 slaves), 2001220216 bytes in use [34704] 05 Aug 19:15:53.658 * Connecting to MASTER 10.89.70.20:8201 [34704] 05 Aug 19:15:53.658 * MASTER <-> SLAVE sync started [34704] 05 Aug 19:15:53.658 * Non blocking connect for SYNC fired the event. [34704] 05 Aug 19:15:53.658 # Error reply to PING from master: '-MISCONF Redis is configured to save RDB snapshots, but is currently not able to persist on disk. Commands that may modify the data set are disabled. Please check Redis logs for details about the error.'

And info replication:

10.89.70.23_7003:0>info replication "# Replication role:slave master_host:10.89.70.20 master_port:8201 master_link_status:down master_last_io_seconds_ago:-1 master_sync_in_progress:0 slave_repl_offset:1 master_link_down_since_seconds:jd slave_priority:100 slave_read_only:1 connected_slaves:0 master_repl_offset:0 repl_backlog_active:0 repl_backlog_size:1048576 repl_backlog_first_byte_offset:60428541 repl_backlog_histlen:1048576 "

This is my config:

include ./Confs/Cluster_Global.conf port 7003 cluster-config-file ./Confs/node-7003.conf appendfilename "appendonly_7003.aof" dbfilename dump_7003.rdb logfile "./Logs/log_7003.txt"

Cluster_Global.conf same as redis.windows-service.conf , not have any change.

What's wrong happend? Thanks.

gruan01 commented 8 years ago

I'm trying turn off stop-writes-on-bgsave-error, but datas still can't write complete, some node not write any thing.