Golang 키와 값을 저장하거나 캐싱할 수 있는 go-cache 라이브러리 알아보기

오늘은 Golang으로 키와 값을 파일로 저장하고 불러오거나, 캐싱할 수 있는 GCache 라이브러리를 알아보려 합니다.

go-cache 설치

우선 Golang의 환경을 구성하기 위해 https://golang.org/dl/ 에서 윈도우, 리눅스, 맥에서 설치 프로그램을 내려받을 수 있습니다.

맥에서 brew로 쉽게 설치할 수 있습니다.

brew install go

우분투에서도 apt로 쉽게 설치할 수 있습니다.

sudo apt-get install golang-go

go get으로 go-cache 패키지를 설치합니다.

go get github.com/patrickmn/go-cache

홈의 go 폴더에 go-cache 소스코드와 패키지 파일이 생성됩니다.

예제

package main

해당 소스코드를 실행 파일로 인식하게 해주도록 main이라고 선언합니다.

import (
	"fmt"
	"time"

	"github.com/patrickmn/go-cache"
)

fmt와 time 그리고 go-cache를 가져옵니다.

func main() {
	c := cache.New(1*time.Minute, 2*time.Minute)

인자에 의해 만료 기간과 정리 간격으로 설정된 캐시를 생성합니다.

	c.Set("test_key_1", "v1", cache.DefaultExpiration)

캐시를 만들 때에 기본으로 설정된 만료 시간을 기준으로 키와 값을 캐시에 기록합니다.

	c.Set("test_key_2", 1, cache.NoExpiration)

만료하지 않게 할 수도 있습니다.

	c.Delete("test_key_2")

해당 키와 값을 캐시에서 삭제합니다.

	getInterface, foundBool := c.Get("test_key_1")
	if foundBool {
		fmt.Println(getInterface)
	}

	if getInterface, foundBool = c.Get("test_key_1"); foundBool {
		value := getInterface.(string)
		fmt.Println(value)
	}

타입 assertion을 할 수 있습니다.

	c.SaveFile("test")

	c.Delete("test_key_1")

	c.LoadFile("test")

파일로 저장하고 캐시에서 값을 제거해도, 다시 불러오면 값이 존재하는 것을 볼 수 있습니다.

	c.Flush()
}

캐시에서 모든 아이템을 지웁니다.

Written on August 22, 2019