DECR'yi iade et

Decr Yi Iade Et



Redis Tamsayı Manipülasyonu

Dize türü, Redis'in sunduğu en temel veri türüdür. Redis dizeleri metinleri, serileştirilmiş JSON nesnelerini, görüntüleri, sesleri ve hatta sayısal değerleri depolayabilir. Bu kılavuzda, sayısal değerlere ve tam sayıların işlenmesine odaklanacağız. Redis, sayısal verileri tutmak için ayrı tamsayı veri türlerini desteklemez. Bir Redis anahtarı, bir tamsayı olarak temsil edilebilecek bir dize içeriyorsa, Redis, sayı değerlerini taban-10 64 bit işaretli tamsayılar olarak yorumlayabilir.


Sayı manipülasyonu, herhangi bir veritabanında bulunması son derece kullanışlı bir özelliktir. Redis, INCR, DECR, INCRBY vb. tamsayı türleri üzerinde çalışmak için birçok yararlı işlem sunar. Bu kılavuzda, tamsayı türleri üzerinde çalışan DECR komutu ayrıntılı olarak açıklanmaktadır.







DECR Komutu

DECR komutu, belirli bir anahtarda saklanan bir sayı değerini birer birer azaltmak için tanıtıldı. Bu, yalnızca 10 tabanlı 64 bit tamsayı olarak temsil edilebilen dize değerlerinde çalışır. DECR komutu, tamsayı olarak temsil edilemeyen dize olmayan değerler veya dize değerleri için bir hata atar.



DECR komutunun sözdizimi aşağıdadır:



DECR tuşu


Anahtar: Dize değerini tutan anahtar.





DECR komutu, azaltma işleminden sonra elde edilen işaretli tamsayıyı döndürür. Belirtilen anahtar yoksa, komut değeri 0'a ayarlar ve ardından birer birer azaltır. Ayrıca, değer bir dize olmadığında veya 64 bit işaretli bir tamsayı olarak gösterilemediğinde bir hata verilir. Bu komut, son derece hızlı olan sabit zaman karmaşıklığı (O(1)) üzerinde çalışır.

Kullanım Durumu – Çevrimiçi Bir Oyunda Oyuncu Sağlığını Azaltma

Bir medi-pack ortaya çıktığında her oyuncunun sağlığının birer birer arttığı bir çevrimiçi oyun düşünelim. Benzer şekilde, oyuncu düşerse veya başka bir oyuncu tarafından vurulursa sağlık birer birer azalır.



Bir oyuncunun sağlığını depolamak için ideal aday, sağlığı bir tamsayı olarak depolayabileceğimiz bir Redis dize türüdür. Bir anahtar oluşturalım sağlık:playerID:1 ve değerini 10 olarak ayarlayın. SET komutunu aşağıdaki gibi kullanabiliriz:

Ayarlamak sağlık:playerID: 1 10



Depolanan değeri doğrulamak için GET komutunu kullanabiliriz. sağlık: oyuncu kimliği:1.

sağlık olsun:playerID: 1



Diyelim ki ID 1 olan oyuncu vuruldu ve sağlığı birer birer düşürülmeli. DECR komutu aşağıdaki gibi kullanılabilir:

Decr sağlık:playerID: 1


Beklendiği gibi, DECR komutu, aşağıdaki şekilde gösterildiği gibi azaltma işleminden sonra güncellenen değeri yazdırır:


Ayrıca, anahtarda depolanan değeri inceleyebiliriz. sağlık:playerID:1 GET komutu ile

sağlık olsun:playerID: 1



Beklendiği gibi, değer bir azaldı.

DECR operatörü, negatif sayılar için de geçerlidir. Anahtarda yeni bir negatif sayısal değer depolayalım negatif:değer1 .

Ayarlamak negatif:değer1 -3


GET komutunu kullanarak değeri aşağıdaki gibi inceleyebiliriz:

negatif olsun:değer1



Aşağıdaki komut, anahtar üzerinde DECR komutunun nasıl kullanıldığını gösterir. negatif:değer1:

eksi eksi:değer1


Tamsayı Olmayan Değerler Üzerindeki DECR Komutu

DECR komutunu, dize olmayan bir veri türünü veya bir tamsayı olarak temsil edilemeyen bir dizeyi tutan bir Redis anahtarında kullanmaya çalıştığımızda bazı uç durumlar vardır. DECR komutu, aşağıdaki örnekte gösterildiği gibi bu durumlarda bir hata verir:

Ayarlamak notAnIntergerVal Merhaba


'Merhaba', işaretli bir tam sayıya dönüştürülemeyen bir metindir. Yani, DECR komutu bu tuşa karşı çağırırsak bir hata verir.

Decr notAnIntergerVal


Varolmayan Anahtarlarda DECR Komutu

Bazı durumlarda, Redis veri deposunda bulunmayan bir anahtar üzerinde DECR komutunu çağırabilirsiniz. Böylece komut belirtilen anahtarı oluşturur ve değerini 0 tamsayısına ayarlar. Aynı zamanda değer bir azalır.

Decr olmayan-anahtar


Beklendiği gibi, çıktı -1'dir.


Genel olarak, DECR komutu, düşük gecikmeli uygulamalarda sayaçları uygulamak için çok kullanışlıdır.

Çözüm

Özetle DECR, belirli bir Redis anahtarında saklanan sayısal değerler üzerinde çalışan komutlardan biridir. Redis, ayrı bir tamsayı veri türünü desteklemez. Bu nedenle, dize türü sayısal değerleri de tutmak için kullanılır. İncelendiği gibi, dize değeri 64 bit işaretli bir tamsayı olarak gösterilebiliyorsa, değerini azaltmak için DECR komutu kullanılabilir. En önemlisi, sabit zaman karmaşıklığı üzerinde çalışır. Ayrıca, DECR komutu, sayaçları uygulamak için yaygın olarak kullanılır.