INCR- ja DECR-Komennot
Nämä toiminnot ovat atomisia, eli ne suoritetaan joko kokonaan tai eivät ollenkaan, mikä varmistaa datan eheyden myös silloin, kun useat prosessit käyttävät Redis-tietokantaa samanaikaisesti.
INCR-komento
INCR-komento kasvattaa numeerista arvoa yhdellä. Se on erityisen hyödyllinen esimerkiksi sivulatausten laskemiseen tai tykkäysten määrän seuraamiseen.
Simuloidaan tilannetta, jossa seurataan verkkosivun katselukertojen määrää:
Jos avainta ei ole olemassa, Redis luo sen ja asettaa sen arvoksi 1. Jokainen seuraava komennon kutsu kasvattaa arvoa 1, jolloin laskuri päivittyy arvoihin 2, 3 ja niin edelleen.
Jos sinun täytyy kasvattaa saman avaimen arvoa useita kertoja, voit käyttää INCRBY-komentoa ja määrittää, kuinka paljon haluat lisätä arvoa.
Tässä esimerkissä INCRBY-komento kasvattaa page:main-avaimen arvoa 5:llä. Jos alkuarvo oli 0, se on 5 komennon suorittamisen jälkeen.
DECR-komento
DECR-komento toimii samalla tavalla kuin INCR, mutta se vähentää arvoa yhdellä. Tämä on hyödyllistä esimerkiksi varastoseurannassa, kun täytyy vähentää varastosaldoa aina, kun tuote myydään.
Simuloidaan varastossa olevien tuotteiden määrän seurantaa:
Ensimmäisellä komennon kutsulla arvo vähenee arvoon -1. Jokainen seuraava kutsu vähentää arvoa yhdellä 1 (arvoihin -2, -3 ja niin edelleen).
Jos täytyy vähentää arvoa saman avaimen kohdalla useita kertoja, voidaan käyttää DECRBY komentoa ja määrittää, kuinka paljon halutaan vähentää arvoa.
Tässä esimerkissä DECRBY komento vähentää product:count avaimen arvoa 3:lla. Jos alkuarvo oli 10, se muuttuu 7 komennon suorittamisen jälkeen.
1. Mitä INCR-komento tekee Redisissä?
2. Mitä tapahtuu, jos avainta ei ole olemassa, kun käytät INCR- tai DECR-komentoa?
3. Mitä tapahtuu, jos avaimen arvo ei ole numeerinen ja käytät INCR- tai DECR-komentoa?
Kiitos palautteestasi!
Kysy tekoälyä
Kysy tekoälyä
Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme
What happens if I use INCR or DECR on a key that already has a non-numeric value?
Can I use these commands with floating point numbers?
Are there any limits to how large or small the values can get with INCR and DECR?
Mahtavaa!
Completion arvosana parantunut arvoon 3.33
INCR- ja DECR-Komennot
Pyyhkäise näyttääksesi valikon
Nämä toiminnot ovat atomisia, eli ne suoritetaan joko kokonaan tai eivät ollenkaan, mikä varmistaa datan eheyden myös silloin, kun useat prosessit käyttävät Redis-tietokantaa samanaikaisesti.
INCR-komento
INCR-komento kasvattaa numeerista arvoa yhdellä. Se on erityisen hyödyllinen esimerkiksi sivulatausten laskemiseen tai tykkäysten määrän seuraamiseen.
Simuloidaan tilannetta, jossa seurataan verkkosivun katselukertojen määrää:
Jos avainta ei ole olemassa, Redis luo sen ja asettaa sen arvoksi 1. Jokainen seuraava komennon kutsu kasvattaa arvoa 1, jolloin laskuri päivittyy arvoihin 2, 3 ja niin edelleen.
Jos sinun täytyy kasvattaa saman avaimen arvoa useita kertoja, voit käyttää INCRBY-komentoa ja määrittää, kuinka paljon haluat lisätä arvoa.
Tässä esimerkissä INCRBY-komento kasvattaa page:main-avaimen arvoa 5:llä. Jos alkuarvo oli 0, se on 5 komennon suorittamisen jälkeen.
DECR-komento
DECR-komento toimii samalla tavalla kuin INCR, mutta se vähentää arvoa yhdellä. Tämä on hyödyllistä esimerkiksi varastoseurannassa, kun täytyy vähentää varastosaldoa aina, kun tuote myydään.
Simuloidaan varastossa olevien tuotteiden määrän seurantaa:
Ensimmäisellä komennon kutsulla arvo vähenee arvoon -1. Jokainen seuraava kutsu vähentää arvoa yhdellä 1 (arvoihin -2, -3 ja niin edelleen).
Jos täytyy vähentää arvoa saman avaimen kohdalla useita kertoja, voidaan käyttää DECRBY komentoa ja määrittää, kuinka paljon halutaan vähentää arvoa.
Tässä esimerkissä DECRBY komento vähentää product:count avaimen arvoa 3:lla. Jos alkuarvo oli 10, se muuttuu 7 komennon suorittamisen jälkeen.
1. Mitä INCR-komento tekee Redisissä?
2. Mitä tapahtuu, jos avainta ei ole olemassa, kun käytät INCR- tai DECR-komentoa?
3. Mitä tapahtuu, jos avaimen arvo ei ole numeerinen ja käytät INCR- tai DECR-komentoa?
Kiitos palautteestasi!