Redis - 整数列表

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

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)
1个回答

3

在Redis中,几乎所有的数据都是字符串。这是因为它使用的协议是基于文本的,所以无法区分数字1234和字符串"1234"

虽然Redis内部可能会存储整数,但你在应用程序中仍需要将其转换为字符串。


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