Thinking, Fast and SlowDaniel Kahneman adalah salah satu pemikir paling penting abad ini. Gagasannya berdampak mendalam dan luas di berbagai bidang termasuk ekonomi, pengobatan, dan politik. Dalam buku yang sangat dinanti-nantikan ini, Kahneman menjelaskan dua sistem yang mendorong cara kita berpikir. Sistem 1 bersifat cepat, intuitif, dan emosional; Sistem 2 lebih pelan, lebih bertujuan, dan lebih logis. Buy |
Di tutorial ini kita akan belajar cara menyimpan dan mengambil Data Redis menggunakan Golang.
Untuk menggunkan redis di bahasa golang, pertama yang perlu Anda lakukan adalah menambahkan gomod di app yang akan Anda buat.
go mod init github.com/my/repo
go get github.com/redis/go-redis/v9
func newRedisClient(host string, password string) *redisDriver.Client {
client := redisDriver.NewClient(&redisDriver.Options{
Addr: host,
Password: password,
DB: 0,
})
return client
}
func setData(rdc *redisDriver.Client, key string, data string, ttl time.Duration) error {
dataSet := rdc.Set(context.Background(), key, data, ttl)
return dataSet.Err()
}
func getData(rdc *redisDriver.Client, key string) (string, error) {
dataGet := rdc.Get(context.Background(), key)
if dataGet.Err() != nil {
fmt.Printf("data tidak ditemukan : %v", dataGet.Err())
return "", dataGet.Err()
}
resp, err := dataGet.Result()
return resp, err
}
func main() {
var host = "localhost:63790"
var redisPassword = "redis"
rdc := newRedisClient(host, redisPassword)key := "sample-test"
data := "halo ini test redis pertama sama"
ttl := time.Duration(60) * time.Second//store data
errSetData := setData(rdc, key, data, ttl)
if errSetData != nil {
fmt.Printf("set data error: %v", errSetData)
return
}
log.Println("set data success")//get data
getdata, err := getData(rdc, key)
if err != nil {
fmt.Println("get data error : %v", err)
return
}
log.Println("get data success result:", getdata)
}
Note : Untuk mengikuti tutorial ini, pastikan Anda telah menginstal redis di local computer Anda.