[Mac M1] Redis 설치 및 실행
Redis는 Key-Value형태의 값을 저장할 수 있는 NoSQL이면서 memcached와 마찬가지인 인메모리 데이터베이스이다.
매우 빠른 속도로 I/O 작업을 할 수 있고 다양한 자료구조를 지원한다.
저번에 homebrew를 설치했기 때문에 너무나 쉽고 간단하게 작업할 수가 있다.
1. brew install redis
➜ ~ brew install redis
==> Homebrew is run entirely by unpaid volunteers. Please consider donating:
https://github.com/Homebrew/brew#donations
Running `brew update --auto-update`...
==> Auto-updated Homebrew!
Updated 1 tap (homebrew/core).
==> Downloading https://ghcr.io/v2/homebrew/core/ca-certificates/manifests/2022-07-19_1
######################################################################## 100.0%
==> Downloading https://ghcr.io/v2/homebrew/core/ca-certificates/blobs/sha256:9e0df163364a5ae07f3ee2cf39083cd74bcb38
==> Downloading from https://pkg-containers.githubusercontent.com/ghcr1/blobs/sha256:9e0df163364a5ae07f3ee2cf39083cd
######################################################################## 100.0%
==> Downloading https://ghcr.io/v2/homebrew/core/openssl/1.1/manifests/1.1.1q
######################################################################## 100.0%
==> Downloading https://ghcr.io/v2/homebrew/core/openssl/1.1/blobs/sha256:4e7b6cb2252c554a8e25ecae960f2fcd9a7fa742aa
==> Downloading from https://pkg-containers.githubusercontent.com/ghcr1/blobs/sha256:4e7b6cb2252c554a8e25ecae960f2fc
######################################################################## 100.0%
==> Downloading https://ghcr.io/v2/homebrew/core/redis/manifests/7.0.4
######################################################################## 100.0%
==> Downloading https://ghcr.io/v2/homebrew/core/redis/blobs/sha256:5fd4a4cdd769fdebc82dc5ea1b06edb2464039b38c09355f
==> Downloading from https://pkg-containers.githubusercontent.com/ghcr1/blobs/sha256:5fd4a4cdd769fdebc82dc5ea1b06edb
######################################################################## 100.0%
==> Installing dependencies for redis: ca-certificates and openssl@1.1
==> Installing redis dependency: ca-certificates
==> Pouring ca-certificates--2022-07-19_1.all.bottle.tar.gz
==> Regenerating CA certificate bundle from keychain, this may take a while...
🍺 /opt/homebrew/Cellar/ca-certificates/2022-07-19_1: 3 files, 222.6KB
==> Installing redis dependency: openssl@1.1
==> Pouring openssl@1.1--1.1.1q.arm64_monterey.bottle.tar.gz
🍺 /opt/homebrew/Cellar/openssl@1.1/1.1.1q: 8,097 files, 18MB
==> Installing redis
==> Pouring redis--7.0.4.arm64_monterey.bottle.tar.gz
==> Caveats
To restart redis after an upgrade:
brew services restart redis
Or, if you don't want/need a background service you can just run:
/opt/homebrew/opt/redis/bin/redis-server /opt/homebrew/etc/redis.conf
==> Summary
🍺 /opt/homebrew/Cellar/redis/7.0.4: 14 files, 2.6MB
==> Running `brew cleanup redis`...
Disable this behaviour by setting HOMEBREW_NO_INSTALL_CLEANUP.
Hide these hints with HOMEBREW_NO_ENV_HINTS (see `man brew`).
==> Caveats
==> redis
To restart redis after an upgrade:
brew services restart redis
Or, if you don't want/need a background service you can just run:
/opt/homebrew/opt/redis/bin/redis-server /opt/homebrew/etc/redis.conf
2. redis-server
➜ ~ redis-server
76063:C 04 Aug 2022 13:40:28.155 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
76063:C 04 Aug 2022 13:40:28.155 # Redis version=7.0.4, bits=64, commit=00000000, modified=0, pid=76063, just started
76063:C 04 Aug 2022 13:40:28.155 # Warning: no config file specified, using the default config. In order to specify a config file use redis-server /path/to/redis.conf
76063:M 04 Aug 2022 13:40:28.155 * Increased maximum number of open files to 10032 (it was originally set to 256).
76063:M 04 Aug 2022 13:40:28.155 * monotonic clock: POSIX clock_gettime
_._
_.-``__ ''-._
_.-`` `. `_. ''-._ Redis 7.0.4 (00000000/0) 64 bit
.-`` .-```. ```\/ _.,_ ''-._
( ' , .-` | `, ) Running in standalone mode
|`-._`-...-` __...-.``-._|'` _.-'| Port: 6379
| `-._ `._ / _.-' | PID: 76063
`-._ `-._ `-./ _.-' _.-'
|`-._`-._ `-.__.-' _.-'_.-'|
| `-._`-._ _.-'_.-' | https://redis.io
`-._ `-._`-.__.-'_.-' _.-'
|`-._`-._ `-.__.-' _.-'_.-'|
| `-._`-._ _.-'_.-' |
`-._ `-._`-.__.-'_.-' _.-'
`-._ `-.__.-' _.-'
`-._ _.-'
`-.__.-'
76063:M 04 Aug 2022 13:40:28.155 # WARNING: The TCP backlog setting of 511 cannot be enforced because kern.ipc.somaxconn is set to the lower value of 128.
76063:M 04 Aug 2022 13:40:28.155 # Server initialized
76063:M 04 Aug 2022 13:40:28.156 * Ready to accept connections
3. brew services start redis
➜ ~ brew services start redis
==> Tapping homebrew/services
Cloning into '/opt/homebrew/Library/Taps/homebrew/homebrew-services'...
remote: Enumerating objects: 2057, done.
remote: Counting objects: 100% (449/449), done.
remote: Compressing objects: 100% (102/102), done.
remote: Total 2057 (delta 380), reused 350 (delta 347), pack-reused 1608
Receiving objects: 100% (2057/2057), 557.41 KiB | 1.32 MiB/s, done.
Resolving deltas: 100% (951/951), done.
Tapped 1 command (45 files, 711.0KB).
==> Successfully started `redis` (label: homebrew.mxcl.redis)
4. redis-cli
➜ ~ redis-cli
127.0.0.1:6379>
5. set, get
redis는 set key value 문법으로 작성한다.
get key 명령어를 통해 저장된 value값을 가져온다.
127.0.0.1:6379> set key1 "hello Minggu"
OK
127.0.0.1:6379> get key1
"hello Minggu"
127.0.0.1:6379>
6. append
append key value는 기존에 저장된 value값 뒤에 문자열을 추가할 수 있다.
127.0.0.1:6379> set key2 "minggu"
OK
127.0.0.1:6379> get key2
"minggu"
127.0.0.1:6379> append key2 " is Developer"
(integer) 18
127.0.0.1:6379> get key2
"minggu is Developer"
127.0.0.1:6379>
7. Set
127.0.0.1:6379> smembers set:mingguSet
(empty array)
127.0.0.1:6379> sadd set:mingguSet minggu
(integer) 1
127.0.0.1:6379> sadd set:mingguSet like
(integer) 1
127.0.0.1:6379> sadd set:mingguSet pokemon
(integer) 1
127.0.0.1:6379> sadd set:mingguSet pokemon game
(integer) 1
127.0.0.1:6379> smembers set:mingguSet
1) "like"
2) "game"
3) "pokemon"
4) "minggu"
127.0.0.1:6379>
sadd 명령어를 통해 Set 자료구조를 이용할 수 있다.
중복을 허용하지 않는 Set 구조이기에 중간에 'pokemon'은 삭제되었다. 그리고 순서가 섞여 나온다는 것을 알 수 있다.
8. sortedSet
127.0.0.1:6379> zadd rank 1 A
(integer) 1
127.0.0.1:6379> zadd rank 1 B
(integer) 1
127.0.0.1:6379> zadd rank 1 C
(integer) 1
127.0.0.1:6379> zadd rank 1 D
(integer) 1
127.0.0.1:6379> zrange rank 0 -1
1) "A"
2) "B"
3) "C"
4) "D"
127.0.0.1:6379>
zadd 명령어를 통해 가중치 값을 지정할 수 있다.
zrange 명령어는 출력 범위를 지정한다. (-1이면 뒤에서부터 시작)
9. HashMap
127.0.0.1:6379> hset user name minggu
(integer) 1
127.0.0.1:6379> hset user age 15
(integer) 1
127.0.0.1:6379> hset user address "Seoul"
(integer) 1
127.0.0.1:6379> hgetall user
1) "name"
2) "minggu"
3) "age"
4) "15"
5) "address"
6) "Seoul"
127.0.0.1:6379>
hset 명령어를 통해 key - value값을 설정하고
hgetall {name}을 통해 값을 가져온다.
'Database' 카테고리의 다른 글
[MongoDB] Docker로 MongoDB 설치 (0) | 2023.07.28 |
---|---|
[Dbeaver] 기본 스키마 선택하기 (1) | 2022.08.18 |
[PostgreSQL] sql file import via Git Bash in Window OS (2) | 2022.07.11 |
[MSSQL & SQL Server] Dirty read, WITH (NOLOCK) (0) | 2022.06.09 |
[PostgreSQL] 유저 생성, 권한 주기 (0) | 2022.01.05 |