4

如何在 redis 列表类型中推送整数?lpush我想测试我的 finagle-redis 客户端是否正常工作,并将手动示例数据插入到 redis 中,如下所示

127.0.0.1:6379> rpush key:214 1 1 1
 (integer) 3
127.0.0.1:6379> LRANGE key:214 0 -1
 1) "1"
 2) "1"
 3) "1"

Redis 已经将数字显示为 char。当我提取它们时,我也会得到字符:

val data: List[ChannelBuffer] = Await.result(redisClient.lRange(key, 0, -1))
val buffer: ChannelBuffer = data(0)
buffer.readChar() // 1
buffer.readInt() // 49

是否可以使用 cli 客户端将整数写入列表?如果没有,以下甚至会起作用吗?

val key = ChannelBuffers.copiedBuffer("listkey", utf8)
val list: List[ChannelBuffer] = List(1,1,1).map { number =>
   val buffer = ChannelBuffers.buffer(4) // int sized buffer
   buffer.writeInt(number)
   buffer
}

// will this store the int's correctly??
redisClient.lpush(key, list)
4

1 回答 1

3

在 redis 中,大多数东西都是一个字符串。这是因为使用的协议。它是基于文本的,因此不可能1234从 string中分辨出 number "1234"

可能在内部存储整数,但无论如何你都会得到字符串。您应该在应用程序中投下您的号码。

于 2015-08-26T13:15:44.467 回答