为什么REDIS SERVER在我推送数据时清除内存



当我在REDIS中学习曲线时,我开发了一个简单的应用程序,它消耗政府债券的市场数据,对于每个价格,它通常会要求Web服务提供该价格的债券分析。

分析是由api网络服务提供的,当价格每秒到达时,该服务可能会受到多次攻击。响应是一个json有效载荷,类似于{"md":2.9070078608390455,"paridad":0.7710514176999993,"price":186.0,"ticker":"GO26","tir":0.10945225427543438,"vt":241.22904871224668, "price":185}

我对REDIS的策略是用ticker+price(即"GO26185"(形成的密钥以字符串格式缓存有效载荷。通过这种方式,我减少了服务命中率,还减少了查询时间响应。因此,从这里开始,如果REDIS上没有一个值,我会向APi询问。如果没有,我请求REDIS。

我遇到的问题是,当运行这个例程时,只要我在REDIS上推送不同的KEY VALUE对,内存中已经存在的那个对就会消失。i、 em。(dbsize,在我推送信息时会增加,但在没有新值时会减少(。

尽管我将过期时间设置为一天(以秒为单位(:

await client.set(
rediskey,
JSON.stringify(response.data)
,{
EX: 86399,
}
);

有没有什么配置我可能会搞砸,告诉redis保留这些数据,避免随机清除缓存?

只是为了澄清一下,看看SET密钥在注册新密钥时是如何消失的:

127.0.0.1:6379> dbsize
(integer) 946;
127.0.0.1:6379> dbsize
(integer) 1046;
127.0.0.1:6379> dbsize
(integer) 1048;
127.0.0.1:6379> dbsize
(integer) 1048;
127.0.0.1:6379> dbsize
(integer) 0 << Here all my keys have dissapeared

我正在回复我自己的答案。问题是我没有阻止redis端口,一个黑客连接到我的redis服务器,导致它重置。似乎是在使用复制节点。

最新更新