为单个 redis 键设置值的大小限制?

Setting size restrictions for value to individual redis keys?

是否可以为redis中的值设置大小限制。例如,我只想将其大小应小于 2 MB 的值存储到 redis 键中。应跳过大小大于 2 MB 的值。

键名 - sampleRedisKey_1

sampleRedisKey_1 的值 - 大小 < 2 MB 的某个值

键名 - sampleRedisKey_2

sampleRedisKey_2 的值 - 大小 > 2 MB 的某个值

这两个key中应该存sampleRedisKey_1,不存sampleRedisKey_2

提前致谢。

如果您的 redis 版本 >= 4.0.0 那么您可以使用 memory usage,它 returns 以字节为单位的值。在你的应用层你可以在设置值之前进行比较,如果大小超过则跳到另一个键。

127.0.0.1:6379> set mykey mysmallvalue
OK
127.0.0.1:6379> memory usage mykey
(integer) 61
127.0.0.1:6379> set anotherkey 1
OK
127.0.0.1:6379> memory usage anotherkey
(integer) 52
127.0.0.1:6379>

单个 Redis 对象或类型的大小没有限制,您必须在应用程序端处理。否则使用一些 Lua 脚本来做到这一点。但是我更喜欢客户端,因为它完全避免了将数据发送到 Redis 实例。