Skip to content
/ titan Public
forked from distributedio/titan

A Distributed Redis Protocol Compatible NoSQL Database

License

Notifications You must be signed in to change notification settings

tangxy/titan

 
 

Repository files navigation

Titan

Build Status Go Report Card Coverage Status Coverage Status Discourse status

A distributed implementation of Redis compatible layer based on TiKV

Status

Active development, not ready for production. We welcome any form of contributions!

Our goal is to build a solid NoSQL database aiming to run in the production environment. We are using Titan in production inside Meitu now. If you cannot wait to experiment it in the production environment, feel free to contact us for technical supporting.

Features

  • 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

Roadmap

Roadmap

Can't wait to experiment Titan?

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

# Then connect to titan use redis-cli
redis-cli -p 7369

# Enjoy!

Installing

Deploy Titan

Benchmarks

Titan Benchmarks

FAQ

FAQ

Commands

Connections

  • auth
  • echo
  • ping
  • quit
  • select
  • swapdb, not supported

Transactions

  • multi
  • exec
  • discard
  • watch
  • unwatch

Server

  • client list
  • client kill
  • client pause
  • client reply
  • client getname
  • client setname
  • monitor
  • debug object
  • flushdb
  • flushall
  • time
  • command
  • command count
  • command getkeys
  • command info
  • info
  • slowlog

Keys

  • del
  • type
  • exists
  • expire
  • expireat
  • object
  • pexpire
  • pexpireat
  • ttl
  • pttl
  • randomkey
  • touch
  • keys
  • scan
  • unlink

Strings

  • get
  • set
  • mget
  • mset
  • strlen
  • incr
  • incrby
  • decr
  • decrby
  • append
  • bitcount
  • bitfield
  • bitop
  • bitpos
  • getbit
  • getrange
  • getset
  • incrbyfloat
  • msetnx
  • psetex
  • setbit
  • setex
  • setnx
  • setrange

List

  • lrange
  • linsert
  • lindex
  • llen
  • lset
  • lpush
  • lpop
  • lpushx
  • ltrim
  • lrem
  • rpop
  • rpoplpush
  • rpush
  • rpushhx
  • blpop
  • brpop
  • brpoplpush

Hashes

  • hset
  • hget
  • hgetall
  • hdel
  • hexists
  • hincrby
  • hincrbyfloat
  • hkeys
  • hlen
  • hmget
  • hmset
  • hscan
  • hsetnx
  • hstrlen
  • hvals

Sets

  • sadd
  • scard
  • sdiff
  • sdiffstore
  • sinter
  • sinterstore
  • sismember
  • smembers
  • smove
  • spop
  • srandmember
  • srem
  • sunion
  • sunionstore
  • sscan

Sorted Sets

  • bzpopmin
  • bzpopmax
  • zadd
  • zcard
  • zcount
  • zincrby
  • zinterstore
  • zlexcount
  • zpopmax
  • zpopmin
  • zrange
  • zrangebylex
  • zrevrangebylex
  • zrangebyscore
  • zrank
  • zrem
  • zremrangebylex
  • zremrangebyrank
  • zremrangebyscore
  • zrevrange
  • zrevrangebyscore
  • zrevrank
  • zscore
  • zunionstore
  • zscan

Geo

  • geoadd
  • geohash
  • geopos
  • geodist
  • georadius
  • georadiusbymember

hyperloglog

  • pfadd
  • pfcount
  • pfmerge

Pub/Sub

  • psubscribe
  • pubsub
  • publish
  • punsubscribe
  • subscribe
  • unsubscribe

Scripting

  • eval
  • evalsha
  • script debug
  • script exists
  • script flush
  • script kill
  • script load

Streams

  • xadd
  • xrange
  • xrevrange
  • xlen
  • xread
  • xreadgroup
  • xpending

About

A Distributed Redis Protocol Compatible NoSQL Database

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Go 99.6%
  • Other 0.4%