[REDIS] 레디 스 약간의 OS에 버퍼가 아닌 다른 사람과 같은 문자열을 저장?
REDIS레디 스 약간의 OS에 버퍼가 아닌 다른 사람과 같은 문자열을 저장?
우분투 11.10에 노드와 레디 스 2.2.11을 사용하고, 나는 문자열을 저장하고있어하지만이 버퍼로 반환합니다.
id = 1234;
console.log('data', data);
client.hmset("user:" + id, "name", data['name'] );
client.hmget('user:' + id, "name", function(err, d) {
console.log('data retrieved', d);
});
이 콘솔에서 다음을 생성합니다 :
data { name: 'RealServer' }
data retrieved [ <Buffer 41 6e 6e 61 52 65 61 6c 53 65 72 76 65 72> ]
왜 문자열로가는, 그리고 버퍼로 나오고? 버퍼는 매우 어려운 디버깅하게!
내 로컬 설치 (맥 OS 레디 스 2.2.14 10.6) 잘 문자열로 인쇄 검색된 데이터에. 나는 두 시스템에서 작업을 계속 해결책을 찾기 위해 싶습니다.
UPDATE : 그것은 또한에 CentOS 5.7에 지정된 인코딩없이 잘 작동합니다. 우분투이 뭔가 구체적인인가? 시스템 전체 수정이 있습니까?
해결법
-
==============================
1.참조 : http://nodejs.org/docs/v0.3.1/api/buffers.html
참조 : http://nodejs.org/docs/v0.3.1/api/buffers.html
당신은 인코딩을 지정하지 않은 것 때문에, 기본적으로 원시 데이터로 표시됩니다. 당신은 표준 JS 문자열을 생산하는 buffer.toString를 사용할 수 있습니다.
-
==============================
2.당신은 지정하지 않았습니다 년부터 그것을 밖으로 인쇄하는 동안 사용 인코딩 알고하지 않습니다 인코딩. paramater가 제대로 로그로 인코딩와의 toString 기능을 사용합니다.
당신은 지정하지 않았습니다 년부터 그것을 밖으로 인쇄하는 동안 사용 인코딩 알고하지 않습니다 인코딩. paramater가 제대로 로그로 인코딩와의 toString 기능을 사용합니다.
client.hmget('user:' + id, "name", function(err, d) { console.log('data retrieved', d.toString('utf8')); });
from https://stackoverflow.com/questions/8329252/redis-saving-strings-as-buffers-on-some-oss-not-others by cc-by-sa and MIT license
'REDIS' 카테고리의 다른 글
[REDIS] 로컬 호스트에 연결 오류 99 : 6379. 수 할당 요청한 주소 (0) | 2020.01.23 |
---|---|
[REDIS] 레디 스 지원 마스터 마스터 복제합니까? (0) | 2020.01.23 |
[REDIS] HSET 경우 키의 존재 (0) | 2020.01.23 |
[REDIS] 레디 스 클러스터 : 루아 스크립트와 다른 노드에 키 업데이트 (0) | 2020.01.23 |
[REDIS] 어떻게 레디 스 만의 키의 일부를 LRU 퇴거 정책을 선택 만드는 방법? (0) | 2020.01.23 |