R库rredis在' hset'附加虚假字符串

时间:2016-09-20 07:19:40

标签: r redis

我使用rredis将哈希存储到键值,如下所示:

library(rredis)

redishost<-c("127.0.0.1",6379)

redisConnect(host=redishost[1], port=as.numeric(redishost[2]))

toStore <- "asdf"
redisHSet(key='simulatorinput', field = "asdf", value = toStore, NX=F)
redisHGet(key = 'simulatorinput', field = "asdf")

当我用redis检查我的输入时,我得到以下输出:

127.0.0.1:6379> HGET simulatorinput asdf
"X\n\x00\x00\x00\x02\x00\x03\x03\x00\x00\x02\x03\x00\x00\x00\x00\x10\x00\x00\x00\x01\x00\x04\x00\t\x00\x00\x00\x04asdf"

但是,当我使用HGET

检查来自R的redis输入时
> redisHGet(key = 'simulatorinput', field = "asdf")
[1] "asdf"

有人可以告诉我为什么会这样吗?我怎样才能避免这种情况发生?

1 个答案:

答案 0 :(得分:2)

rredis pdf手册(第28页)说:

  

为了存储其他客户可以轻松阅读的字符串,   首先使用charToRaw函数转换字符对象   示例中显示。

toStore <- "asdf"
redisHSet(key='simulatorinput', field = "asdf", value = charToRaw(toStore), NX=F)
redisHGet(key = 'simulatorinput', field = "asdf")
[1] "asdf"
attr(,"redis string value")
[1] TRUE

来自redis客户端:

redis 127.0.0.1:6379> HGETALL simulatorinput
1) "asdf"
2) "asdf"