Redis - 整数列表

Redis - integer list

如何在 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 已经将数字显示为字符。当我提取它们时,我也会得到 chars:

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)

在 Redis 中,几乎所有东西都是字符串。这是因为使用的协议。它是基于文本的,所以不可能从字符串 "1234" 中分辨出数字 1234

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