我正在使用redis-objects gem在rails模型上实现一些计数器。有些计数器是单数的(所以建模类似于counter foo
由单个redis值支持)但其他计数器可能有一些密钥,建模为hash_key bar
并由带有HINCRBY
的redis哈希支持
到目前为止一直很好,但是从散列返回的值是字符串,而不是整数,因为redis-objects不知道散列是计数器。我只能.to_i
结果,但如果一个键被非int值覆盖,这可能会导致不可预测的行为。
我是否可以使用HINCRBY myhash field 0
强制redis将字段值解释为int64并生成一个整数回复(:1..
),其语义与正常增量兼容?这是否会导致锁定或其他与使用“写入”操作作为读取相关的不良行为?是否有更好的方法来进行阅读?