Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Io Redis:请只保存非过期密钥?_Io_Redis_Memcached_Persistence_Database Performance - Fatal编程技术网

Io Redis:请只保存非过期密钥?

Io Redis:请只保存非过期密钥?,io,redis,memcached,persistence,database-performance,Io,Redis,Memcached,Persistence,Database Performance,从我在文档中看到的情况来看,Redis似乎只允许保存所有密钥,或者根本不保存(到磁盘) 我试图做的是只保存没有TTL的键。也就是说,如果我 setex some_key 60 "some data" // or set some_key "some data" expire some_key 60 那就永远不要把这些密钥保存到磁盘上 如果这是不可能的,我想下一个最好的解决方案是对这些值使用Memcached,对我想要持久化的内容使用Redis,但如果我不必走那么远的话,那就太好了。AFAI

从我在文档中看到的情况来看,Redis似乎只允许保存所有密钥,或者根本不保存(到磁盘)

我试图做的是只保存没有TTL的键。也就是说,如果我

setex some_key 60 "some data"

// or

set some_key "some data"
expire some_key 60
那就永远不要把这些密钥保存到磁盘上


如果这是不可能的,我想下一个最好的解决方案是对这些值使用Memcached,对我想要持久化的内容使用Redis,但如果我不必走那么远的话,那就太好了。

AFAIK你说的是对的,它要么可以持久化,要么不能持久化。然而,在这个场景中,我不使用Memcache,而是运行两个redis实例,一个可以持久化密钥,另一个没有持久化。因为创建redis实例很容易


此外,将来如果需要保留的密钥很少,那么如果使用redis而不是Memcache,您可以在应用程序级别轻松地进行更改。

如果您将所有密钥保留为指定的TTL,那么问题出在哪里?这些密钥无论如何都会从磁盘过期。您也可以使用volatile lru或volatile ttl选项。当内存耗尽时,Redis只会丢弃那些过期的密钥。问题是,我们只关心保留一小部分密钥。因此,每当Redis使用TTL保存所有这些密钥时,它确实会给服务器带来很大的压力。由于这种情况每60秒发生一次,我们只希望保留需要的密钥。我担心情况会是这样。谢谢