caching - BGSAVE之后,Redis会立即删除我的所有 key

标签 caching redis

我在具有以下配置的Windows Server x64上使用redis 2.6.12:maxmemory 45GB,内存策略volatile-ttl(我的所有键都具有ttl,但它们永远都没有机会过期,因为过期时间是几年后的)。每天一次,在某个小时,我使用BGSAVE创建转储。大多数时候,内存已满,因为我总是添加新密钥,而最旧的密钥将被驱逐。

问题是,偶尔,在数据库保存之后,redis也会立即删除我所有的密钥,并且内存从45GB降至0GB,从50000密钥降至0密钥。

为什么会发生这种情况,以及如何在不删除所有键的情况下将数据库保存在后台?

这是redis.log文件的一部分:

[708] 1月22日05:27:30.422-已连接1个客户端(0个从机),正在使用45080973592字节[708] 65536插槽HT中的DB 0:49424密钥(49424易失性)。[708] ] 1月22日05:27:35.894-已连接1个客户端(0个从属),正在使用45090250204字节[708] 1月22日05:27:41.348-DB 0:65536插槽HT中的49393键(49393易失)。[708] 1月22日05:27:41.348-已连接1个客户端(0个从站),正在使用45081280352字节[708] 1月22日05:27:46.812-DB 0:65536插槽HT中的49394密钥(49394易失性)。[708] 1月22日05:27:46.812-已连接1个客户端(0个从站),正在使用45087803712字节[708] 1月22日05:27:52.086-接受的192.168.2.11:65374[708] 1月22日05:27:52.211-客户端关闭连接[708] 1月22日05:27:52.274-DB 0:65536插槽HT中的49396键(易失性49396)。[708] 1月22日05:27:52.274-已连接1个客户端(0个从站),正在使用45087804476字节[708] 1月22日05:27:57.746-DB 0:493536键(49397易失)在65536个插槽HT中。[708] 1月22日05:27:57.746-已连接1个客户端(0个从站),正在使用45087772152字节[708] 1月22日05:28:03.183-DB 0:65536插槽HT中的49365键(49365易失性)。[708] 1月22日05:28:03.183-已连接1个客户端(0个从站),正在使用45089964620字节[708] 1月22日05:28:08.637-DB 0:在65536个插槽HT中的49367键(49367易失性)。[708] 1月22日05:28:08.637-已连接1个客户端(0个从站),正在使用45090411120字节[708] 1月22日05:28:14.091-DB 0:在65536个插槽HT中具有49393个密钥(49393个易失性)。[708] 1月22日05:28:14.091-已连接1个客户端(0个从属),正在使用45091947976字节[708] 1月22日05:28:19.550-DB 0:在65536个插槽HT中具有49393个密钥(49393个易失性)。[708] 1月22日05:28:19.550-已连接1个客户端(0个从站),正在使用45091947976字节[708] 1月22日05:28:25.006-DB 0:在65536个插槽HT中具有49393个密钥(49393个易失性)。[708] 1月22日05:28:25.006-已连接1个客户端(0个从站),正在使用45091947976字节[708] 1月22日05:28:30.443-DB 0:在65536个插槽HT中的49395键(49395易失)。[708] 1月22日05:28:30.443-已连接1个客户端(0个从属),正在使用45086710236字节[708] 1月22日05:28:35.894-DB 0:在65536个插槽HT中具有49453个密钥(49453个易失性)。[708] 1月22日05:28:35.894-已连接1个客户端(0个从站),正在使用45090443368字节[708] 1月22日05:28:41.388-DB 0:65536插槽HT中的49468键(49468易失)。[708] 1月22日05:28:41.388-已连接1个客户端(0个从站),正在使用45095827040字节[708] 1月22日05:28:46.861-DB 0:65536插槽HT中的49512键(49512易失性)。[708] 1月22日05:28:46.861-已连接1个客户端(0个从属),正在使用45095224584字节[708] 1月22日05:28:52.293-DB 0:在65536个插槽HT中有49490个密钥(49490易失)。[708] 1月22日05:28:52.293-已连接1个客户端(0个从站),正在使用45096285456字节[708] 1月22日05:28:57.754-DB 0:65536 HT插槽中的49505键(49505易失性)。[708] 1月22日05:28:57.754-已连接1个客户端(0个从站),正在使用45095954716字节[708] 1月22日05:29:03.202-DB 0:65536插槽HT中的49393键(49393易失)[708] 1月22日05:29:03.202-已连接1个客户端(0个从站),正在使用45086445608字节[708] 1月22日05:29:06.962-接受的192.168.2.11:65462[708] 1月22日05:29:06.978 * cowBkgdSaveReset删除0个SDS和0个obj项目[708] 1月22日05:29:06.978-客户端关闭的连接[708] 1月22日05:29:08.634-DB 0:65536插槽HT中的49402键(49402易失)。[708] 1月22日05:29:08.634-已连接1个客户端(0个从属),正在使用45094333732字节[708] 1月22日05:29:09.993 *已用的COW DB到期时间46874 [708] 1月22日05:29:14.384-1个客户端已连接(0个从站),正在使用45105573900字节[708] 1月22日05:29:19.853-已使用1个客户端(0个从站)[708] 1月22日05:29:25.306-已连接1个客户端(0个从站) ),正在使用的45099816224字节[708] 1月22日05:29:30.775-已连接1个客户端(0个从站),正在使用的[708] 1月22日5:29:36.243-已连接1个客户端(0个从站),45137384392字节使用中[708] 1月22日05:29:41.712-已连接1个客户端(0个从机),正在使用45104533564字节[708]使用中1个客户端(0个从属),450104533564字节,正在使用[708] ] 22 Jan 05:29:52.651-已连接1个客户端(0个从站),正在使用45110374948字节[708] 22 Jan 05:29:58.120-已连接1个客户端(0个从站),正在使用45104543108字节[708] 2005年1月22日:30:03.589-已连接1个客户端(0个从站),正在使用45104530980字节[708] 1月22日05:30:09 .058-已连接1个客户端(0个从站),正在使用45115479704字节[708] 1月22日05:30:14.526-已使用1个客户端(0个从站),正在使用45099701388字节[708] 1月22日05:30:19.995-1已连接客户端(0个从站),正在使用45104465668字节[708] 1月22日05:30:25.464-已使用1个客户端(0个从站)[708] 1月22日05:30:30.933-已连接1个客户端(0从站),45110016116字节在使用中[708] 1月22日05:30:36.401-已连接1个客户端(0个从站),45104530348字节在使用中[708] 1月22:05:30:41.870-已连接1个客户端(0个从站),45104530976使用中的字节数[708] 1月22日05:30:47.339-已连接1个客户端(0个从机),45112236848个字节正在使用中[708] 1月22日5:30:52.808-1个客户端已连接(0个从机),使用中的字节数45115479704 708] 1月22日05:30:58.276-1个客户端已连接(0个从属),正在使用45099272652字节[708] 22 Jan 05:31:03.745-1个客户端已连接(0个从属),正在使用45104545068字节[708] 1月22日05:31:09.214-已连接1个客户端(0个从站),正在使用45110007152字节[708] 1月22日05:31:14.683-已连接1个客户端(0个从站),正在使用45115480280字节[708] 1月22日05:31:20.151-已连接1个客户端(0个从站),正在使用45104532396字节[708] 1月22日,05:31: 25.620-已连接1个客户端(0个从机),正在使用45099229368字节[708] 1月22日05:31:31.089-正在使用1个客户端(0个从机),45130679280字节[708] 1月22日05:31:36.558-1个客户端已连接(0个从站),正在使用45105333432字节[708] 1月22日05:31:42.026-已连接1个客户端(0个从站)[708] 1月22日05:31:47.495-已连接1个客户端(0个从站) ),正在使用45102300088字节[708] 1月22日05:31:52.964-已连接1个客户端(0个从站),45105826172字节正在使用[708] 1月22日05:31:58.433-已连接1个客户端(0个从站),45105884184字节使用中[708] 1月22日05:32:03.901-已连接1个客户端(0个从机),正在使用45105884932字节[708] 1月22日05:32:09.370-已连接1个客户端(0个从机),使用中的45105888636字节[708] ] 22 Jan 05:32:14.839-已连接1个客户端(0个从站),正在使用45106173124字节[708] 1月22日05:32:20.308-已连接1个客户端(0个从站),正在使用45101461260字节[708] 22 Jan 05:32:25.776-已连接1个客户端(0个从站),正在使用45111461188字节[708] 05年1月22日: 32:31.245-已连接1个客户端(0个从站),正在使用45106176332字节[708] 1月22日:32:36.714-正在使用1个客户端(0个从站),正在使用45139031340字节[708] 1月22日,05:32:42.184-已连接1个客户端(0个从机),正在使用45117175000字节[708] 1月22日05:32:47.653-已使用1个客户端(0个从机),45121180196字节[708] 1月22日05:32:53.122-已连接1个客户端( 0个从站),正在使用45110913708字节[708] 1月22日05:32:54.626 * DB保存在磁盘上[708] 1月22日05:32:54.658 *后台保存成功终止[708] 1月22日05:32:54.658 * cowBkgdSaveReset删除49403 SDS和99937 obj项目[708] 1月22日05:33:11.689-已连接1个客户端(0个从站),正在使用1876072字节[708] 1月22日05:33:17.162-DB 0:2个键(2个volatile )在HT的4个插槽中。[708] 1月22日05:33:17.162-已连接1个客户端(0个从站),正在使用828360字节[708] 1月22日05:33:22.616-DB 0:4个插槽HT中的2个密钥(2个易失性)。[708] 1月22日05:33:22.616-已连接1个客户端(0个从站),正在使用828360字节[708] 1月22日05:33:28.064-DB 0:8个插槽HT中有6个密钥(6个易失性)。[708] 1月22日05:33:28.064-已连接1个客户端(0个从站),正在使用830504字节[708] 1月22日05:33:33.493-DB 0:8个插槽HT中有6个密钥(6个易失性)。[708] 1月22日05:33:33.493-已连接1个客户端(0个从站),正在使用830488字节[708] 1月22日05:33:38.930-DB 0:16个插槽HT中的13个密钥(13个易失性)。[708] 1月22日05:33:38.930-已连接1个客户端(0个从站),正在使用1190160字节[708] 1月22日05:33:44.399-DB 0:16个插槽HT中的16个密钥(16个易失性)。[708] 1月22日05:33:44.399-已连接1个客户端(0个从站),正在使用1098216字节[708] 1月22日05:33:49.852-DB 0:32个插槽HT中的18个密钥(18个易失性)。[708] 1月22日05:33:49.852-已连接1个客户端(0个从站),正在使用1099428字节[708] 1月22日05:33:55.311-DB 0:32个插槽HT中的22个密钥(22个易失性)。

有什么帮助吗?

最佳答案

由于这似乎是一个错误,所以我建议这样做:


安装Cygwin(这对于fork()是必需的)
安装Visual Studio Express Edition 2010(Microsoft免费提供)
请遵循https://github.com/dmajkic/redis页上的说明并构建最新的2.8。*版本。


(请注意,dmajkic的fork早于2.4)

关于caching - BGSAVE之后,Redis会立即删除我的所有 key ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21295710/

相关文章:

java - 在不同主机上具有重复缓存条目的分布式缓存

java - 第一个异常不是 PropagatedCacheException

.net - 将 DataTable 序列化到 Redis 或从 Redis 反序列化的最省时的方法是什么?

go - 在 Redigo 中将 "false"和 "true"扫描为 bool 值

C 中的缓存模拟器错误

php - 如何在删除或更新行后使用分页更新 laravel 缓存(redis 驱动程序)

php - Redis删除性能

固定数量客户端的Redis事务

redis - 如何在 DigitalOcean 应用平台上部署 Celery Worker

android - 如何将位图缓存到 native 内存中