mirror of
https://git.mills.io/kayos/bitraft.git
synced 2024-06-27 09:19:00 +00:00
wip
This commit is contained in:
parent
8ba7d80468
commit
339e6e6ffb
1
crud.go
1
crud.go
@ -40,6 +40,7 @@ func (kvm *Machine) cmdSet(
|
||||
m finn.Applier, conn redcon.Conn, cmd redcon.Command,
|
||||
index uint64,
|
||||
) (interface{}, error) {
|
||||
|
||||
if len(cmd.Args) < 3 {
|
||||
return nil, finn.ErrWrongNumberOfArguments
|
||||
}
|
||||
|
89
keywords.go
Normal file
89
keywords.go
Normal file
@ -0,0 +1,89 @@
|
||||
package roam
|
||||
|
||||
type keyword int
|
||||
|
||||
const (
|
||||
kwUnknown keyword = iota
|
||||
kwSET
|
||||
kwGET
|
||||
kwDEL
|
||||
kwKEYS
|
||||
kwDUMP
|
||||
kwDELIF
|
||||
kwLISTEX
|
||||
kwFLUSHDB
|
||||
kwSHUTDOWN
|
||||
)
|
||||
|
||||
func pkeyword(b []byte) keyword {
|
||||
switch len(b) {
|
||||
case 3:
|
||||
if (b[0] == 's' || b[0] == 'S') &&
|
||||
(b[1] == 'e' || b[1] == 'E') &&
|
||||
(b[2] == 't' || b[2] == 'T') {
|
||||
return kwSET
|
||||
}
|
||||
if (b[0] == 'g' || b[0] == 'G') &&
|
||||
(b[1] == 'e' || b[1] == 'E') &&
|
||||
(b[2] == 't' || b[2] == 'T') {
|
||||
return kwGET
|
||||
}
|
||||
if (b[0] == 'd' || b[0] == 'D') &&
|
||||
(b[1] == 'e' || b[1] == 'E') &&
|
||||
(b[2] == 'l' || b[2] == 'L') {
|
||||
return kwDEL
|
||||
}
|
||||
case 4:
|
||||
if (b[0] == 'k' || b[0] == 'K') &&
|
||||
(b[1] == 'e' || b[1] == 'E') &&
|
||||
(b[2] == 'y' || b[2] == 'Y') &&
|
||||
(b[3] == 's' || b[3] == 'S') {
|
||||
return kwKEYS
|
||||
}
|
||||
if (b[0] == 'd' || b[0] == 'D') &&
|
||||
(b[1] == 'u' || b[1] == 'U') &&
|
||||
(b[2] == 'm' || b[2] == 'M') &&
|
||||
(b[3] == 'p' || b[3] == 'P') {
|
||||
return kwDUMP
|
||||
}
|
||||
case 5:
|
||||
if (b[0] == 'd' || b[0] == 'D') &&
|
||||
(b[1] == 'e' || b[1] == 'E') &&
|
||||
(b[2] == 'l' || b[2] == 'L') &&
|
||||
(b[3] == 'i' || b[3] == 'I') &&
|
||||
(b[4] == 'f' || b[4] == 'F') {
|
||||
return kwDELIF
|
||||
}
|
||||
case 6:
|
||||
if (b[0] == 'l' || b[0] == 'L') &&
|
||||
(b[1] == 'i' || b[1] == 'I') &&
|
||||
(b[2] == 's' || b[2] == 'S') &&
|
||||
(b[3] == 't' || b[3] == 'T') &&
|
||||
(b[4] == 'e' || b[4] == 'E') &&
|
||||
(b[5] == 'x' || b[5] == 'X') {
|
||||
return kwLISTEX
|
||||
}
|
||||
case 7:
|
||||
if (b[0] == 'f' || b[0] == 'F') &&
|
||||
(b[1] == 'l' || b[1] == 'L') &&
|
||||
(b[2] == 'u' || b[2] == 'U') &&
|
||||
(b[3] == 's' || b[3] == 'S') &&
|
||||
(b[4] == 'h' || b[4] == 'H') &&
|
||||
(b[5] == 'd' || b[5] == 'D') &&
|
||||
(b[6] == 'b' || b[6] == 'B') {
|
||||
return kwFLUSHDB
|
||||
}
|
||||
case 8:
|
||||
if (b[0] == 's' || b[0] == 'S') &&
|
||||
(b[1] == 'h' || b[1] == 'H') &&
|
||||
(b[2] == 'u' || b[2] == 'U') &&
|
||||
(b[3] == 't' || b[3] == 'T') &&
|
||||
(b[4] == 'd' || b[4] == 'D') &&
|
||||
(b[5] == 'o' || b[5] == 'O') &&
|
||||
(b[6] == 'w' || b[6] == 'W') &&
|
||||
(b[7] == 'n' || b[7] == 'N') {
|
||||
return kwSHUTDOWN
|
||||
}
|
||||
}
|
||||
return kwUnknown
|
||||
}
|
2
node.go
2
node.go
@ -80,8 +80,10 @@ func (kvm *Machine) Command(
|
||||
case "dump":
|
||||
return kvm.cmdDump(m, conn, cmd)
|
||||
case "listex":
|
||||
// LISTEX limit
|
||||
return kvm.cmdListex(m, conn, cmd)
|
||||
case "delif":
|
||||
// DELIF maxindex key [key ...]
|
||||
return kvm.cmdDelif(m, conn, cmd)
|
||||
case "shutdown":
|
||||
log.Warningf("shutting down")
|
||||
|
@ -11,9 +11,9 @@ var log = redlog.New(os.Stderr)
|
||||
|
||||
func ListenAndServe(addr, join, dir string) error {
|
||||
var opts finn.Options
|
||||
opts.Backend = finn.LevelDB
|
||||
opts.Consistency = finn.Medium
|
||||
opts.Durability = finn.Low
|
||||
opts.Backend = finn.FastLog
|
||||
opts.Consistency = finn.High
|
||||
opts.Durability = finn.High
|
||||
m, err := NewMachine(dir, addr)
|
||||
if err != nil {
|
||||
return err
|
||||
|
Loading…
Reference in New Issue
Block a user