我使用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
> redisHGet(key = 'simulatorinput', field = "asdf")
[1] "asdf"
有人可以告诉我为什么会这样吗?我怎样才能避免这种情况发生?
答案 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"