Redcon 兼容 Redis 的 K/V 数据库开源项目

我要开发同款
匿名用户2017年10月06日
106阅读

技术信息

开源地址
https://github.com/tidwall/redcon
授权协议
MIT

作品详情

Redco是一个采用Go开发的兼容Redis的Key/Value数据库。特点是简单、快速。

支持Redis的命令包括:

SETkeyvalue

GETkey

DELkey

PING

QUIT

示例代码:

package maiimport (  "log"  "strigs"  "syc"  "github.com/tidwall/redco")var addr = ":6380"fuc mai() {  var mu syc.RWMutex  var items = make(map[strig][]byte)  go log.Pritf("started server at %s", addr)  err := redco.ListeAdServe(addr,    fuc(co redco.Co, cmd redco.Commad) {      switch strigs.ToLower(strig(cmd.Args[0])) {      default:        co.WriteError("ERR ukow commad '" + strig(cmd.Args[0]) + "'")      case "pig":        co.WriteStrig("PONG")      case "quit":        co.WriteStrig("OK")        co.Close()      case "set":        if le(cmd.Args) != 3 {          co.WriteError("ERR wrog umber of argumets for '" + strig(cmd.Args[0]) + "' commad")          retur        }        mu.Lock()        items[strig(cmd.Args[1])] = cmd.Args[2]        mu.Ulock()        co.WriteStrig("OK")      case "get":        if le(cmd.Args) != 2 {          co.WriteError("ERR wrog umber of argumets for '" + strig(cmd.Args[0]) + "' commad")          retur        }        mu.RLock()        val, ok := items[strig(cmd.Args[1])]        mu.RUlock()        if !ok {          co.WriteNull()        } else {          co.WriteBulk(val)        }      case "del":        if le(cmd.Args) != 2 {          co.WriteError("ERR wrog umber of argumets for '" + strig(cmd.Args[0]) + "' commad")          retur        }        mu.Lock()        _, ok := items[strig(cmd.Args[1])]        delete(items, strig(cmd.Args[1]))        mu.Ulock()        if !ok {          co.WriteIt(0)        } else {          co.WriteIt(1)        }      }    },    fuc(co redco.Co) bool {      // use this fuctio to accept or dey the coectio.      // log.Pritf("accept: %s", co.RemoteAddr())      retur true    },    fuc(co redco.Co, err error) {      // this is called whe the coectio has bee closed      // log.Pritf("closed: %s, err: %v", co.RemoteAddr(), err)    },  )  if err != il {    log.Fatal(err)  }}

功能介绍

Redcon 是一个采用 Go 开发的兼容 Redis 的 Key/Value 数据库。特点是简单、快速。 支持 Redis 的命令包括: SET key value GET key DEL k...

声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论