2012-06-20 49 views
3

我正在为我们的应用程序使用Redis和Memcached的缓存策略。等效于Memcached中的Redis哈希?

我们生成相当长的JSON字符串的缓存数据,从我们的SQL数据库计算得出。由于缓存的数据是一次性的,所以我想使用Memcached,这样它就会驱逐我们不再需要的密钥。

问题是可以从不同的参数访问一个集合(比如用户)。在Redis中,我使用哈希,所以我可以在该哈希中为每个集合的表示使用密钥(hget),并且仍然可以使用一个命令(del)使所有密钥失效。但是,我无法找到一种方式将旧密钥驱逐到像Memcached那样的给定数据库大小。

所以我的问题可以是:

  • 如何设置Redis的,因此保持了最大DB大小,并根据需要逐出键?或
  • 我如何可以模拟Redis的哈希Memcached中,所以我可以轻松过期一组密钥?

回答

4

要配置的Redis因此它具有memcached的类似缓存行为,则需要更新配置文件,如下所示:

  • 设定值maxmemory(以字节为单位)
  • 设置maxmemory - 政策allkeys-lru

你应该得到你想要的行为。

+1

谢谢!这确实是这样做的。以下是@antirez对此的评论:http://antirez.com/post/redis-as-LRU-cache.html – micho