Skip to content
A Distributed Redis Protocol Compatible NoSQL Database
Branch: master
Clone or download
Latest commit b28b78b Jul 10, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
bin/titan fix:server tls panic Jun 28, 2019
command fix:setex parseint error and expiration time less than zero are handl… Jul 5, 2019
conf Use 'ssl' in config files Jun 11, 2019
context Merge branch 'titan_sync' of https://github.com/piaoairy219/titan int… Apr 30, 2019
db fix log key : raw key -> raw-key, last timestamp -> last-timestamp Jul 10, 2019
docs-cn Rename project Nov 13, 2018
docs Merge pull request #119 from zzstorage/master Jul 10, 2019
encoding Merge branch 'titan_sync' of https://github.com/piaoairy219/titan int… Apr 30, 2019
metrics fix MultiCommandHistogramVec May 14, 2019
proposals Merge pull request #51 from piaoairy219/patch-2 May 19, 2019
server Use tmp files for tls testing Jun 10, 2019
tests/redis Modify the redis test script to titan Jul 4, 2019
tools fix :set ex can set an expiration time of no more than 0 Jul 4, 2019
.codelingoignore Add .codelingoignore file at project root. Feb 13, 2019
.gitignore Update gitignore: ignore cover.cov Feb 28, 2019
.travis.yml replace package name meitu to distributedio Apr 16, 2019
CODE_OF_CONDUCT.md Create CODE_OF_CONDUCT.md Nov 15, 2018
Dockerfile replace package name meitu to distributedio Apr 16, 2019
LICENSE Create LICENSE Nov 14, 2018
Makefile just token genrating and verifying relative files was changed, make b… Jun 5, 2019
README.md update: update readme May 31, 2019
client.go adjust the code in client.Write function Jul 10, 2019
codelingo.yaml Add codelingo.yaml file at project root. Feb 13, 2019
docker-compose.yml replace package name meitu to distributedio Apr 16, 2019
go.mod fix(main): fix the improve path Jun 10, 2019
titan.go replace package name meitu to distributedio Apr 16, 2019
util.go replace package name meitu to distributedio Apr 16, 2019

README.md

Titan

Build Status Go Report Card Coverage Status Coverage Status Discourse status

A distributed implementation of Redis compatible layer based on TiKV

Why Titan?

  • Completely compatible with redis protocol
  • Full distributed transaction with strong consistency
  • Multi-tenancy support
  • No painful scale out
  • High availability

Thanks TiKV for supporting the core features. The project is developed and open sourced by the Beijing Infrastructure Team at Meitu and has been donated to DistributedIO org.

Architecture

Arch about titan

titan

Arch about TiKV

TiKV softwares

Quick start

Can't wait to experiment Titan? Just follow 2 steps:

  1. curl -s -O https://raw.githubusercontent.com/distributedio/titan/master/docker-compose.yml
  2. docker-compose up

Then connect to titan use redis-cli

redis-cli -p 7369

Enjoy!

Installation

SetUp TiKV cluster

Titan works with 2 tidb components:

  • TiKV
  • Pd

To setup TiKV and PD, please follow official instruction

Run Titan

  • Build the binary
go get github.com/distributedio/titan
cd $GOPATH/src/github.com/distributedio/titan
make 
  • Edit the configration file
pd-addrs="tikv://your-pd-addrs:port"
  • Run titan
./titan

For more details about Deploy Titan, click here.

Benchmarks

Basic benchmarking result.

Get

Get command benchmark

Set

Set command benchmark

For more info, please vist here Titan Benchmarks

Commands supporting status

For fully supported command list vist here

command status
Connections Won't Fully Supported
Transactions Supported
Server Not Fully Supported Yet
Keys Not Fully Supported Yet
Strings Not Fully Supported Yet
List Not Fully Supported Yet
Hashes Supported
Sets Not Fully Supported Yet
Sorted Sets Not Fully Supported Yet
Geo Not Supported Yet
Hyperloglog Not Supported Yet
Pub/Sub Not Supported Yet
Scripting Not Supported Yet
Streams Not Supported Yet

FAQ

FAQ

Roadmap

View our Roadmap

You can’t perform that action at this time.