eduardonunesp / kvzica

Some simple key value store in go backed by dgraph-io/badger

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

kvzica

Some simple key value store in go backed by dgraph-io/badger.

Usage

First you need to start the server:

kvzika -p 5566

Then you can use the client to set and get key value pairs:

package main

import (
	"fmt"
	"log"
	"os"

	"github.com/eduardonunesp/kvzika/pkg/client"
	"github.com/urfave/cli/v2"
)

func main() {
	client, err := client.NewClient("0.0.0.0", 5566)
	defer client.Close()
	if err != nil {
		log.Fatal(err)
	}

	app := &cli.App{
		Name: "kvclient",
		Commands: []*cli.Command{
			{
				Name:  "set",
				Usage: "Set a key value pair",
				Action: func(c *cli.Context) error {
					key := c.Args().Get(0)
					value := c.Args().Get(1)
					if err := client.SetKeyValue([]byte(key), []byte(value)); err != nil {
						return err
					}
					fmt.Println("Key set successfully", key, value)
					return nil
				},
			},
			{
				Name:  "get",
				Usage: "Get a value by key",
				Action: func(c *cli.Context) error {
					key := c.Args().Get(0)
					value, err := client.GetValue([]byte(key))
					if err != nil {
						return err
					}
					log.Println(string(value))
					return nil
				},
			},
		},
	}

	if err := app.Run(os.Args); err != nil {
		log.Fatal(err)
	}
}

About

Some simple key value store in go backed by dgraph-io/badger

License:MIT License


Languages

Language:Go 90.7%Language:Dockerfile 6.2%Language:Makefile 3.1%