SQL veritabanının yerine / yanında Redis gibi bir anahtar / değer deposu ne zaman kullanılır?


Yanıtlar:


102

Bir uygulamada kullanma zamanı geldiğini anlayamıyorum.

Kullanım örnekleri de içeren bu eğiticiyi okumanızı tavsiye ederim . Redis oldukça bellek odaklı olduğundan, oturum deposu, durum veritabanı, istatistikler, önbellekleme gibi sık güncellenen gerçek zamanlı veriler için gerçekten iyidir ve gelişmiş veri yapıları diğer birçok senaryoya çok yönlülük sunar.

Ancak Redis, klasik ilişkisel veritabanları için NoSQL yerine geçmez, çünkü verilerinizi yavaşlatabilecek sorgulama gibi RDBMS dünyasının birçok standart özelliğini desteklemez. Değiştirme, MongoDB veya CouchDB gibi belge veritabanlarıdır ve redis, gelişmiş veri yapıları için hız ve desteğin kullanışlı olduğu belirli işlevleri desteklemekte mükemmeldir.


3
Bağlantı verdiğiniz öğretici harika!
Chris Abrams

5
Bu öğretici site URL'si ile hızlı bir Google araması yaptım ve en çok hit olarak karşılaştım - slideshare.net/dvirsky/introduction-to-redis-version-2
Paul

66

Bence hiçbir şey Redis kullanım örneklerini bu makaleden daha iyi açıklamıyor: http://antirez.com/post/take-advantage-of-redis-adding-it-to-your-stack.html

Bahse girerim aha olacaksın ! an . ;)

Önceki bir okuyucudan alıntı:

Daha önce Redis hakkında okudum ve şirketlerin nasıl kullandığını duydum, ancak amacını tam olarak anlamadım. Bunu okuduktan sonra aslında Redis'i şimdi anladığımı ve ne kadar yararlı olduğunu söyleyebilirim. Şaşırtıcı bir şey duyduktan sonra, tüm gereken nispeten basit bir makale oldu.

Makaleden bir alıntı:

Redis birçok yönden diğer veritabanı çözümlerinden farklıdır: ana depolama desteği ve diski sadece kalıcılık için kullanır, veri modeli oldukça benzersizdir, tek iş parçacıklıdır. Bir başka büyük farkın üretim ortamınızdaki Redis'ten yararlanmak için Redis'e geçmenize gerek olmamasıdır. Daha önce mümkün olmayan yeni şeyler yapmak veya eski sorunları düzeltmek için kullanabilirsiniz.

Makalenin değindiği vakaları kullanın:

  • Ana sayfanızdaki son ürün listelerini yavaşlatın
  • Skor tabloları ve ilgili sorunlar
  • Kullanıcı oyları ve zamana göre sırala
  • Öğeler üzerindeki kullanım süresinin dolması
  • Eşya sayma
  • Belirli bir sürede benzersiz N öğeleri
  • İstatistikler, istenmeyen posta önleme veya her ne için gerçek zamanlı analiz
  • Pub / Sub
  • Kuyruklar
  • Önbelleğe almak

Bu makale çok faydalı, bilmek istediklerime sahibim
Hos Mercury

@ Zenw0lf Redis hala basit önbellekleme için en iyisi mi? Yayınınız 2011'den, bu yüzden kullanmam gereken başka bir şey olup olmadığından emin değilim.
Moondra

@Moondra Evet, proje hala çok canlı ve yaratıcısı sık sık yayın yapıyor. Farklı kullanım senaryoları için hala mükemmel bir proje!
zenw0lf

@ zenw0lf İyi makale ama yine de bazı kullanım durumlarında biraz kafam karıştı. Örneğin, "son öğe" kullanım durumu, bu durumda Redis'i eklemek neden daha iyi? sadece kullanıcı kimliğine, yoruma (id) ve / veya zaman damgasına sahip olmak ve bunu doğrudan kullanmak için belirli bir tabloya eklediğimiz veritabanında neler var. Bu aynı olmayacak mı?
Tony Lin

1
@TonyLin Her ikisi de hızlı, çünkü bellekte ve Redis ayrıca işini olabildiğince iyi yapmasına yardımcı olmak için son teknoloji veri modellerinin oldukça iyi bir uygulamasına sahip.
zenw0lf

9
  • Redis'i gerçek zamanlı projelerde kullanmak isterim. Son zamanlarda bir veritabanı olarak mysql üzerine inşa edilmiş bir gps takip sistemi için yaptım.

    AVANTAJ

    1. İzleyicinin veri yayınladığı her seferde mysql bağlantısını açmam ve kaydetmem gerekmez. Yeniden kayıt üzerine kaydedebilir ve daha sonra başka bir işlem kullanarak mysql'e geçebiliriz. Bu, çoklu izleyiciden mysql'ye eşzamanlı bağlantıyı önleyecektir.
    2. Tüm bu gps verilerini yayınlayabilirim ve diğer istemciler (javascript / android) redis tabanlı mesaj kuyruğunu kullanarak gerçek zamanlı olarak abone olabilir
    3. Gerçek zamanlı uyarıları tetikleyebilirim

3

Eldeki bir şey Redis'in ilişkisel bir veritabanı olmamasıdır. Eğer bir SQL "JOIN" ihtiyacınız olacak, o zaman Redis, ne de başka bir ilişkisel olmayan veritabanı kullanmak istemeyeceksiniz. Redis çoğu ilişkisel veritabanından daha hızlıdır. Yalnızca key: value pair sorguları yapacaksanız Redis'i kullanmak istersiniz.


Örneğin, kullanıcı oturumu ile ilgili bilgiler için redis kullanmak iyi olur, bu nedenle ad, e-posta, kimlik vb. Erişim daha hızlı olur mu?
Chris Abrams

Ben öyle düşünürdüm. Kyoto Bakanı bunun için daha hızlı olurdu diye düşünüyorum.
EhevuTov
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.