- vừa được xem lúc

Golang Redis lưu đơn giản

0 0 24

Người đăng: Open Dev

Theo Viblo Asia

** Tại sao Redis và Golang**

Hiện tại sự kết hợp giữa golang và redis là cực mạnh và rất phổ biến để tăng hiệu năng cho ứng dụng. Hầu như tất cả các công ty tuyển dụng đều yêu cầu về việc đã từng làm qua với redis.

Dựng Redis local

  1. Dùng docker:
  • Create file docker name: Dockerfile và copy đoạn text sau vao
FROM redis:latest
  • Run lệnh:
docker build -t redis-viblo .
  • Kiểm tra image đã thành công:
docker images

tại trường repository xuất hiện redis là đã thành công.

  • Run image thành container:
docker run --name redis-viblo -p 6379:6379 -d redis-viblo
  • Kiểm tra container thành công:
docker ps

tại trường NAMES thấy redis-viblo là xong.

  1. Cài trực tiếp trên máy: thực hiện tuần tự từng lệnh.
brew install redis
brew services start redis
brew services info redis
redis-cli

=> kết quả:

Golang Connect

Init Redis

  1. Source code: sài source này lúc trước mình đã làm source
  2. Cài thư viện:
go get github.com/go-redis/redis/v8
  1. Kết nối đến redis:
func InitRedis() { rdb := redis.NewClient(&redis.Options{ Addr: "localhost:6379", Password: "", // no password set DB: 0, // use default DB }) fmt.Println(rdb) rdb.Set(context.Background(), "abc", "value-abc", time.Duration(time.Second*199))
}

=> sau khi connect thì lưu xuống redis key abc và value value-abc 4. Check redis-cli:

Get - Set thông qua api****

1. Set value Code:

func Set(w http.ResponseWriter, req *http.Request) { cmdR := redislocal.RedisIn.Set(context.Background(), "set", "value-set", time.Duration(time.Second*199)) valueResut := []byte("") if cmdR.Err() != nil { tem := []byte("redis set error \n") valueResut = append(valueResut, tem...) } else { tem := []byte("redis set ok \n") valueResut = append(valueResut, tem...) } w.Write(valueResut)
}

curl:

curl localhost:8100/set

=> redis set ok là set value vào redis ok, * redis-cli* execute *keys * sẽ thấy key là set

2. Get value code:


func Get(w http.ResponseWriter, req *http.Request) { cmdR := redislocal.RedisIn.Get(context.Background(), "set") valueResut := []byte("Get ") if cmdR.Err() != nil { tem := []byte("redis get not found \n") valueResut = append(valueResut, tem...) } else { value, err := cmdR.Bytes() if err != nil { tem := []byte("redis get err, err:") tem = append(tem, []byte(err.Error())...) valueResut = append(valueResut, tem...) } else { text := []byte("redis get ok, value:") text = append(text, value...) valueResut = append(valueResut, text...) } } line := []byte("\n") valueResut = append(valueResut, line...) w.Write(valueResut)
}

curl:

curl localhost:8100/get
  • kết quả key tồn tại: Get redis get ok, value:value-set
  • key không tồn tại: Get redis get not found

SourceCode: https://github.com/ducnpdev/golang-demo

Tham Khao: https://redis.io/docs/getting-started/installation/install-redis-on-mac-os/ https://github.com/go-redis/redis

Bình luận

Bài viết tương tự

- vừa được xem lúc

Caching đại pháp 2: Cache thế nào cho hợp lý?

Caching rất dễ. Mình không nói đùa đâu, caching rất là dễ. Ai cũng có thể làm được chỉ sau 10 phút đọc tutorial. Nó cũng giống như việc đứa trẻ lên 3 đã có thể cầm bút để vẽ vậy.

0 0 126

- vừa được xem lúc

Caching đại pháp 1: Nấc thang lên level của developer

Bí quyết thành công trong việc đáp ứng hệ thống triệu user của những công ty lớn (và cả công ty nhỏ). Tại sao caching lại là kỹ thuật tối quan trọng để phù phép ứng dụng rùa bò của chúng ta thành siêu phẩm vạn người mê.

0 0 82

- vừa được xem lúc

Cache dữ liệu Nodejs với Redis

Một tí gọi là lý thuyết để anh em tham khảo. Cache là gì. Lợi ích của việc cache data. .

0 0 111

- vừa được xem lúc

Nguyên tắc hoạt động của redis server

Sự ra đời của Redis. . Câu chuyện bắt đầu khi tác giả của Redis, Salvatore Sanfilippo. (nickname: antirez), cố gắng làm những công việc gần như là không.

0 0 97

- vừa được xem lúc

Viết ứng dụng chat realtime với Laravel, VueJS, Redis và Socket.IO, Laravel Echo

Xin chào tất cả các bạn, đây là một trong những bài post đầu tiên của mình. Sau bao năm toàn đi đọc các blog tích luỹ được chút kiến thức của các cao nhân trên mạng.

0 0 918

- vừa được xem lúc

Tìm hiểu tổng quan về Redis

1. Lời mở đầu.

0 0 368