2016-09-20 40 views
0

我使用rredis如下存儲哈希鍵值:「置角」時[R庫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" 

,但是,當我檢查我的輸入使用從r到Redis的HGET

> redisHGet(key = 'simulatorinput', field = "asdf") 
[1] "asdf" 

有人可以告訴我將R艾森爲什麼會發生這種情況?我怎樣才能避免這種情況發生?

回答

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"