[REDIS] 레일 응용 프로그램에 레디 스에 해시를 저장
REDIS레일 응용 프로그램에 레디 스에 해시를 저장
임 그냥이 어쩌면 바보 같은 질문 있도록 레일 레디 스로 떨어져 시작.
나는 레디 스 서버에 해시를 저장하려고 만하고 나는 그것의 단지 문자열 IE 그것을 검색 할 때.
hash = {"field" => "value", "field2" => "value2"}
$redis.set('data', hash)
#So collecting the data
@data = $redis.get('data')
그 문자열로 반환 이것은 분명히 잘못된 것입니다.
나는 또한 어떤 결과를 반복하고 hset 예를 사용하여 시도했다.
@data.each do |d|
$redis.hset('data', d.field, d.value)
end
# errror
# ERR Operation against a key holding the wrong kind of value
갈 곳 확실하지. 나는이 문제되지 않았 음을 확인하는 열쇠 $의 redis.del ( '데이터')을 삭제했습니다.
당신은, 리 조언을 할 수 있기를 바랍니다
해결법
-
==============================
1.나는 레디 스의 문서가 더 철저 읽을 수 있어야합니다.
나는 레디 스의 문서가 더 철저 읽을 수 있어야합니다.
대답:
IN $redis.set 'data', hash.to_json OUT data = JSON.parse($redis.get("data"))
-
==============================
2.레디 스 보석이처럼 해시를 매핑합니다 :
레디 스 보석이처럼 해시를 매핑합니다 :
$redis.mapped_hmset "test", { foo: "bar" } $redis.hgetall "test" => {"foo"=>"bar"}
-
==============================
3.위해 레디 스의 해시를 저장합니다. 당신은 첫 번째 매개 변수로 키를 통과해야하고 다음 매개 변수를 hmset 방법에 키와 값이어야합니다.
위해 레디 스의 해시를 저장합니다. 당신은 첫 번째 매개 변수로 키를 통과해야하고 다음 매개 변수를 hmset 방법에 키와 값이어야합니다.
$redis.hmset('user:007', :name, 'Antonio', :busy, 'maybe', :ping, 'pong')
해피 코딩.
-
==============================
4.당신은 당신이 실제로 당신이 해시 변수를 사용하더라도 일반 레디 스 문자열을 저장 $ redis.set ( '데이터', 해시)를 사용하면 (그것은 JSON 문자열로 직렬화 할 수 있습니다,하지만 난 그것에 대해 확실 정말 아니에요).
당신은 당신이 실제로 당신이 해시 변수를 사용하더라도 일반 레디 스 문자열을 저장 $ redis.set ( '데이터', 해시)를 사용하면 (그것은 JSON 문자열로 직렬화 할 수 있습니다,하지만 난 그것에 대해 확실 정말 아니에요).
(하지 당신이 그랬던 것처럼 필드를 통해 반복에 의해) $ redis.hset ( '데이터', 해시)를 사용해보십시오.
또 다른 점 : 당신은 확실히 당신은 완전히 이전 키를 삭제 한 있습니까? 당신은 이전 문자열 키 "가에서"아직 옵션을 제거하기 위해 완전히 다른 키를 hset하려고 했습니까?
from https://stackoverflow.com/questions/9832124/saving-a-hash-to-redis-on-a-rails-app by cc-by-sa and MIT license
'REDIS' 카테고리의 다른 글
[REDIS] 레디 스를 사용하여 데이터의 배열을 저장 (Laravel)에서 (0) | 2020.01.13 |
---|---|
[REDIS] 원격 레디 스 서버에 연결 (0) | 2020.01.13 |
[REDIS] 호스트 컴퓨터에서 도커 컨테이너에서 레디 스 실행에 연결 (0) | 2020.01.13 |
[REDIS] 레디 스 : dump.rdb 백업 (0) | 2020.01.13 |
[REDIS] Node.js를 가게 레디 스에서 객체 (0) | 2020.01.13 |