kembalikan DECR

Kembalikan Decr



Manipulasi Integer Redis

Jenis rentetan ialah jenis data paling asas yang ditawarkan oleh Redis. Rentetan Redis mampu menyimpan teks, objek JSON bersiri, imej, audio, dan juga nilai berangka. Dalam panduan ini, kita akan menumpukan pada nilai berangka dan manipulasi integer. Redis tidak menyokong jenis data integer yang berasingan untuk menyimpan data berangka. Jika kunci Redis mengandungi rentetan yang boleh diwakili sebagai integer, Redis boleh mentafsirkan nilai nombor sebagai integer bertanda asas-10 64-bit.


Manipulasi nombor adalah ciri yang sangat berguna untuk ada dalam mana-mana pangkalan data. Redis menawarkan beberapa operasi berguna untuk bekerja pada jenis integer seperti INCR, DECR, INCRBY, dll. Dalam panduan ini, arahan DECR yang beroperasi pada jenis integer diterangkan secara terperinci.







Perintah DECR

Perintah DECR diperkenalkan untuk mengurangkan nilai nombor yang disimpan pada kunci tertentu dengan satu. Ini hanya berfungsi pada nilai rentetan yang boleh diwakili sebagai integer 64-bit asas-10. Perintah DECR melemparkan ralat untuk nilai bukan rentetan atau nilai rentetan yang tidak boleh diwakili sebagai integer.



Berikut ialah sintaks arahan DECR:



kunci DECR


kunci: Kunci yang memegang nilai rentetan.





Perintah DECR mengembalikan integer bertanda yang terhasil selepas operasi pengurangan. Jika kunci yang ditentukan tidak wujud, arahan menetapkan nilai kepada 0 dan kemudian mengurangkannya dengan satu. Juga, ralat dilemparkan apabila nilai bukan rentetan atau tidak boleh diwakili sebagai integer bertanda 64-bit. Perintah ini beroperasi pada kerumitan masa yang berterusan(O(1)) yang sangat pantas.

Kes Penggunaan – Kurangkan Kesihatan Pemain dalam Permainan Dalam Talian

Mari kita anggap permainan dalam talian di mana kesihatan setiap pemain meningkat dengan satu apabila pek medi didedahkan. Begitu juga, kesihatan berkurangan seorang jika pemain itu jatuh atau dilanggar oleh pemain lain.



Calon yang ideal untuk menyimpan kesihatan pemain ialah jenis rentetan Redis di mana kita boleh menyimpan kesihatan sebagai integer. Mari buat kunci kesihatan:playerID:1 dan tetapkan nilainya kepada 10. Kita boleh menggunakan arahan SET seperti berikut:

ditetapkan kesihatan:playerID: 1 10



Kita boleh menggunakan arahan GET untuk mengesahkan nilai yang disimpan di kesihatan:playerID:1.

dapatkan kesihatan:playerID: 1



Katakan pemain dengan ID 1 terkena dan kesihatan harus dikurangkan satu. Perintah DECR boleh digunakan seperti berikut:

decr health:playerID: 1


Seperti yang dijangkakan, arahan DECR mencetak nilai yang dikemas kini selepas operasi pengurangan seperti yang ditunjukkan dalam rajah berikut:


Selain itu, kita boleh memeriksa nilai yang disimpan di kunci kesihatan:playerID:1 dengan arahan GET.

dapatkan kesihatan:playerID: 1



Seperti yang dijangkakan, nilainya menurun sebanyak satu.

Pengendali DECR juga sah dengan nombor negatif. Mari simpan nilai berangka negatif baharu pada kunci negatif:nilai1 .

ditetapkan negatif:nilai1 -3


Kita boleh memeriksa nilai menggunakan arahan GET seperti berikut:

dapatkan negatif:nilai1



Perintah berikut menunjukkan cara arahan DECR digunakan pada kekunci negatif:nilai1:

decr negatif:nilai1


Perintah DECR pada Nilai Bukan Integer

Terdapat beberapa kes kelebihan apabila kami cuba menggunakan arahan DECR pada kunci Redis yang memegang jenis data bukan rentetan atau rentetan yang tidak boleh diwakili sebagai integer. Perintah DECR membuang ralat dalam kes tersebut seperti yang ditunjukkan dalam contoh berikut:

ditetapkan notAnIntergerVal Hello


'Hello' ialah teks yang tidak boleh ditukar kepada integer yang ditandatangani. Jadi, arahan DECR menimbulkan ralat jika kita memanggilnya terhadap kunci ini.

decr notAnIntergerVal


Perintah DECR pada Kunci Tidak Sedia Ada

Dalam sesetengah kes, anda mungkin memanggil arahan DECR pada kunci yang tidak wujud dalam stor data Redis. Jadi, arahan mencipta kunci yang ditentukan dan menetapkan nilainya kepada integer 0. Pada masa yang sama, nilainya dikurangkan sebanyak satu.

decr bukan kunci sedia ada


Seperti yang dijangkakan, output ialah -1.


Secara keseluruhan, arahan DECR sangat berguna untuk melaksanakan pembilang dalam aplikasi kependaman rendah.

Kesimpulan

Secara ringkasnya, DECR ialah salah satu arahan yang beroperasi pada nilai berangka yang disimpan pada kunci Redis yang diberikan. Redis tidak menyokong jenis data integer yang berasingan. Jadi, jenis rentetan digunakan untuk memegang nilai berangka juga. Seperti yang diperiksa, jika nilai rentetan boleh diwakili sebagai integer bertanda 64-bit, arahan DECR boleh digunakan untuk mengurangkan nilainya. Paling penting, ia beroperasi pada kerumitan masa yang berterusan. Juga, arahan DECR digunakan secara meluas untuk melaksanakan kaunter.