1. Redis uzak, bir istemci ve bir sunucu ile, genellikle sunucu diyoruz;
2. Redis ** belleğe dayalıdır **, bu nedenle sabit diske dayalı MySQL'den çok daha hızlıdır, ancak belleği çok tüketir
3. Redis, ilişkisel olmayan bir veritabanıdır. Esasen aynı zamanda bir veritabanıdır, ancak MySQL ilişkisel veritabanı depolandığında bir veri sözlüğü tanımlanmalıdır, ancak Redis'in buna ihtiyacı yoktur.
Redis veri türlerinin tümü push / pop, ekle / kaldır, kesişim, birleştirme ve fark ve daha zengin işlemleri destekler ve bu işlemlerin tümü atomiktir.
Memcached gibi, verimliliği sağlamak için veriler bellekte önbelleğe alınır. Aradaki fark, Redis'in düzenli olarak güncellenmiş verileri diske yazması veya değişiklik işlemlerini ek kayıt dosyalarına yazması ve bu temelde ana-bağımlı (ana-bağımlı) senkronizasyonunu gerçekleştirmesidir.
Veriler ana sunucudan herhangi bir sayıda ikincil sunucuya senkronize edilebilir ve ikincil sunucu, diğer bağımlı sunucularla ilişkili ana sunucu olabilir. Bu, Redis'in tek seviyeli ağaç çoğaltması gerçekleştirmesine olanak tanır. Diske kaydet, kasıtlı veya kasıtsız olarak veri yazabilir. ** Yayınla / abone ol ** mekanizması tam olarak uygulandığından, ağacı veritabanından herhangi bir yerden senkronize ederken bir kanala abone olmak ve ana sunucunun tam mesaj yayın kaydını almak mümkündür. Senkronizasyon, okuma işlemlerinin ölçeklenebilirliği ve veri yedekliliği için çok yararlıdır.
Redis genellikle şu şekilde kullanılır: Veri önbelleği .
Bazı sistem arayüzleri yavaş olduğunda, bazı verileri Redis'te önbelleğe alabiliriz. Bir dahaki sefere verileri getirdiğimizde, çok zaman alan SQL işlemleri gerçekleştirmeyeceğiz. Sistem performansını iyileştirmek için verileri doğrudan önbellekten alacağız. Yöntemlerden biri;
Push ve pop işlemleri atomikliğin gerçekleşmesini sağlar;
Tüm eklemeler, silmeler, değişiklikler ve kontroller Redis'te gerçekleştirilir.Redis, veri bütünlüğünü ve güvenliğini sağlamak için düzenli olarak depolanan bir sabit disk kalıcılık mekanizmasına sahiptir.
Redis istemcisini görüntüleyin: hangi redis-cli Oturum açma: redis-cli (varsayılan olarak bu makinenin 6379 numaralı bağlantı noktasına giriş yapın) redis bilgilerini görüntülemek için bilgi komutu
Redis'de, adın bileşen içeriği olarak \ n ve boşlukların yanı sıra diğer içerikler de anahtarın ad kısmı olarak kullanılabilir. Adın uzunluğu gerekli değildir.
* anahtar var # Belirtilen anahtarın var olup olmadığını test edin del key1 key2 key3 # Verilen anahtarı sil * anahtar yazın # Verilen değerin türünü geri döndürün anahtar deseni # Belirtilen desenle eşleşen tüm anahtarları geri döndür eski anahtarı yeniden adlandır yeni anahtar # Adı değiştir * dbsize # Mevcut veritabanındaki anahtar sayısını döndürür anahtar saniyeleri sona erdirme # Anahtarın sona erme süresini belirtin * ttl key # Anahtarın kalan sona erme saniyelerini döndürür * db-endeksini seçin # Veritabanını seçin, toplam 16 db-index anahtarını taşı # Anahtarı geçerli veritabanından belirtilen veritabanına taşı * flushdb # Mevcut veritabanındaki tüm anahtarları sil flushall # Tüm veritabanlarındaki tüm anahtarları silİşlev: Dize veya tamsayı işlemleri sağlayın.
anahtar değerini ayarla (dize / int / float) anahtarı al incr string // Artış decrby dizesi // azalmaDize, en temel redis türüdür
Redis dizesi herhangi bir veri içerebilir. Jpg görüntüleri (ikili) veya serileştirilmiş nesneler dahil. Tek bir değerin maksimum üst sınırı 1G bayttır. Yalnızca dize türü kullanılırsa, redis kalıcılık özelliklerine sahip memcache olarak kabul edilebilir.
anahtar değerini ayarla # Anahtara karşılık gelen değeri dize türünün değerine ayarlayın * mset anahtar1 değer1 anahtar2 değer2 # Birden çok anahtarın değerini aynı anda ayarlayın * mget key1 key2 # Tek seferde birden fazla anahtarın değerini alın * incr anahtar # Anahtarın değerini ekle ve ekle ve yeni değeri döndür decr key # Anahtarın değerini azaltır ve yeni değeri döndürür incrby anahtar tamsayı # incr olarak aynı, belirtilen değeri ekleyin decrby anahtar tamsayı #Decr olarak aynı, eksi belirtilen değer * anahtar değeri ekleyin # değeri, belirtilen anahtarın dize değerine ekleyin * substr key start end # Yakalanan anahtarın dize değerini döndürürİşlev: mağaza sırası koleksiyonu, kuyruk, itme ve açma işlemleri için kullanılabilir
sola itin hemen çık llen anahtarı Listede kaç öğe olduğunu görünListe türü ilk giren ilk çıkar, kuyruklar için uygundur; Liste, içindeki öğelerin benzersiz olmasını gerektirmez
(1. Giriş
En son 10 kullanıcı bilgisini alın: kullanıcı sırasından * logintime desc limit 10'a göre seçin; Yukarıdaki sql ifadesi kullanıcı ihtiyaçlarını karşılayabilir, ancak çok fazla veri olduğunda tüm veriler etkilenecek ve veri tabanı üzerindeki yük görece yüksek olacaktır. Gerekirse, anahtar alan (id veya logintime) için bir dizin ayarlamanız gerekir ve dizin ayrıca sistem kaynaklarını tüketir.
Yukarıdaki işlevler bağlantılı liste aracılığıyla gerçekleştirilirse, yalnızca en son 10 veri bağlantılı liste listesinde tutulabilir ve her yeni veri her yeni veri geldiğinde silinir. Her seferinde gerekli verileri doğrudan bağlantılı listeden alabilirsiniz. Kaynak tüketiminin tüm yönlerini büyük ölçüde koruyun
(2) Uygulama
Liste türü aslında çift bağlantılı bir listedir. Push ve pop işlemleriyle bağlantılı listenin başından veya kuyruğundan öğeler ekleyin ve silin. Bu, listenin hem yığın hem de kuyruk olarak kullanılmasına izin verir.
Yukarıdan içeri ve dışarıya: Üst üste ve aşağıya Yığın: Sıra
lpush key string # İlgili anahtar listesinin başına dize öğeleri ekleyin rpop anahtarı # Listenin sonundaki öğeyi sil ve silinen öğeye geri dön llen anahtarı, listenin uzunluğuna karşılık gelen # anahtarını döndürür, anahtar yoktur, 0 döndürür, türe karşılık gelen anahtar liste değilse, bir hata döndürür lrange key start end # Belirtilen aralıktaki öğeleri döndürür ve alt simge 0'dan başlar rpush anahtar dizesi # Yukarıdaki ile aynı, sonuna ekleyin lpop key # Öğeyi listenin başından kaldır ve öğeyi silmek için geri dön ltrim key start end # Listeyi keser ve elemanları belirtilen aralıkta tutar1.lrange tuşu 0 -1 Tüm öğeleri çıkarın. 2. lrem key n / -n X Belirtilen öğeyi n kez silin. 3. anahtarı key1'den önce / sonra yerleştirin. Key2'yi key1'den sonra / sonra ekleyin. 4. rpoplpush key1 key2, key1'in sağ anahtarını key2 bağlantılı listesine koyar, Atomiklik . Operasyonel kullanım
İşlev: sırasız koleksiyon, Her öğe farklıdır .
Öğe ekleyin: sadd anahtar değeri Kaç tane element olduğunu belirleyin: yara izi anahtarı Bir öğenin kümede olup olmadığını belirleyin: sismember anahtar değeri Bir öğeyi silme: srem anahtar değeri Tüm değerleri alın ve bir dizi olarak döndürün: $ redis- > sMembers ('dst')); int (2) dizi (2) { = > dize (1) "4" = > dize (1) "2" }Türü ayarlayın, birden fazla farklı öğeyi sırasız bir şekilde saklayın ve öğeleri hızla ekleyin, arayın ve silin; Aynı öğe yalnızca bir .
Redis kümesi, dizge türünün sırasız bir koleksiyonudur. Set elemanı en fazla (2'den 32'ye kadar güç-1) eleman içerebilir. Set toplama türü ile ilgili olarak, temel ekleme ve silme işlemlerine ek olarak, diğer yararlı işlemler de koleksiyonları içerir. Birlik (Birlik), Kavşak (kesişme), Çıkarma (fark). Bu işlemler sayesinde sns'deki ** arkadaş tavsiyesi işlevi ** kolayca gerçekleştirilebilir. Not: Her kümedeki her öğe tekrarlanamaz.
sadd anahtar üye # Anahtara karşılık gelen kümeye bir dize öğesi ekleyin ve başarılı olursa 1'i döndürün. Öğe zaten kümede ise, 0 döndür ve anahtara karşılık gelen küme yoksa bir hata döndür srem anahtar üye # Verilen elemanı anahtara karşılık gelen kümeden kaldır ve başarılı olursa 1 döndür smove p1 p2 üye # p1'e karşılık gelen kümeden üyeyi kaldır ve p2'ye karşılık gelen kümeye ekle korkutma anahtarı # Setteki öğelerin sayısını döndürür sismember anahtar üye # Üyenin kümede olup olmadığını değerlendirme sinter key1 key2 ... keyn # Verilen tüm anahtarların kesişimini geri döndürün sunion key1 key2 ... keyn # Verilen tüm anahtarların birleşimini geri döndür sdiff key1 key2 ... keyn # Verilen tüm anahtarların farkını döndürür anahtarı okur # Anahtara karşılık gelen kümenin tüm öğelerini döndürür ve sonuç sıralanmamış olurBu tür bir uygulama: Qq arkadaşları tarafından tavsiye edilir.
Tom Arkadaş Çevresi (XX ile Arkadaşlar): Mary Jack Xiaoming Wang5 Wang6 linken arkadaş çevresi (XX ile arkadaşlar): yuehan daxiong luce wang5 wang6İşlev: Anahtar-değer yapısı saklanır, anahtar dizge olmalıdır
Genellikle daha karmaşık yapıları depolamak için kullanılan Hash, yalnızca ad, yaş vb. Gibi farklı anahtarlar gerektirir.
Ekle / değiştir: hset hash1 key112 Get: hget hash1 key1 Karma uzunluğunu görüntüleyin: hlen anahtarı Tek seferlik erişim: hmget hash1 key1 key2İşlev: Depolama, sıralı bir puan koleksiyonudur, Genellikle skor tablolarında kullanılır .
sıralama kümesi genellikle sınıf performansı sıralaması gibi sıralama için kullanılır
Hash gibi depolama da bir eşlemedir. Depolanan, puanlar ve öğeler arasındaki eşlemedir. Liderlik tablosu olduğu görülebilir. Değer küresel olarak benzersiz olmalıdır. puan kayan nokta türüdür. Sıralama türü işlemi, iki öğenin puanları aynıysa, bayt sırasına göre düzenlenirler
Ekleme / değiştirme: zadd zset110.1 val1 Numarayı kontrol edin: zcard zset1 Sıralamayı kontrol edin: zrange zset10 2 withscores Bir değer sıralamasını görüntüleyin: zrank zset1 val2 Kodu kopyalaKüme gibi, sıralı küme de dizge türü elemanların bir koleksiyonudur, fark, her elemanın bir ağırlık ile ilişkilendirilmiş olmasıdır. Setteki elemanlar ağırlık sırasına göre elde edilebilir.
Sıralama seti türü durumlar için uygundur: Popüler gönderi (yanıt hacmi) bilgilerini alın: Mesaj sırasından * seçin * backnum desc limit 5; (Yukarıdaki gereksinimler basit sql deyimleri ile sağlanabilir, ancak sql deyimleri mysql veritabanı kaynaklarını tüketir)
Örnek olay: En popüler 5 gönderiyi almak için sıralama kümesini kullanın
Sıralanan kümedeki her öğe, bir değer ve ağırlık kombinasyonudur (önceki koleksiyon türünün her bir öğesi yalnızca bir değerdir)Yalnızca 5 bilgi unsurunu tutan bir sıralama kümesi sıralama koleksiyonu yapıyoruz. 5 öğe en yüksek yanıt hacmidir. Her gönderi yanıtlandığında, koleksiyona girme şansı vardır, ancak yalnızca en yüksek yanıt hacmine sahip ilk 5 Koleksiyonda bir gönderi olacak ve düşük yanıt hacmine sahip olan silinecek.
127.0.0.1:6379 > 2 seçin tamam 127.0.0.1:6379 > zadd hotmessage 10211 // ekle (tamsayı) 1127.0.0.1:6379 > zadd hotmessage 14112 (tamsayı) 1127.0.0.1:6379 > zadd hotmessage 15913 (tamsayı) 1127.0.0.1:6379 > zadd hotmessage 7214 (tamsayı) 1127.0.0.1:6379 > zadd hotmessage 20315 (tamsayı) 1127.0.0.1:6379 > anahtarlar * 1) "sıcak mesaj" 127.0.0.1:6379 > zrevrange hotmessage 0100 // Ağırlık sırasına göre yüksekten düşüğe doğru belirli eleman değerleri hakkında bilgi almak için 1) "15" 2) "13" 3) "12" 4) "11" 5) "14" 127.0.0.1:6379 > zadd hotmessage 18916 (tamsayı) 1127.0.0.1:6379 > zrevrange hotmessage 01001) "15" 2) "16" 3) "13" 4) "12" 5) "11" 6) "14" 127.0.0.1:6379 > zremrangebyrank hotmessage 00 (tamsayı) 1 // En düşük ağırlığa sahip olanı sil 00, birinci hakkı silmek anlamına gelir; 01, birinci ve ikinci hakkı silmek anlamına gelir; 127.0.0.1:6379 > zrevrange hotmessage 01001) "15" 2) "16" 3) "13" 4) "12" 5) "11" 127.0.0.1:6379 > zrank hotmessage 12 // Element sıralamasını düşükten yükseğe alın (tamsayı) 1127.0.0.1:6379 > zrank hotmessage 11 (tamsayı) 0127.0.0.1:6379 > zrevrank hotmessage 13 // Element sıralamasını yüksekten düşüğe doğru alın (tam sayı) 2127.0.0.1:6379 > zcard hotmessage // Koleksiyondaki öğe sayısını alın (tam sayı) 5127.0.0.1:6379 > zscore hotmessage 16 // Eleman değerine göre ilgili ağırlığı elde edin "189" 127.0.0.1:6379 > zincrby hotmessage 10012 // Belirtilen eleman değerine bazı ağırlık bilgileri ekleyin "241" 127.0.0.1:6379 > zrevrange hotmessage 01001) "12" 2) "15" 3) "16" 4) "13" 5) "11" 127.0.0.1:6379 > Kodu kopyalaBu makale, Redis'in beş veri türünü basit bir şekilde tanıtır ve birçok pratik örnekle Redis'in kullanımını gösterir. Ek olarak, Redis'in optimizasyon yöntemlerini ve genişletme yöntemlerini de açıklar.
Üç bölümden oluşur; İlk bölüm Redis'i tanıtıyor , Redis'in temel kullanımını, sahip olduğu beş veri yapısını ve beş veri yapısını çalıştırma komutlarını açıklar ve makale toplama web siteleri, çerezler, alışveriş sepetleri ve web önbellekleri oluşturmak için Redis'in nasıl kullanılacağını ayrıntılı olarak açıklar. Veritabanı satır önbelleği gibi bir dizi program. İkinci bölüm, Redis komutlarına daha ayrıntılı bir giriş sağlar , Ve daha karmaşık yardımcı araçlar ve uygulamalar oluşturmak için Redis'in nasıl kullanılacağını ve son olarak basit bir sosyal ağ sitesi oluşturmak için Redis'in nasıl kullanılacağını gösterdi. Üçüncü bölüm, Redis kullanıcılarının sıklıkla karşılaşacağı bazı sorunları tanıtır. , Redis bellek kullanımını azaltma yöntemini, Redis performansını genişletme yöntemini ve Lua dili kullanarak komut dosyası programlama yöntemini açıklar.
Bu kitap yalnızca komut kullanımı gibi giriş konularını değil, aynı zamanda replikasyon, kümeleme ve performans genişletme gibi derinlemesine konuları da kapsar; bu nedenle, Redis'te acemi veya Redis konusunda biraz deneyime sahip bir kullanıcı olun, kitaptan yararlanabilmeniz gerekir.
Bu [Redis gerçek savaş belgesini] almanız gerekiyorsa, ücretsiz olarak almak için resmi hesabımı [Plain Waves Quiet as a Code] takip edebilirsiniz! (İçerik daha ayrıntılıdır, bu nedenle bilgi noktalarının kaba bir ekran görüntüsü gösterilir)
1.1: Redis'in ilk tanınması
1.2: Web uygulamaları oluşturmak için Redis'i kullanın
2.1: redis komutu
2.2: Veri Güvenliği ve Performans Garantisi
2.3: Destek programları oluşturmak için redis'i kullanın
2.4: Uygulama bileşenleri oluşturmak için redis'i kullanın
2.5: Arama tabanlı uygulamalar
2.6: Basit bir sosyal ağ sitesi oluşturun
3.1: Bellek kullanımını azaltın
3.2: redis'i genişlet
3.3: Redis Lua komut dosyası programlama
Bu [Redis gerçek savaş belgesini] almanız gerekiyorsa, makaleyi iletebilir ve özel mesajım olan "belge" yi ücretsiz olarak takip edebilirsiniz! (İçerik daha ayrıntılıdır, bu nedenle bilgi noktalarının kaba bir ekran görüntüsü gösterilir)
Son olarak, çalışmalarınızda başarılar diliyorum, terfi almanızı ve maaşınızı artırmanızı, röportajı geçmenizi, yumuşak bir teklif almanızı ve en kısa sürede en sevdiğiniz işi bulmanızı diliyorum. ~