/titan

A Distributed Redis Protocol Compatible NoSQL Database

Primary LanguageGoApache License 2.0Apache-2.0

Titan

Build Status Go Report Card Coverage Status Coverage Status Discourse status

A distributed implementation of Redis compatible layer based on TiKV

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/distributedio/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