μ΄λ² ν¬μ€ν μμλ κ°λ΅νκ² λ λμ€μ μ΄λ ν νμ μ΄ μκ³ μ΄λ€ λͺ λ Ήμ΄λ‘ ν΄λΉ νμ μ κ°μ μΆκ° λλ μ‘°ννλ μ§ λ±μ μμ λ₯Ό 보μ¬λ릴 κ²λλ€.
λ λμ€λ String, Hash, List, Set, Sorted Set λ±μ λ°μ΄ν° νμ μ μ§μν©λλ€.
Strings (μ€νΈλ§)
λ λμ€ μ€νΈλ§μ μμ°¨μ μΈ λ°μ΄νΈλ€μ λλ€. λ λμ€μμ μ€νΈλ§μ binary safeνλ° μ΄κ²μ μ€νΈλ§μ΄ μμμλ κΈΈμ΄λ₯Ό κ°μ§κ³ μκ³ μ΄λ€ νΉλ³ν μ’ λ£λ¬Έμμ μν΄ μ’ λ£λμ§ μλ λ€λ κ²μ μλ―Έν©λλ€. λ°λΌμ, ν μ€νΈλ§λΉ μ΅λ 512MB κΈΈμ΄μ κ°μ μ μ₯ν μ μμ΅λλ€.
Example (μμ )
redis 127.0.0.1:6379> SET name "keichee" OK redis 127.0.0.1:6379> GET name "keichee"
μ μμ μμ μ¬μ©λ SETκ³Ό GETλͺ λ Ήμ΄λ λ°μ΄ν°λ₯Ό μ μ₯νκ±°λ μ‘°νν λ μ¬μ©λλ λͺ λ Ήμ΄μ λλ€.
κ·Έλ¦¬κ³ nameμ λ λμ€μ μ μ₯ν λ ν€ κ°μ μλ―Ένλ©° "keichee"λ nameμ΄λΌλ ν€μ λμν΄μ μ μ₯λ κ°μ μλ―Έν©λλ€.
Hashes (ν΄μ¬)
λ λμ€ ν΄μ¬λ ν€-κ° νμ΄μ 컬λ μ μ λλ€. μ€νΈλ§ νλμ μ€νΈλ§ κ°μ 맀νν΄μ£ΌκΈ° λλ¬Έμ κ°μ²΄λ₯Ό ννν λ μμ£Ό μ¬μ©λ©λλ€.
Example
redis 127.0.0.1:6379> HMSET user:1 wow awesome keichee handsome blah handsome OK redis 127.0.0.1:6379> HGETALL user:1 1) "wow" 2) "awesome" 3) "keichee" 4) "handsome" 5) "blah" 6) "handsome"
μ μμ μμ user:1 μ΄λΌλ ν€μ wow, awesome, keichee, handsome, blah, handsome μ΄λΌλ κ°μ μΈν νκ³ μμ΅λλ€. μ¬κΈ°μ HMSETμ ν΄μ¬μ μ μ₯ν λ, HGETALL μ ν΄μ¬μ μ μ₯λ λ°μ΄ν°λ₯Ό μ‘°νν λ μ¬μ©λλ λͺ λ Ήμ΄μ λλ€.
ν΄μ¬μ μ μ₯ν μ μλ ν€-κ° νμ΄μ κ°μλ μ΄ (2^32) - 1 κ° μ λλ€.
Lists (리μ€νΈ)
리μ€νΈλ λͺ©λ‘ννμ λ°μ΄ν° νμ μ λ§ν©λλ€. μ€νΈλ§ λͺ©λ‘μ λ§νλ©° μ½μ ν μμλλ‘ μ λ ¬λμ΄ μ μ₯λ©λλ€.
λ λμ€ λ¦¬μ€νΈλ μ μΌ μμ μΆκ°νλ κ²κ³Ό μ μΌ λ§μ§λ§μ μΆκ°νλ λͺ λ Ήμ΄κ° μμ΅λλ€..
Example
redis 127.0.0.1:6379> lpush dblist redis (integer) 1 redis 127.0.0.1:6379> lpush dblist mongodb
(integer) 2 redis 127.0.0.1:6379> lpush dblist rabitmq
(integer) 3 redis 127.0.0.1:6379> lrange dblist 0 10
1) "rabitmq" 2) "mongodb" 3) "redis"
리μ€νΈμ μ΅λ κΈΈμ΄λ (2^32) - 1 κ° μ λλ€. (μ΄ 4294967295 κ°).
lpushλ 리μ€νΈμ μ μΌ μμ λ°μ΄ν°λ₯Ό μΆκ°νκ³ μ ν λ μ¬μ©νλ λͺ λ Ήμ΄μ λλ€.
lpush dblist redis λͺ λ Ήμ΄λ dblistλΌλ μ΄λ¦μ 리μ€νΈμ redisλΌλ κ°μ μ μ₯νλΌλ κ²μ μλ―Έν©λλ€.
μ μμ μμλ redis, mongodb, rabitmqλ₯Ό dblistλΌλ 리μ€νΈμ μ μ₯ν λ€ lrange λͺ λ Ήμ΄λ₯Ό μ΄μ©νμ¬ 0λΆν° 10κΉμ§μ λ°μ΄ν°λ₯Ό μ‘°ννκ³ μμ΅λλ€.
Sets (μ§ν©)
λ λμ€μμ μ§ν©μ μ λ ¬λμ§ μμ μ€νΈλ§ λͺ©λ‘μ λ§ν©λλ€.
μΈνΈλ μΆκ°, μμ , κ·Έλ¦¬κ³ μ‘΄μ¬μ¬λΆλ₯Ό νμΈνλ λͺ λ Ήμ΄λ₯Ό O(1) μκ°λ³΅μ‘λλ‘ μ 곡ν©λλ€.
Example
redis 127.0.0.1:6379> sadd dbset redis
(integer) 1 redis 127.0.0.1:6379> sadd dbset mongodb (integer) 1 redis 127.0.0.1:6379> sadd dbset rabitmq (integer) 1 redis 127.0.0.1:6379> sadd dbset rabitmq (integer) 0 redis 127.0.0.1:6379> smembers dbset 1) "rabitmq" 2) "mongodb" 3) "redis"
NOTE: μ μμ μμ rabitmqλ λ λ² μΆκ°κ° λμμ§λ§ μΈνΈμ κΈ°λ³Έ μμ±μΈ μ λν¬ μμ± λλ¬Έμ νλμ rabitmqλ§ μ μ₯λ©λλ€.
saddλ μ§ν©μ λ°μ΄ν°λ₯Ό μΆκ°ν λ μ°μ΄λ λͺ λ Ήμ΄μ΄λ©°, μ§ν©μ μ‘°νν λμλ smembers λͺ λ Ήμ΄λ₯Ό μ¬μ©νμλ©΄ λ©λλ€.
μ‘°νλλ λ°μ΄ν°λ μ§ν©μ μΆκ°λ μμμλ κ΄κ³μμ΄ λλ€νκ² μ‘°νκ° λ©λλ€. μ¦, μμλ₯Ό 보μ₯νμ§ μμ΅λλ€.
setμ μ μ₯ν μ μλ λ°μ΄ν° κ°μ μμ (2^32) - 1 κ°μ λλ€.
Sorted Sets (μ λ ¬ μ§ν©)
μ λ ¬λ μ§ν©μ λ§κ·Έλλ‘ μ§ν©μΈλ° μ λ ¬λ κ²μ λ§ν©λλ€. μ λν¬ μμ± μμ κ·Έλλ‘ κ°μ§κ³ μμΌλ©°. μΌλ° μ§ν©κ³Όμ μ°¨μ΄μ μ μ λ ¬μ μν score κ°μ κ°μ§κ³ μλ€λ κ²μ λλ€.
Example
redis 127.0.0.1:6379> zadd sorted 0 redis (integer) 1 redis 127.0.0.1:6379> zadd sorted 0 mongodb (integer) 1 redis 127.0.0.1:6379> zadd sorted 0 rabitmq (integer) 1 redis 127.0.0.1:6379> zadd sorted 0 rabitmq (integer) 0 redis 127.0.0.1:6379> ZRANGEBYSCORE sorted 0 1000 1) "redis" 2) "mongodb" 3) "rabitmq"
μ μμ μμ μ²λΌ μ λ ¬μ§ν©μ λ°μ΄ν°λ₯Ό λ£μλλ zadd λͺ λ Ήμ΄λ₯Ό μ¬μ©νλ©° μ§ν©λͺ λ€μμ score(μ μ)λ₯Ό λͺ μν΄μ£Όλλ°,
μ΄ μ μλ κ° λ°μ΄ν° λ§λ€ μ€λ³΅νμ¬ μ¬μ©λ μ μμΌλ©° μ€λ³΅λ μ μλ₯Ό κ°λ λ°μ΄ν°λ μ‘°ν μ μμκ° λ³΄μ₯λμ§ μμ΅λλ€.
ZRANGEBYSCORE λͺ λ Ήμ΄λ μ μλ₯Ό κΈ°μ€μΌλ‘ μ§ν©μ μ‘°ν νλΌλ μλ―Έμ λλ€.
μ΄ μΈμλ μ€νΈλ§ κΈ°λ°μ λΉνΈλ§΅(Bitmap)μ΄λ νμ΄νΌλ‘κ·Έλ‘κ·Έμ€(HyperLogLogs)μ κ°μ λ°μ΄ν° νμ λ μ§μνκ³ μμ΅λλ€.
μ΄λ¬ν νμ μ λν΄μ λ λμ€ κ³΅μ λ¬Έμμλ μλμ κ°μ΄ μ€λͺ μ νκ³ μμ΅λλ€.
- Bit arrays (or simply bitmaps): it is possible, using special commands, to handle String values like an array of bits: you can set and clear individual bits, count all the bits set to 1, find the first set or unset bit, and so forth.
- HyperLogLogs: this is a probabilistic data structure which is used in order to estimate the cardinality of a set. Don't be scared, it is simpler than it seems... See later in the HyperLogLog section of this tutorial.
ν΅κ³νμ λ°μ΄ν κ΅¬μ‘°λ‘ μ§ν©μ μΉ΄λλ 리ν°λ₯Ό μΈ‘μ νκΈ° μν΄μ μ¬μ©λλ€κ³ ν©λλ€. μκ°λ³΄λ€ μ¬μ°λκΉ μ¬μ©νκΈ°λ₯Ό λλ €μνμ§ λ§λΌκ³ νλ€μ γ γ
μμΈν λ΄μ©μ κ°κ°μ λ°μ΄ν° νμ μ λν κ°λ³ ν¬μ€ν μμ νμΈνμκΈ° λ°λλλ€. ^-^
μ΄μ μΌμ΄μΉμμ΅λλ€.
μ¦κ²κ³ ν볡ν ν루 λμΈμ~
'π» Programming' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[Redis] λ λμ€ λ°μ΄ν νμ λ³ λͺ λ Ήμ΄ #1 - String νΈ (0) | 2016.06.18 |
---|---|
[Redis] λ λμ€ ν€μ κ΄λ ¨ λͺ λ Ήμ΄ (0) | 2016.06.18 |
[Redis] λ λμ€ μμνκΈ° (μ€μΉνκΈ°) (0) | 2016.06.17 |
The superclass βjavax.servlet.http.HttpServletβ was not found on the Java Build Path (0) | 2016.06.12 |
[Android/μλλ‘μ΄λ] Fragment μ¬μ©νκΈ° (0) | 2015.08.15 |