为单个 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 实例。
是否可以为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 实例。