我的老板最近在谈话中断言,Redis 支持一些配置选项来控制最大键或键/值大小...所以我们可以设置一些选项来防止我们的应用程序创建大于 50KB 的键或键/值对。
我的印象是,不存在这样的选项,我们必须修补源代码并构建自己的源代码才能添加此功能。(对于这个问题,强迫应用程序员通过 Lua 脚本或通过 twemproxy 之类的东西来调解所有访问不是一个选择)。
我是否遗漏了什么Redis:文档某处?
此外,目前故障转移的最佳实践是什么?Redis Sentinel 是否已准备好迎接黄金时段?Linux-HA OCF 心跳/起搏器/集群胶水三重奏这仍然是最好的吗?
答案1
很确定不存在这样的功能。您只能使用 来限制实例的总占用空间maxmemory
。
但是,以一种合理的方式强制执行限制会很棘手 - 我认为与应用程序开发人员合作以合理的方式使用 Redis 更好,而不是在值大小超过任意边界时引发错误。(无论如何,你为什么要有这种限制 - 大键或大值有什么坏处?)
Redis 似乎对防止人们搬起石头砸自己的脚不太感兴趣;FLUSHALL
或者DEBUG SEGFAULT
就在你的指尖。
对于故障转移,我一直在研究新版 Sentinel,它似乎很可靠 - 虽然有些粗糙,但总体上它按预期工作。可能很快就会在有限的基础上开始在生产中使用它。
答案2
我的印象是不存在这样的选择,我们必须修补源并构建我们自己的源来添加这样的功能。
事实上,Redis 不提供这种功能。
对于故障转移,请参阅: