当redis达到“最大内存”条件时,它将允许客户端进行读取,但不能进行写入。
当然,这将导致致命错误……有什么方法可以使Rails处理缓存的读或写错误,因此,如果缓存发生问题(可用性,读取,写入等),它将继续以如果缓存设置为“关闭”?
您可以告诉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的理解。