Skip to content

sunYangGitHub/distkv

 
 

Repository files navigation

distkv build codebeat badge codecov

A distributed key-value in-memory store system with table concept.

Project Description

DistKV project is a memory-based distributed key-value storage system. Besides these features, DistKV also supports table concept which looks like tables in relational databases. We use Java to finish this project, which is somewhat different from most databases using C/C++.

Full document is https://distkv.com

Awesome Features

  1. Redis-like data structure
  2. Table concept based on KV Store
  3. Highly available
  4. Easy to use clients
  5. Strong ecosystem for Web application

Quick Started

1. Install DistKV

Running scripts/install_distkv.sh will install the whole DistKV to your machine.

./scripts/install_distkv.sh

When we connect to the server, we must first start the server. At present, we only have two kinds of clients. One is Command Line Tool, another is Java Client SDK. We can use either of them to access the Distkv server.

2. Start DistKV Server

[root@localhost ~]# dkv-server

3. Start DistKV Cli

[root@localhost ~]# dkv-cli

4. Command Line Tool

dkv-cli > str.put "k1" "v1"
dkv-cli > ok
dkv-cli > str.get "k1" 
dkv-cli > "v1"

dkv-cli > list.put "k1" "v1" "v2" "v3"
dkv-cli > ok
dkv-cli > list.get "k1"
dkv-cli > ["v1", "v2", "v3"]

dkv-cli > set.put "k1" "v1" "v2" "v3"
dkv-cli > ok
dkv-cli > set.get "k1"
dkv-cli > {"v1", "v2", "v3"}

dkv-cli > dict.put "dict1" "k1" "v1" "k2" "v2"
dkv-cli > ok
dkv-cli > dict.get "dict1"
dkv-cli > { "k1" : "v1", "k2" : "v2"}

dkv-cli > slist.put "k1" "m1" 4 "m2" -4 "m3" 0
dkv-cli > ok
dkv-cli > slist.top "k1" 2
dkv-cli > [("m1", 4), ("m3", 0)]
dkv-cli > slist.getMember "k1" "m2"
dkv-cli > ("m2", -4), 3rd

Java Client SDK

Java Client SDK Example

Java Async Client SDK

Java Async Client SDK Example

Getting Involved

Thank you for your attention to the DistKV project. If you have any questions, you can create a new issue in our Issues list. We also welcome you to participate in our DistKV project, if you want to make contributions, you can refer the file CONTRIBUTING.md.

About

A distributed key-value in-memory store system with table concept.

Resources

License

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages

  • Java 97.8%
  • Other 2.2%