2012-10-05 33 views
20

Uygulamayı denediğimi düşünmek bir id tablosudur. Temelde, user_id'in Kullanıcı tablosumdaki birincil anahtara hangi yapıyı kullandığı (user_id, lecturer_id) ve lecturer_id, Lecturer masamın birincil anahtarını ifade eder. ,Değere göre anahtar bul

Ben REDIS bu uygulamaya çalışıyorum ama Kullanıcının birincil kimliği olarak anahtarını ayarlayın ben çalıştırmayı denediğinizde öğretim üyesi anahtarı olmadığından, gibi bir sorgu öğretim üyesi id = 5 ile tüm kayıtları almak ancak değeri O (1) saatte ulaşamayacağım.

Yukarıda bahsettiğim kimlik tablosu gibi bir yapıyı nasıl oluşturabilirim, yoksa Redis bunu desteklemiyor mu? REDIS çalışırken çabuk öğreniyorsun şeylerden

+0

Redis belgelerinde yakın zamanda eklenen bir sayfa [Redis ile ikincil indeksleme] hakkında daha fazla bilgi sağlar (http://redis.io/topics/indexes) ve bu durumu [sıralanmış kümelerle Basit Sayısal İndeksler] altında kapsar. http://redis.io/topics/indexes#simple-numerical-indexes-with-sorted-sets) bölümü. –

cevap

28

biri size erişen ihtiyaçları etrafında veri yapısını tasarlamak için elde edilmesi, özellikle de

yoktur (bir ilişkisel veritabanı sonra hepsi değil) ilişkilerine gelince Fark ettiğiniz gibi bir O (1) zaman karmaşıklığı ile "değer" e göre arama yapmanın hiçbir yolu yoktur, ancak redis kullanarak açıkladığınız şeye yaklaşmanın yolları vardır. Tavsiye edeceğim şey:

  • Kullanıcı verilerinizi, halihazırda yaptığınız gibi kullanıcı kimliğine (örneğin, bir karma) kaydedin.
  • Her bir öğretim görevlisi kimliği için, söz konusu öğretim görevlisi kimliğine karşılık gelen tüm kullanıcı kimliklerini içeren ek bir setiniz olsun.

Bu kullanıcı verileri ders id saklamak zorunda kalacak, ve ders veri kullanıcı kimlikleri depolamak olacağından, ilişki veri çoğaltma gibi gözükebilir, ama bu biriyse ödeme (küçük) fiyat Redis gibi ilişkisel olmayan bir veri deposunda ilişkiler kurmak. Pratik anlamda bu iyi çalışır; Bellek nadiren küçük veri kümeleri için bir darboğazdır (binlerce kimliğini düşünün). ilişkiler uygulamalarını modellemek için REDIS kullanan insanlar nasıl

Ben Design and implementation of a simple Twitter clone ve Redis yazar Salvatore Sanfilippo tarafından yazılan her ikisi de Lamernews kaynak kodunu, okuma tavsiye daha iyi bir görüntü almak için.

İlgili konular