# REDIS
Redis menggunakan Ram menjadi penyimpanannya. Digunakan karena database utama seperti postgre mengeksekusi query yang berat dengan waktu yang lama.
Hasil query dari postgre bisa di simpan sementara di redis. Agar saat ada request yang sama, db utama tidak perlu melakukan query yang berat lagi. Cukup menggunakan data yang sudah di simpan di redis. Ini sangat membantu untuk meningkatkan performa aplikasi kita.
#### Masuk ke redis server menggunakan redis cli
```
redis-cli
redis-cli -h localhost -p 6379
```
#### Contoh query dasar
```
set nama1 'sarginsu'
get nama1
exists nama1
del nama1
append nama1 ' ginting'
keys *
```
#### Multiple set dan get
```
mset nama2 'elgio' nama3 'emya'
mget nama2 nama3
```
#### Pindah DB
`DB default adalah 0.`
```
select 1
```
#### Expiration
`Untuk membuat waktu hidup dari data.`
`Waktu di catat dengan 'detik'`
```
expire nama1 60
setex nama1 60 'sarman ginting'
ttl nama1
```
#### Increment dan Decrement
`Untuk menambah dan mengurangi value suatu key. Data yang di simpan harus berbentuk string int`
```
incr no
decr no
incrby no 10
decrby no 10
```
#### Flush
`Gunanya untuk menghapus data.`
```
flushdb
flushall
```
#### Pipeline
`Menjalankan banyak query dalah 1 eksekusi. Cocok di gunakan untuk migrasi data dari DB utama.`
```
cat sets.txt | redis-cli --pipe
```
`Contoh data sets.txt`
```
set 1 1
set 2 2
set 3 3
set 4 4
set 5 5
```
#### Transaction
`Di awali perintah multi. exec & discard sama seperti commit dan roolback di sql.`
```
multi
exec
discard
```
#### Monitor
`Berguna saat debug. Mirip seperti log.`
```
monitor
```
#### Server information
`Berguna saat debug. Mirip seperti log.`
```
info
config get *
slowlog get
```
#### Client connection
`Melihat info atau kill client yang sedang terkoneksi ke redis server.`
```
client list
client id
client kill ip_client:port
```
#### Backup
`Backup file dari ram ke hardisk`
```
save
savebg
```
#### User & Password (Config)
```
https://www.youtube.com/watch?v=VSuli0vwMuA&list=PL-CtdCApEFH-7hBhz1Q-4rKIQntJoBNX3&index=19&ab_channel=ProgrammerZamanNowProgrammerZamanNow
```
#### Github
```
https://github.com/ProgrammerZamanNow/belajar-redis
```