Go-redis-server
小码哥 2019-08-17 14:34:03

Go-redis-server 是使用 Go 实现 Redis 服务协议的开发包。

有许多客户端能够实现 redis 协议,但很多服务器不能实现。

go-redis-server 不仅能通过 redis 协议,帮助构建服务器软件;还能够作为 redis 实现的候选者,能够只从 redis,甚至在后端“伪装”执行 redis 数据库的 API。

简单代码示例:

package main

import (
    redis "github.com/dotcloud/go-redis-server"
)

type MyHandler struct {
    values map[string][]byte
}

func (h *MyHandler) GET(key string) ([]byte, error) {
    v := h.values[key]
    return v, nil
}

func (h *MyHandler) SET(key string, value []byte) error {
    h.values[key] = value
    return nil
}

func main() {
    handler, _ := redis.NewAutoHandler(&MyHandler{values: make(map[string][]byte)})
    server := &redis.Server{Handler: handler, Addr: ":6389"}
    server.ListenAndServe()
}