@Cacheable
์จ๋ณด๊ธฐ๐ก ๊ฐ์ด ๋ณด๋ฉด ์ข์ ๊ธ/์์
<key-value>
์์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ Dictionary ์๋ฃํ(Java์์๋ HashMap).: ์ธ๋ฉ๋ชจ๋ฆฌ ๋ฐ์ดํฐ ์ ์ฅ์
๐ค Q. ์ธ๋ฉ๋ชจ๋ฆฌ๊ฐ ๋ญ๊ฐ์?
A. ์ธ๋ฉ๋ชจ๋ฆฌ๋, ์ปดํจํฐ์ RAM(๋ฉ๋ชจ๋ฆฌ)์ ๋ฐ์ดํฐ๋ฅผ ์ฌ๋ ค์ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ผ๋ก, ๋น ๋ฅธ ์๋๊ฐ ์ฅ์ ์ ๋๋ค. SSD๋ HDD์ ์ ์ฅ๋ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ค๋ ๊ฒ๋ณด๋ค, RAM์ ์ ์ฅ๋ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ค๋๊ฒ ์์ญ์์ ์๋ฐฑ๋ฐฐ๋ ๋น ๋ฅด๋ค๊ณ ํ๋ค์~
ํ์ง๋ง, RAM(๋ฉ๋ชจ๋ฆฌ)์ ์ฉ๋์ SSD๋ HDD๋ณด๋ค ํจ์ฌ ์ ๋ค๋ ์น๋ช ์ ์ธ ๋จ์ ์ด ์์ต๋๋ค.
๋ฐ์ดํฐํ์ | ์ ์ฅ ํํ | ||
---|---|---|---|
String | key | - | value |
List | key | - | value1, value2, โฆ |
Set | key | - | value1, value2, โฆ |
Sorted Set | key | member | value |
Hash | key | field | value |
(๊ทธ ์ธ์ ๋ ์์!) |
๊ทธ ์ธ: Bitmap, HyperLogLog, Streamโฆ
์บ์๋ ์์ฃผ ์ฌ์ฉํ๋ ๋ฐ์ดํฐ๋ ๊ฐ์ ๋ฏธ๋ฆฌ ๋ณต์ฌํด ๋๋ ๊ฒ์ ๋งํฉ๋๋ค.
Redis ์๋ฒ๋ ์ฑ๊ธ ์ค๋ ๋(singleย thread)๋ก ์ํ๋๊ธฐ ๋๋ฌธ์, ๋ช ๋ น์ ๋์์ ์ฒ๋ฆฌํ ์ ์์ต๋๋ค!
โ Queue์ฒ๋ผ ๋ช
๋ น1-๋ช
๋ น2-๋ช
๋ น3-โฆ
ํํ๋ก ๋ช
๋ น์ ์ฒ๋ฆฌํ๋ค๊ณ ํ๋ค์
โ ๊ทธ๋์ ์๊ฐ๋ณต์ก๋๊ฐ O(N)์ธ ๋ช ๋ น์ด ์ฌ์ฉ์ ์ต๋ํ ์ง์ํด์ผํฉ๋๋ค
> keys *
, ๋ฐ์ดํฐ ์ ์ฒด ์ญ์ > flushall
๋ฑ์ฑ๊ธ ์ค๋ ๋์ธ๊ฒ ๋ฌด์กฐ๊ฑด ๋จ์ ์ ์๋๊ณ โฆ
redis 127.0.0.1:6379> auth {๋น๋ฐ๋ฒํธ}
(error) ERR Client sent AUTH, but no password is set
redis 127.0.0.1:6379> **CONFIG SET requirepass {๋น๋ฐ๋ฒํธ}**
OK
redis 127.0.0.1:6379> auth {๋น๋ฐ๋ฒํธ}
OK
#mysql
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.jpa.hibernate.ddl-auto=update
spring.jpa.properties.hibernate.show_sql=true
spring.jpa.properties.hibernate.format_sql=true
spring.jpa.properties.hibernate.use_sql_comments=true
**spring.datasource.url=jdbc:mysql://localhost:3306/{๋ฐ์ดํฐ๋ฒ ์ด์ค}?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Seoul
spring.datasource.username=root**
**spring.datasource.password={๋น๋ฐ๋ฒํธ}**
spring.jpa.database=mysql
#redis
spring.data.redis.lettuce.pool.max-active=10
spring.data.redis.lettuce.pool.max-idle=10
spring.data.redis.lettuce.pool.min-idle=2
**spring.data.redis.host={host}
spring.data.redis.port={port}
spring.data.redis.password={๋น๋ฐ๋ฒํธ}**
๋ณ์ | ๊ธฐ๋ณธ๊ฐ | ์ค๋ช |
---|---|---|
spring.data.redis.port | 6379 | ์๋ฒ ํฌํธ |
spring.data.redis.host | localhost | ์๋ฒ ํธ์คํธ |
spring.data.redis.password | ์๋ฒ ๋ก๊ทธ์ธ ํจ์ค์๋ | |
spring.data.redis.pool.max-active | 8 | pool์ ํ ๋น๋ ์ ์๋ ์ปค๋ฅ์ ์ต๋์ (์์๋ก ํ๋ฉด ๋ฌด์ ํ) |
spring.data.redis.pool.max-idle | 8 | pool์ "idle" ์ปค๋ฅ์ ์ต๋์ (์์๋ก ํ๋ฉด ๋ฌด์ ํ) |
spring.data.redis.pool.min-idle | 0 | ํ์์ ๊ด๋ฆฌํ๋ idle ์ปค๋ฅ์ ์ ์ต์์ ๋์ (์์์ผ ๋๋ง ์ ํจ) |
@Cacheable
annotation ์ถ๊ฐ