Titan
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
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
Benchmarks
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