在redis中使用HSET存储整数

时间:2016-03-21 20:15:48

标签: redis

我使用redis使用require 'class.phpmailer.php'; $mail = new PHPMailer; $mail->isSMTP(); $mail->Host = 'email.domain.com'; $mail->SMTPAuth = true; $mail->Username = 'username@domain.com'; $mail->Password = '********'; $mail->SMTPSecure = 'tls'; $mail->Port = 587; $mail->setFrom('username@domain.com'); $addresses = 'Recipients@domain.com'; $mail->isHTML(true); 存储一些数值。这是我正在使用的示例命令

HSET

我希望这能存储一个整数,但当我HSET "abc" "field" 123 时,它变成了一个字符串:

HGETALL

我的两个问题是:

  1. 有没有办法使用1) "field" 2) "123"
  2. 在redis中存储整数?
  3. 这样做有节省空间的好处吗?

1 个答案:

答案 0 :(得分:0)

来自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以来,许多数据类型都经过优化,使用的空间更少   一定的规模。 哈希,列表,仅由整数组成的集合和   排序集,小于给定数量的元素,最多为a   最大元素大小,以非常高效的内存方式编码   使用的内存最多可减少10倍(使用的内存减少5倍)   平均节省)。

此页面中还有一些命令可配置Redis为该优化设置阈值。