小编典典

使用Rails缓存时使用Rails处理Redis最大内存情况

redis

当redis达到“最大内存”条件时,它将允许客户端进行读取,但不能进行写入。

当然,这将导致致命错误……有什么方法可以使Rails处理缓存的读或写错误,因此,如果缓存发生问题(可用性,读取,写入等),它将继续以如果缓存设置为“关闭”?


阅读 348

收藏
2020-06-20

共1个答案

小编典典

您可以告诉redis在内存已满时要遵守的不同行为。

# volatile-lru -> remove the key with an expire set using an LRU algorithm
# allkeys-lru -> remove any key accordingly to the LRU algorithm
# volatile-random -> remove a random key with an expire set
# allkeys->random -> remove a random key, any key
# volatile-ttl -> remove the key with the nearest expire time (minor TTL)
# noeviction -> don't expire at all, just return an error on write operations

默认是

# maxmemory-policy volatile-lru

也许最好的选择是’volatile-ttl’,并确保所有缓存都包括:expires_in选项。

我不是专家,也没有这样做。这只是基于我当前对Redis和Rails的理解。

2020-06-20