在Redis中使用HSET存储整数

5

我正在使用redis来使用HSET存储一些数字值。以下是我正在使用的示例命令:

HSET "abc" "field" 123

我希望这个变量存储的是一个整数,但是当我执行 HGETALL 命令时,它显示为一个字符串:

1) "field"
2) "123"

我的两个问题是:

  1. 是否有办法使用HSET在Redis中存储整数?
  2. 这样做是否有节省空间的好处?
1个回答

1

来自http://redis.io/topics/protocol#integer-reply:

以下命令将回复一个整数:SETNX,DEL,   EXISTS,INCR,INCRBY,DECR,DECRBY,DBSIZE,LASTSAVE,RENAMENX,MOVE,   LLEN,SADD,SREM,SISMEMBER,SCARD。

HSET的回复是字符串,但这并不意味着Redis将您的信息存储为此类字符串。

来自http://redis.io/topics/memory-optimization

自Redis 2.2以来,许多数据类型已经优化,以在一定大小范围内使用更少的空间。 只由整数组成的哈希,列表和集合以及排序集,在小于给定的元素数量且达到最大元素大小时,以非常高效的方式编码,使用的内存最多可减少10倍(平均节省5倍内存)。

此页面还包含配置Redis以设置该优化阈值的命令。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接