What is the SCAN

Syntax

  • μ»€λ§¨λ“œ μ‹€ν–‰μ—” O(1), κ°€μ Έμ˜¨ 킀듀을 μˆœν™˜ μ‹œν‚€λŠ” λ°λŠ” O(N)

  • μ΅œκ·Όμ— λ ˆλ””μŠ€μ—μ„œ μ„ νƒλœ 킀듀을 μˆœν™˜ μ‹œν‚€λŠ” μ»€λ§¨λ“œ.

    • κΈ°λ³Έ 10κ°œμ”© μ‘°νšŒν•¨.

  • cursor based iterator

    • scan 0 curosr 값이 0인 κ³³ λΆ€ν„° μˆœνšŒν•˜λ„λ‘ ν•˜λŠ” λͺ…λ Ήμ–΄, λ¦¬ν„΄κ°’μœΌλ‘œ λ‹€μŒ cursor 값이 λ°˜ν™˜λ¨.

    • λ§Œμ•½μ— λ°˜ν™˜λœ 값이 0 이면, μˆœνšŒκ°€ μ’…λ£Œλ˜μ—ˆλ‹€λŠ” μ˜λ―Έμž„.

  • λ™μž‘ λ°©μ‹μœΌλ‘œ λ³΄μ•˜μ„ λ•Œ, KEYS 와 λ™μΌν•œ λ™μž‘μ„ ν•˜λŠ”κ²Œ μ•„λ‹κΉŒ?

    • 그렇진 μ•Šκ³ , μ•„λ§ˆλ„ Bucket을 ν•˜λ‚˜μ”© κ°€μ Έμ˜€λŠ” λ°©μ‹μœΌλ‘œ λ™μž‘ν•˜λŠ”λ“―

  • match μ˜΅μ…˜μ„ 톡해 λΌλŠ” νŠΉμ • νŒ¨ν„΄μ„ λ§€μΉ˜ν•˜λŠ” ν‚€λ₯Ό 골라낼 수 μžˆμ„λ“―.

    • match μ˜΅μ…˜μ€ elements듀이 scan 톡해 λ°˜ν™˜λœ 후에 적용이 됨.

    • 즉 ν•΄λ‹Ή νŒ¨ν„΄μ— λ§žλŠ” elementκ°€ μ—†λ‹€λ©΄, λ°˜ν™˜λœ 킀듀이 없을 μˆ˜λ„ 있음 (empty list or set)

SCAN and DEL

  • redis-cli 이용

redis-cli --scan --pattern users:* | xargs redis-cli del

References

  • https://redis.io/commands/scan/

Last updated