[REDIS] 어떻게 node_redis를 사용하는 경우 hgetall에 전달 된 키에 액세스 할 수 있습니까?
REDIS어떻게 node_redis를 사용하는 경우 hgetall에 전달 된 키에 액세스 할 수 있습니까?
나는 Node.js를 (명시 적) 응용 프로그램이 있고 나는 나의 레디 스 DB에서 모든 사용자를 얻을 수 node_redis을 사용하고 있습니다.
redis = require "redis"
client = redis.createClient()
client.smembers "users", (err, user_ids) ->
results = new Array()
for user_id in user_ids
client.hgetall user_id, (err, items) ->
results.push items
if user_ids.length is results.length
res.json results
이것은 다음과 같은 결과를 생성합니다 :
[
{
"name": "user1",
"password": "secret"
},
{
"name": "user2",
"password": "secret"
}
]
지금은 내가 다음과 같은 출력을 얻을 수 있도록 USER_ID가 사용자 결과에 추가 할 :
[
{
"user:1": {
"name": "user1",
"password": "secret"
}
},
{
"user:2": {
"name": "user2",
"password": "secret"
}
}
]
내가 가진 문제는 client.hgetall ()가 비동기 적으로 호출하고 단순히 for 루프의 USER_ID에 액세스 할 수 있다는 것입니다.
해결법
-
==============================
1.당신은 루프 기능을 도입하여 저장 USER_ID에 폐쇄를 사용해야합니다. 그것을 할 수있는 한 가지 방법은 배열에 반복 foreach는 함수를 사용하는 것입니다.
당신은 루프 기능을 도입하여 저장 USER_ID에 폐쇄를 사용해야합니다. 그것을 할 수있는 한 가지 방법은 배열에 반복 foreach는 함수를 사용하는 것입니다.
여기에 자바 스크립트의 예입니다 :
var redis = require('redis') var client = redis.createClient(); function fetch( callback ) { var results = new Array(); client.smembers( "users", function(err,users) { if ( users.length == 0 ) return callback( results ); users.forEach( function(id) { client.hgetall(id, function(err,items) { var obj = {}; obj[id] = items; # here id can be accessed since it is part of the closure results.push(obj); if ( results.length == users.length ) { callback( results ); } }); }); }); } fetch( function(results) { console.log(JSON.stringify(results)); });
출력은 다음과 같습니다
[ {"user:2":{"name":"user2","password":"secret2"}}, {"user:1":{"name":"user1","password":"secret"}} ]
from https://stackoverflow.com/questions/12783683/how-can-i-access-the-key-passed-to-hgetall-when-using-node-redis by cc-by-sa and MIT license
'REDIS' 카테고리의 다른 글
[REDIS] ASP.NET 코어 App에서 레디 스 연결에 오류가 푸른에 호스팅 (0) | 2020.01.26 |
---|---|
[REDIS] 채널 층 또는 다른 무료 호스팅없이 채널 (0) | 2020.01.25 |
[REDIS] 레디 스 센티넬과 올바른 @EnableRedisHttpSession 구성 (0) | 2020.01.25 |
[REDIS] Java 클라이언트에 키 - 값 데이터베이스 (0) | 2020.01.25 |
[REDIS] 자바에서의 nginx와 포트 포워딩 (0) | 2020.01.25 |