ΠΠΈΠΊΠΎΡΠΈΡΡΠ°Π½Π½Ρ ΠΊΠΎΠΌΠ°Π½Π΄ ΡΠΊΠ°Π½ΡΠ²Π°Π½Π½Ρ Π² Redis Π½Π° Linux
Redis, ΡΡ ΠΎΠ²ΠΈΡΠ΅ ΡΡΡΡΠΊΡΡΡ Π΄Π°Π½ΠΈΡ Ρ ΠΏΠ°ΠΌ’ΡΡΡ Π· Π²ΡΠ΄ΠΊΡΠΈΡΠΈΠΌ Π²ΠΈΡ ΡΠ΄Π½ΠΈΠΌ ΠΊΠΎΠ΄ΠΎΠΌ, Π²ΡΠ΄ΠΎΠΌΠ΅ ΡΠ²ΠΎΡΡ ΡΠ²ΠΈΠ΄ΠΊΡΡΡΡ ΡΠ° ΡΠ½ΡΠ²Π΅ΡΡΠ°Π»ΡΠ½ΡΡΡΡ ΡΠΊ Π±Π°Π·Π° Π΄Π°Π½ΠΈΡ ΡΠΈΠΏΡ “ΠΊΠ»ΡΡ-Π·Π½Π°ΡΠ΅Π½Π½Ρ”. ΠΠ΄Π½ΡΡΡ Π· ΠΉΠΎΠ³ΠΎ ΠΏΠΎΡΡΠΆΠ½ΠΈΡ ΡΡΠ½ΠΊΡΡΠΉ Ρ ΠΌΠΎΠΆΠ»ΠΈΠ²ΡΡΡΡ ΡΠ½ΠΊΡΠ΅ΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΡΠ΅ΡΠ°ΡΡΠΉΠ½ΠΎΠ³ΠΎ ΠΏΠ΅ΡΠ΅Π³Π»ΡΠ΄Ρ Π½Π°Π±ΠΎΡΡΠ² Π΄Π°Π½ΠΈΡ Π·Π° Π΄ΠΎΠΏΠΎΠΌΠΎΠ³ΠΎΡ ΠΊΠΎΠΌΠ°Π½Π΄ ΡΠΊΠ°Π½ΡΠ²Π°Π½Π½Ρ. Π¦Π΅ ΠΎΡΠΎΠ±Π»ΠΈΠ²ΠΎ ΠΊΠΎΡΠΈΡΠ½ΠΎ ΠΏΡΠΈ ΡΠΎΠ±ΠΎΡΡ Π· Π²Π΅Π»ΠΈΠΊΠΈΠΌΠΈ Π½Π°Π±ΠΎΡΠ°ΠΌΠΈ Π΄Π°Π½ΠΈΡ , ΠΎΡΠΊΡΠ»ΡΠΊΠΈ Π΄ΠΎΠ·Π²ΠΎΠ»ΡΡ Π΅ΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ ΡΡΠΊΠ°ΡΠΈ Π΄Π°Π½Ρ, Π½Π΅ ΠΏΠ΅ΡΠ΅Π²Π°Π½ΡΠ°ΠΆΡΡΡΠΈ ΡΠ΅ΡΠ²Π΅Ρ. ΠΠ»Ρ ΠΊΠΎΡΠΈΡΡΡΠ²Π°ΡΡΠ² Π½Π° Π²ΠΈΠ΄ΡΠ»Π΅Π½ΠΎΠΌΡ ΡΠ΅ΡΠ²Π΅ΡΡ Linux Π²ΠΈΠΊΠΎΡΠΈΡΡΠ°Π½Π½Ρ ΠΊΠΎΠΌΠ°Π½Π΄ ΡΠΊΠ°Π½ΡΠ²Π°Π½Π½Ρ Π² Redis ΠΌΠΎΠΆΠ΅ ΠΏΡΠ΄Π²ΠΈΡΠΈΡΠΈ ΠΏΡΠΎΠ΄ΡΠΊΡΠΈΠ²Π½ΡΡΡΡ ΡΠΎΠ±ΠΎΡΠΈ Π· Π΄Π°Π½ΠΈΠΌΠΈ Π·Π° ΡΠ°Ρ ΡΠ½ΠΎΠΊ ΡΠΎΡΠ½ΠΎΡ, ΠΎΠΏΡΠΈΠΌΡΠ·ΠΎΠ²Π°Π½ΠΎΡ Π΄Π»Ρ ΡΠ΅ΡΡΡΡΡΠ² ΠΎΠ±ΡΠΎΠ±ΠΊΠΈ Π½Π°Π±ΠΎΡΡΠ² Π΄Π°Π½ΠΈΡ . Π£ ΡΡΠΉ ΡΡΠ°ΡΡΡ ΠΌΠΈ ΡΠΎΠ·Π³Π»ΡΠ½Π΅ΠΌΠΎ, ΡΠΊ Π΅ΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ Π²ΠΈΠΊΠΎΡΠΈΡΡΠΎΠ²ΡΠ²Π°ΡΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ ΡΠΊΠ°Π½ΡΠ²Π°Π½Π½Ρ Π² Redis Π² ΡΠ΅ΡΠ΅Π΄ΠΎΠ²ΠΈΡΡ Linux, ΠΏΡΠΎΠΏΠΎΠ½ΡΡΡΠΈ Π΄Π΅ΡΠ°Π»ΡΠ½Ρ ΠΏΡΠΈΠΊΠ»Π°Π΄ΠΈ Ρ ΠΊΡΠ°ΡΡ ΠΏΡΠ°ΠΊΡΠΈΠΊΠΈ Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»ΡΠ½Π½Ρ Ρ ΠΏΠΎΡΡΠΊΡ Π΄Π°Π½ΠΈΡ Π² ΠΌΠ°ΡΡΡΠ°Π±Ρ..
Π©ΠΎ ΡΠ°ΠΊΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ ΡΠΊΠ°Π½ΡΠ²Π°Π½Π½Ρ?
ΠΠΎΠΌΠ°Π½Π΄ΠΈ ΡΠΊΠ°Π½ΡΠ²Π°Π½Π½Ρ Ρ Redis Π½Π°Π΄Π°ΡΡΡ ΡΠΏΠΎΡΡΠ± ΡΡΠ΅ΡΠ°ΡΡΡ Π½Π°Π΄ ΠΊΠ»ΡΡΠ°ΠΌΠΈ, Π½Π°Π±ΠΎΡΠ°ΠΌΠΈ, Ρ Π΅ΡΠ°ΠΌΠΈ ΡΠ° Π²ΡΠ΄ΡΠΎΡΡΠΎΠ²Π°Π½ΠΈΠΌΠΈ Π½Π°Π±ΠΎΡΠ°ΠΌΠΈ Ρ Π½Π΅Π±Π»ΠΎΠΊΡΡΡΠΈΠΉ ΡΠΏΠΎΡΡΠ±. ΠΠ° Π²ΡΠ΄ΠΌΡΠ½Ρ Π²ΡΠ΄ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ KEYS, ΡΠΊΠ° ΠΌΠΎΠΆΠ΅ Π±ΡΡΠΈ Π½Π΅Π±Π΅Π·ΠΏΠ΅ΡΠ½ΠΎΡ Π΄Π»Ρ Π²Π΅Π»ΠΈΠΊΠΈΡ Π½Π°Π±ΠΎΡΡΠ² Π΄Π°Π½ΠΈΡ , ΠΎΡΠΊΡΠ»ΡΠΊΠΈ ΠΏΠΎΠ²Π΅ΡΡΠ°Ρ Π²ΡΡ Π²ΡΠ΄ΠΏΠΎΠ²ΡΠ΄Π½Ρ ΠΊΠ»ΡΡΡ ΠΎΠ΄ΡΠ°Π·Ρ, ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ ΡΠΊΠ°Π½ΡΠ²Π°Π½Π½Ρ ΠΏΠΎΠ²Π΅ΡΡΠ°ΡΡΡ Π½Π΅Π²Π΅Π»ΠΈΠΊΡ ΠΊΡΠ»ΡΠΊΡΡΡΡ Π΅Π»Π΅ΠΌΠ΅Π½ΡΡΠ² Π·Π° ΡΠ°Π·. Π¦Π΅ ΠΌΡΠ½ΡΠΌΡΠ·ΡΡ Π²ΠΏΠ»ΠΈΠ² Π½Π° ΠΏΡΠΎΠ΄ΡΠΊΡΠΈΠ²Π½ΡΡΡΡ Ρ Π΄ΠΎΠ·Π²ΠΎΠ»ΡΡ Π²ΠΈΠΊΠΎΠ½ΡΠ²Π°ΡΠΈ ΡΠ½ΠΊΡΠ΅ΠΌΠ΅Π½ΡΠ½Ρ ΡΡΠ΅ΡΠ°ΡΡΡ
ΠΠΎΠΌΠ°Π½Π΄ΠΈ ΡΠΊΠ°Π½ΡΠ²Π°Π½Π½Ρ ΠΊΠ»ΡΡΡΠ²
- SCAN: ΠΠ΅ΡΠ΅Π±ΠΈΡΠ°Ρ ΠΊΠ»ΡΡΡ Ρ ΠΏΡΠΎΡΡΠΎΡΡ ΠΊΠ»ΡΡΡΠ².
- SSCAN: ΠΠ΅ΡΠ΅Π±ΠΈΡΠ°Ρ Π΅Π»Π΅ΠΌΠ΅Π½ΡΠΈ Ρ Π½Π°Π±ΠΎΡΡ.
- HSCAN: ΠΠ΅ΡΠ΅Π±ΡΡ ΠΏΠΎΠ»ΡΠ² Ρ Π·Π½Π°ΡΠ΅Π½Ρ Ρ Ρ Π΅ΡΡ.
- ZSCAN: ΠΠ΅ΡΠ΅Π±ΠΈΡΠ°Ρ ΡΠ»Π΅Π½ΠΈ ΡΠ° ΠΎΡΡΠ½ΠΊΠΈ Ρ Π²ΡΠ΄ΡΠΎΡΡΠΎΠ²Π°Π½ΠΎΠΌΡ Π½Π°Π±ΠΎΡΡ.
ΠΠ°Π·ΠΎΠ²ΠΈΠΉ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄ ΡΠΊΠ°Π½ΡΠ²Π°Π½Π½Ρ
ΠΠΎΠΆΠ½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° ΡΠΊΠ°Π½ΡΠ²Π°Π½Π½Ρ ΠΌΠ°Ρ ΡΡ ΠΎΠΆΠΈΠΉ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ
- ΠΊΡΡΡΠΎΡ: Π¦ΡΠ»Π΅ ΡΠΈΡΠ»ΠΎ, ΡΠΊΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡ ΠΏΠΎΠ·ΠΈΡΡΡ, Π· ΡΠΊΠΎΡ ΡΠ»ΡΠ΄ ΠΏΠΎΡΠ°ΡΠΈ ΡΠΊΠ°Π½ΡΠ²Π°Π½Π½Ρ. Π©ΠΎΠ± ΠΏΠΎΡΠ°ΡΠΈ Π½ΠΎΠ²Π΅ ΡΠΊΠ°Π½ΡΠ²Π°Π½Π½Ρ, Π²ΠΈΠΊΠΎΡΠΈΡΡΠΎΠ²ΡΠΉΡΠ΅ 0.
- Π¨Π°Π±Π»ΠΎΠ½ Π·Π±ΡΠ³Ρ: (Π½Π΅ΠΎΠ±ΠΎΠ²’ΡΠ·ΠΊΠΎΠ²ΠΎ) Π¨Π°Π±Π»ΠΎΠ½ Π΄Π»Ρ ΡΡΠ»ΡΡΡΠ°ΡΡΡ ΠΏΠΎΠ²Π΅ΡΠ½Π΅Π½ΠΈΡ ΠΊΠ»ΡΡΡΠ². ΠΡΠ΄ΡΡΠΈΠΌΡΡ ΡΠ°Π±Π»ΠΎΠ½ΠΈ Ρ ΡΡΠΈΠ»Ρ glob.
- COUNT ΠΊΡΠ»ΡΠΊΡΡΡΡ: (Π½Π΅ΠΎΠ±ΠΎΠ²’ΡΠ·ΠΊΠΎΠ²ΠΎ) ΠΡΠ΄ΠΊΠ°Π·ΠΊΠ° Redis ΠΏΡΠΎ ΡΠ΅, ΡΠΊΡΠ»ΡΠΊΠΈ Π΅Π»Π΅ΠΌΠ΅Π½ΡΡΠ² ΠΏΠΎΠ²Π΅ΡΡΠ°ΡΠΈ Π² ΠΊΠΎΠΆΠ½ΡΠΉ ΡΡΠ΅ΡΠ°ΡΡΡ.
ΠΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½Ρ Redis Ρ Linux
ΠΠ»Ρ CentOS/RHEL Π²ΠΈΠΊΠΎΡΠΈΡΡΠΎΠ²ΡΠΉΡΠ΅
ΠΡΡΠ»Ρ Π²ΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½Ρ Π·Π°ΠΏΡΡΡΡΡΡ ΡΠ΅ΡΠ²Π΅Ρ Redis
ΠΡΠ΄ΠΊΠ»ΡΡΠ΅Π½Π½Ρ Π΄ΠΎ Redis
ΠΡΠ΄ΠΊΡΠΈΠΉΡΠ΅ ΡΠ΅ΡΠΌΡΠ½Π°Π» Ρ ΠΏΡΠ΄ΠΊΠ»ΡΡΡΡΡΡΡ Π΄ΠΎ Π²Π°ΡΠΎΠ³ΠΎ Π΅ΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ° Redis Π·Π° Π΄ΠΎΠΏΠΎΠΌΠΎΠ³ΠΎΡ Redis CLI
Π’Π΅ΠΏΠ΅Ρ Π²ΠΈ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΠΈΠΊΠΎΠ½ΡΠ²Π°ΡΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ Redis Π² CLI
ΠΠΈΠΊΠΎΡΠΈΡΡΠ°Π½Π½Ρ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ SCAN
ΠΡΠΈΠΊΠ»Π°Π΄ 1: ΠΠ°Π·ΠΎΠ²Π΅ ΡΠΊΠ°Π½ΡΠ²Π°Π½Π½Ρ
Π©ΠΎΠ± ΠΎΡΡΠΈΠΌΠ°ΡΠΈ Π²ΡΡ ΠΊΠ»ΡΡΡ Π² Π±Π°Π·Ρ Π΄Π°Π½ΠΈΡ Redis, Π²ΠΈ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΠΈΠΊΠΎΡΠΈΡΡΠΎΠ²ΡΠ²Π°ΡΠΈ
Π¦Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΏΠΎΠ²Π΅ΡΠ½Π΅ ΠΊΡΡΡΠΎΡ Ρ ΡΠΏΠΈΡΠΎΠΊ ΠΊΠ»ΡΡΡΠ²
ΠΡΠΈΠΊΠ»Π°Π΄ 2: ΠΠΈΠΊΠΎΡΠΈΡΡΠ°Π½Π½Ρ MATCH Π΄Π»Ρ ΡΡΠ»ΡΡΡΠ°ΡΡΡ ΠΊΠ»ΡΡΡΠ²
Π―ΠΊΡΠΎ Π²ΠΈ Ρ ΠΎΡΠ΅ΡΠ΅ Π·Π½Π°ΠΉΡΠΈ ΠΊΠ»ΡΡΡ, ΡΠΊΡ Π²ΡΠ΄ΠΏΠΎΠ²ΡΠ΄Π°ΡΡΡ ΠΏΠ΅Π²Π½ΠΎΠΌΡ ΡΠ°Π±Π»ΠΎΠ½Ρ, Π½Π°ΠΏΡΠΈΠΊΠ»Π°Π΄, ΠΊΠ»ΡΡΡ, ΡΠΎ ΠΏΠΎΡΠΈΠ½Π°ΡΡΡΡΡ Π· “user:”, Π²ΠΈ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΠΈΠΊΠΎΡΠΈΡΡΠ°ΡΠΈ
Π¦Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΏΠΎΠ²Π΅ΡΡΠ°Ρ ΡΡΠ»ΡΠΊΠΈ ΠΊΠ»ΡΡΡ, ΡΠΊΡ ΠΏΠΎΡΠΈΠ½Π°ΡΡΡΡΡ Π· “user:”
ΠΡΠΈΠΊΠ»Π°Π΄ 3: ΠΠΊΠ°Π·ΡΠ²ΠΊΠ° COUNT
Π©ΠΎΠ± ΠΏΡΠ΄ΠΊΠ°Π·Π°ΡΠΈ, ΡΠΊΡΠ»ΡΠΊΠΈ ΠΊΠ»ΡΡΡΠ² Redis ΠΌΠ°Ρ ΠΏΠΎΠ²Π΅ΡΡΠ°ΡΠΈ Π² ΠΊΠΎΠΆΠ½ΡΠΉ ΡΡΠ΅ΡΠ°ΡΡΡ, Π²ΠΈ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΠΊΠ°Π·Π°ΡΠΈ Π»ΡΡΠΈΠ»ΡΠ½ΠΈΠΊ
Π¦Π΅ Π±ΡΠ΄Π΅ ΡΠΏΡΠΎΠ±Π° ΠΏΠΎΠ²Π΅ΡΠ½ΡΡΠΈ ΠΏΡΠΈΠ±Π»ΠΈΠ·Π½ΠΎ 10 ΠΊΠ»ΡΡΡΠ². ΠΠ°ΡΠ²Π°ΠΆΡΠ΅, ΡΠΎ ΡΠ°ΠΊΡΠΈΡΠ½Π° ΠΊΡΠ»ΡΠΊΡΡΡΡ ΠΏΠΎΠ²Π΅ΡΠ½Π΅Π½ΠΈΡ ΠΊΠ»ΡΡΡΠ² ΠΌΠΎΠΆΠ΅ Π±ΡΡΠΈ ΠΌΠ΅Π½ΡΠΎΡ
ΠΡΠΈΠΊΠ»Π°Π΄ 4: ΠΠ΅ΡΠ΅Π±ΡΡ ΡΡΡΡ ΠΊΠ»ΡΡΡΠ²
Π©ΠΎΠ± ΠΏΠ΅ΡΠ΅Π±ΡΠ°ΡΠΈ Π²ΡΡ ΠΊΠ»ΡΡΡ Π·Π° ΠΊΡΠ»ΡΠΊΠ° ΡΡΠ΅ΡΠ°ΡΡΠΉ, Π²Π°ΠΌ ΠΏΠΎΡΡΡΠ±Π½ΠΎ Π²ΡΠ΄ΡΡΠ΅ΠΆΡΠ²Π°ΡΠΈ ΠΊΡΡΡΠΎΡ, ΡΠΊΠΈΠΉ ΠΏΠΎΠ²Π΅ΡΡΠ°ΡΡΡΡΡ. ΠΡΡ ΠΏΡΠΎΡΡΠΈΠΉ ΠΏΡΠΈΠΊΠ»Π°Π΄ ΡΡΠ΅Π½Π°ΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠ³ΠΎ ΡΡΠ΄ΠΊΠ°:
cursor=0
while true; do
result=$(redis-cli SSCAN myset $cursor MATCH apple:*)
echo "$result" # Process the result as needed
cursor=$(echo "$result" | awk 'NR==1{print $1}') # Update the cursor
if [[ "$cursor" == "0" ]]; then
break Β # Stop when the cursor is back to 0
fi
doneΠΠΈΠΊΠΎΡΠΈΡΡΠ°Π½Π½Ρ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ SSCAN
ΠΠΎΠΌΠ°Π½Π΄Π° SSCAN Π²ΠΈΠΊΠΎΡΠΈΡΡΠΎΠ²ΡΡΡΡΡΡ Π΄Π»Ρ ΡΡΠ΅ΡΠ°ΡΡΠΉΠ½ΠΎΠ³ΠΎ ΠΏΠ΅ΡΠ΅Π±ΠΎΡΡ Π΅Π»Π΅ΠΌΠ΅Π½ΡΡΠ² Ρ ΠΌΠ½ΠΎΠΆΠΈΠ½Ρ. ΠΡ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ ΠΏΠΎΠ΄ΡΠ±Π½ΠΈΠΉ Π΄ΠΎ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΡ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ SCAN
ΠΡΠΈΠΊΠ»Π°Π΄ Π²ΠΈΠΊΠΎΡΠΈΡΡΠ°Π½Π½Ρ SSCAN
ΠΡΠΎΠΊ 1: Π‘ΡΠ²ΠΎΡΠ΅Π½Π½Ρ ΠΌΠ½ΠΎΠΆΠΈΠ½ΠΈ ΡΠ° Π΄ΠΎΠ΄Π°Π²Π°Π½Π½Ρ Π΅Π»Π΅ΠΌΠ΅Π½ΡΡΠ²
Π‘ΡΠ²ΠΎΡΠΈΠΌΠΎ ΠΌΠ½ΠΎΠΆΠΈΠ½Ρ Π· Π½Π°Π·Π²ΠΎΡ myset Ρ Π΄ΠΎΠ΄Π°ΠΌΠΎ Π΄ΠΎ Π½Π΅Ρ Π΄Π΅ΡΠΊΡ Π΅Π»Π΅ΠΌΠ΅Π½ΡΠΈ







