为单个Redis密钥设置值的大小限制?

时间:2020-05-12 10:15:33

标签: java redis jedis

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

keyName-sampleRedisKey_1

sampleRedisKey_1的值-一些大小小于2 MB的值

keyName-sampleRedisKey_2

sampleRedisKey_2的值-大于2 MB的某些值

在这两个键中,应该存储sampleRedisKey_1,而不应该存储sampleRedisKey_2。

谢谢。

2 个答案:

答案 0 :(得分:0)

如果您的redis版本> = 4.0.0,则可以使用memory usage,它将返回以字节为单位的值。在您的应用程序层中,您可以在设置值之前进行比较,如果大小超出则跳到另一个键。

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>

答案 1 :(得分:0)

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