2011-06-01 13 views
8

Kullanıcıların bir hash/JSON verisini Redis içine kaydetmek ve kullanıcı bilgilerini kullanıcı verilerine eklemek istiyorum. Örneğin, users = {};Node.js üzerinden Redis'te saklamak istiyor

Kullanıcı rahul'ü oturumunda ne zaman users haline gelir.

users = { 
    rahul: { 
     username: 'rahul',   
    } 
} 

Ve kullanıcı Namita giriş sonra

users = { 
    rahul: { 
     username: 'rahul', 

    }, 
    namita: { 
     username: 'namita', 

    } 
} 

Ne kod REDIS yapmak olacak?

users anahtarını nasıl başlatabilirim ve rahul ekleyebilir miyim?

Bu setin dışında, hset vb. Hangi işlevi kullanmam gerekiyor?

Ve users['rahul'] verilerini Redis aracılığıyla nasıl alacağım?

cevap

22

Muhtemelen, tek bir hash/json depolamak için en uygun çözüm hashes komutları kullanmak olacaktır. Ayrıca bu "dilemma" vardı ve Redis'teki JSON benzeri nesnelere sahip kullanıcılar içeren veri yapısıyla ilgili severalquestions var.

DÜZENLEME

kullanın node_redis modülü. Redis için muhtemelen en çok kullanılan bir node.js sürücüsü tarafından aktif olarak sürdürülür. Öncelikle, "kullanıcı" nın hangi öğeleri içerdiğini izlemek için yeni JSON nesne adınızı gruba eklemek için SADD komutunu kullanmalısınız. Sonra "user: rahul" nesne anahtar-değer karmalarını saklamak için HMSET kullanın. Örnek: Yalnızca belirli karma değerlerini veya tüm tek kullanıcı nesneyi almak istiyorsanız

// add first user 
client.sadd("users", "user:rahul"); 
client.hmset("user:rahul", "username", "rahul", "foo", "bar"); 

// add second user 
client.sadd("users", "user:namita"); 
client.hmset("user:namita", "username", "namita", "foo", "baz"); 

Artık Redis hash komutunun çeşitli türleri tarafından bağlı olarak kullanıcılarına erişebilir. Tüm kullanıcıları almak için örneğin SMEMBERS komutunu kullanabilirsiniz. API hakkında daha fazla bilgi bulabileceğiniz node_redis readme ve examples'a bakmaya çalışın.

+0

Lütfen örnek kod yazınız, kullanıcılardan sonra bu öneriyi sormuştum ama önce kullanıcılara hash bildirmek nasıl? veya redissql kullanmayı planlıyorum iyi mi? – XMen

+1

@Rahul Mehta: Yanıt güncellendi. – yojimbo87