Skip to content

yshengliao/goscriptor

Repository files navigation

goscriptor

Packet GoScriptor implements a way to use redis script more easily

Install

go get -u -v github.com/yshengliao/goscriptor

Usage

Let's start with a trivial example:

package main

import (
    "github.com/yshengliao/goscriptor"
)

var (
    scriptDefinition = "scriptKey|0.0.0"

    hello               = "hello"
    _HelloworldTemplate = `
    return 'Hello, World!'
    `
)

type MyScriptor struct {
    Scriptor *goscriptor.Scriptor
}

// hello function
func (s *MyScriptor) hello() (string, error) {
    res, err := s.Scriptor.ExecSha(hello, []string{})
    if err != nil {
        return "", err
    }

    return res.(string), nil
}

func main() {
    opt := &goscriptor.Option{
        Host:     "127.0.0.1",
        Port:     6379,
        Password: "",
        DB:       0,
        PoolSize: 10,
    }

    scripts := map[string]string{
        hello: _HelloworldTemplate,
    }

    scriptor, err := goscriptor.NewDB(opt, 1, scriptDefinition, &scripts)
    if err != nil {
        panic(err)
    }

    myscript := &MyScriptor{
        Scriptor: scriptor,
    }
    res, err := myscript.hello()
    if err != nil {
        panic(err)
    }
    println(res)
}

Dependency

  • testify

      go get -u -v github.com/stretchr/testify
  • go-redis

      go get -u -v github.com/go-redis/redis/v8
  • miniredis

      go get -u -v github.com/alicebob/miniredis/v2
  • null.v3

      go get -u -v gopkg.in/guregu/null.v3

TODO

  1. Add test cases using "testify".
  2. Add redis script test method.
  3. script_test unit test.
  4. Improve or remove useless code.
  5. Check code formatting.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages