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.78k stars 5.37k forks source link

redis windows error #622

Open 0oook opened 5 years ago

0oook commented 5 years ago

=== REDIS BUG REPORT START: Cut & paste starting from here === Redis version: 3.2.100 [12924] 27 Jun 18:32:25.717 # --- ABORT [12924] 27 Jun 18:32:25.717 # --- STACK TRACE redis-server.exe!LogStackTrace(c:\release\redis\src\win32_interop\win32_stacktrace.cpp:95)(0x00000016, 0x9D006009, 0x00000000, 0x00000001) redis-server.exe!AbortHandler(c:\release\redis\src\win32_interop\win32_stacktrace.cpp:208)(0x00000016, 0x00000000, 0x401671E0, 0x401671E0) redis-server.exe!raise(f:\dd\vctools\crt\crtw32\misc\winsig.c:587)(0x00000001, 0x00000000, 0xD6D3D4D3, 0xD6D3D4D6) redis-server.exe!abort(f:\dd\vctools\crt\crtw32\misc\abort.c:82)(0x401671E0, 0xD6D3D4D3, 0xD6D3D4D3, 0x0000005A) redis-server.exe!zmalloc_default_oom(c:\release\redis\src\zmalloc.c:136)(0xD7000000, 0xD6D3D4D3, 0x00000001, 0x4004A472) redis-server.exe!zmalloc(c:\release\redis\src\zmalloc.c:146)(0xD6D3D4D6, 0x00000013, 0x0014F1F0, 0x400BFA57) redis-server.exe!rdbSaveLzfStringObject(c:\release\redis\src\rdb.c:281)(0xD6D3D4D6, 0x0014F2B0, 0x304E2EE0, 0x9D006009) redis-server.exe!rdbSaveRawString(c:\release\redis\src\rdb.c:349)(0x00000001, 0x304E2EE0, 0xF12BA252, 0x400ACC91) redis-server.exe!rdbSaveObject(c:\release\redis\src\rdb.c:580)(0x987E6889, 0x0014F2B0, 0x0014F2B0, 0x00000001) redis-server.exe!rdbSaveKeyValuePair(c:\release\redis\src\rdb.c:721)(0x0014F2B0, 0x00000001, 0x0014F2B0, 0x050070FC) redis-server.exe!rdbSaveRio(c:\release\redis\src\rdb.c:814)(0x40167210, 0x02240000, 0x00000005, 0x02642754) redis-server.exe!rdbSave(c:\release\redis\src\rdb.c:884)(0x02240000, 0x02240000, 0x5D133386, 0x00000005) redis-server.exe!QForkChildInit(c:\release\redis\src\win32_interop\win32_qfork.cpp:337)(0x00000005, 0x00000000, 0x00530730, 0x00000005) redis-server.exe!QForkStartup(c:\release\redis\src\win32_interop\win32_qfork.cpp:515)(0x00000006, 0x00000000, 0x00000000, 0x00515A50) redis-server.exe!main(c:\release\redis\src\win32_interop\win32_qfork.cpp:1240)(0x00000000, 0x00000000, 0x00000000, 0x00000000) redis-server.exe!__tmainCRTStartup(f:\dd\vctools\crt\crtw32\startup\crt0.c:255)(0x00000000, 0x00000000, 0x00000000, 0x00000000) KERNEL32.DLL!BaseThreadInitThunk(f:\dd\vctools\crt\crtw32\startup\crt0.c:255)(0x00000000, 0x00000000, 0x00000000, 0x00000000) ntdll.dll!RtlUserThreadStart(f:\dd\vctools\crt\crtw32\startup\crt0.c:255)(0x00000000, 0x00000000, 0x00000000, 0x00000000) ntdll.dll!RtlUserThreadStart(f:\dd\vctools\crt\crtw32\startup\crt0.c:255)(0x00000000, 0x00000000, 0x00000000, 0x00000000) [12924] 27 Jun 18:32:25.733 # === REDIS BUG REPORT END. Make sure to include from START to END. ===

0oook commented 5 years ago

Is this due to i set the value of (maxheap 10240000000000) in redis.windows.conf too big ?

0oook commented 5 years ago

开启虚拟内存会缓解reids out of memory的问题 下面是vm相关配置 vm-enabled yes #开启vm功能 vm-swap-file /tmp/redis.swap #交换出来的value保存的文件路径/tmp/redis.swap vm-max-memory 1000000 #redis使用的最大内存上限,超过上限后redis开始交换value到磁盘文件中。 vm-page-size 32 #每个页面的大小32个字节 vm-pages 134217728 #最多使用在文件中使用多少页面,交换文件的大小 = vm-page-size * vm-pages vm-max-threads 4 #用于执行value对象换入换出的工作线程数量。0表示不使用工作线程(后面介绍)

enricogior commented 4 years ago

Hi @aGoodLearner, as mentioned in the official https://github.com/microsoftarchive/redis/blob/3.0/README.md this project is no longer being actively maintained. If you are looking for an up-to-date alternative, you may want to check out Memurai.