turp LSET

Turp Lset



Redis listesi, ekleme sırasında bir dizi dize öğesi tutan bir veri yapısıdır. Bağlantılı Listeye dayanmaktadır. Böylece başa ve kuyruğa bir elemanın yerleştirilmesi sabit zamanda gerçekleştirilir. Redis listelerinin tek dezavantajı, öğeleri bir dizine göre sorgulamanın biraz maliyetli olmasıdır, bu da erişim öğesinin dizini ile doğru orantılı olarak zaman alır. Bağlantılı liste tabanlı uygulamanın arkasındaki neden, çok uzun bir öğe listesi için veri eklemeyi daha hızlı hale getirmektir.

Redis listeleri 0 tabanlı indekslemeye sahiptir. İlk eleman 0 olarak belirlenmiştir. inci indeks; ikincisi 1 de Aziz indeks vb. Son eleman -1 olarak indekslenir, sondan bir önceki eleman -2, vb. gibi negatif indekslerle indekslerle kuyruk elemanlarına erişim mümkündür.









Liste öğeleri, aşağıdaki bölümde açıklanan LSET komutuyla herhangi bir dizinde ayarlanabilir.



LSET Komutu

LSET komutu, belirtilen anahtarda saklanan Redis listesinin verilen dizinindeki bir öğeyi ayarlar. Aşağıdaki basit sözdizimine sahiptir:





LSET list_key dizin öğesi

list_key : Redis listesinin anahtarı.

dizin : Bir öğe ayarlamanız gereken dizin.



eleman : Belirtilen dizinde ayarlanacak dize öğesi.

Öğe düzgün ayarlanmışsa, bu komut Basit bir 'OK' dizesi döndürür. Aralık dışında bir dizinle karşılaştığında, LSET komutu bir hata döndürür.

Redis listelerinin en yaygın kullanım durumlarından biri, sosyal medya gönderilerini ve güncellemelerini bireysel kullanıcılar için depolamaktır. LSET komutu, aşağıdaki bölümde tartışıldığı gibi burada önemli bir rol oynar.

Kullanım Örneği – Sosyal Medya Gönderilerini Güncelleyin

Bir şirketin kendi sosyal medya web sitesini sürdürdüğü ve binlerce kullanıcının aktif olarak gönderi ve durum paylaştığı bir olayı varsayalım. Redis listelerinin, sık eklemenin gerçekleştiği bu gönderileri ve durumları tutmak için uygun aday olduğunu ve Redis listelerinin sabit zamanda ekleme gerçekleştirdiğini belirlediler.

Belirli bir kullanıcının gönderilerini ve durum mesajlarını depolamak için kullanılacak belirli bir kullanıcı kimliği 100 için bir Redis listesi oluşturalım. Kullanıcı kimliği 100 için bazı boş gönderiler ve durum mesajları koymak için LPUSH komutunu kullanacağız.

LPUSH sosyal medya:user:100 '2022-08-01:Başlamak için güzel bir gün.'
LPUSH sosyal medya:user:100 '2022-08-05:linuxhint'te yeni işe başladı'
LPUSH sosyal medya:user:100 '2022-08-06:Bugün harika bir parti'
LPUSH sosyal medya:user:100 '2022-08-07:Kötü gün!!!'

Çıktı

100 kullanıcı kimliğine sahip kullanıcının eski gönderilerinden birini güncelleyeceğini varsayalım. Gönderdiği üçüncü gönderinin biraz düzeltilmesi gerektiğini varsayalım. LSET komutu, aşağıda gösterildiği gibi bunu kolayca başarabilir.

Üçüncü eleman Head'den indeks 2'de olduğundan. Aşağıdaki şekilde güncelleyeceğiz:

LSET sosyal medya:user:100 2 'LinuxHint'te yazar olarak yeni bir role başladı'

Çıktı

Beklendiği gibi, komut başarıyla yürütüldü ve ikinci dizindeki öğe güncellendi. Listeyi şu şekilde tekrar kontrol edelim:

Kuyruktan dizini aşağıdaki gibi belirterek de aynısını yapabiliriz:

LSET sosyal medya:user:100 -2 'LinuxHint'te yazar olarak yeni rolüne başladı'

Beklendiği gibi, üçüncü öğe 'Job start at LinuxHINT' yeni dizesine ayarlandı.

Aralık dışında bir dizin belirtirseniz, aşağıda gösterildiği gibi bir hata oluşturur:

LSET sosyal medya:user:100 6 'İş LinuxHINT'te başladı'

Çıktı

Çözüm

LSET komutu, belirli bir dizindeki bir liste öğesini, belirli bir anahtarda depolanan Redis listesinin belirli bir öğesine ayarlar. Redis liste dizinleri 0'dan başladığı için ilk öğedir. Dizin 1, listenin ikinci öğesidir, vb. Tartışıldığı gibi, kuyruktan başlayan elemanların indeksleri, -1 son eleman, -2 son elemandan önceki eleman vb. gibi negatif sayılar kullanılarak belirtilebilir. Var olmayan bir dizin iletildiğinde, LSET komutu bir hata döndürür. Ayrıca, bu komut, başarılı yürütme üzerinde basit bir dize çıktısı döndürür.