我目前正在测试将密钥插入数据库Redis(在本地)中。我有超过500万个密钥,而且我只有4GB的RAM,所以一时我达到了RAM的容量并交换了数据(并且我的PC掉了)。
我的问题是:如何在具有Redis数据库的计算机上监视内存使用情况,并以此方式发出警报,不再在Redis数据库中插入某些密钥?
谢谢。
关于内存使用情况,建议您查看redis.io 常见问题解答以及有关将redis用作LRU缓存的本文。
您可以通过maxmemory配置设置来限制内存使用量,在这种情况下,一旦达到内存限制,所有写请求都会因错误而失败,或者可以将maxmemory- policy设置为allkeys- lru,例如,开始覆盖服务器上最近最少使用的数据以及当前需要的东西等。对于大多数用例,您具有足够的灵活性,可以通过适当的配置来处理此类问题。
我的建议是使事情变得简单,并通过配置Redis服务器来解决此问题,而不是通过os级监视等引入额外的复杂性。