Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/distributedio/titan
A Distributed Redis Protocol Compatible NoSQL Database
https://github.com/distributedio/titan
distributed nosql redis tidb tikv
Last synced: 5 days ago
JSON representation
A Distributed Redis Protocol Compatible NoSQL Database
- Host: GitHub
- URL: https://github.com/distributedio/titan
- Owner: distributedio
- License: apache-2.0
- Created: 2018-11-14T08:18:40.000Z (about 6 years ago)
- Default Branch: master
- Last Pushed: 2023-10-21T05:34:32.000Z (about 1 year ago)
- Last Synced: 2024-12-01T05:35:23.855Z (11 days ago)
- Topics: distributed, nosql, redis, tidb, tikv
- Language: Go
- Homepage: https://medium.com/@shafreeck/titan-a-distributed-redis-protocol-compatible-nosql-database-4379a1307661
- Size: 7.27 MB
- Stars: 1,392
- Watchers: 61
- Forks: 118
- Open Issues: 43
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
- Roadmap: docs/roadmap.md
Awesome Lists containing this project
- favorite-link - 兼容的 Redis 协议 NoSQL 数据库。
- awesome-starts - distributedio/titan - A Distributed Redis Protocol Compatible NoSQL Database (Go)
README
# Titan
[![Build Status](https://travis-ci.org/distributedio/titan.svg?branch=master)](https://travis-ci.org/distributedio/titan)
[![Go Report Card](https://goreportcard.com/badge/github.com/distributedio/titan)](https://goreportcard.com/report/github.com/distributedio/titan)
[![Coverage Status](https://coveralls.io/repos/github/distributedio/titan/badge.svg?branch=master)](https://coveralls.io/github/distributedio/titan?branch=master)
[![Coverage Status](https://img.shields.io/badge/version-v0.3.1-brightgreen.svg)](https://github.com/distributedio/titan/releases)
[![Discourse status](https://img.shields.io/discourse/https/meta.discourse.org/status.svg)](https://titan-tech-group.slack.com)A distributed implementation of __Redis compatible layer__ based on [TiKV](https://github.com/tikv/tikv/)
## Why Titan?
* Completely compatible with Redis protocol
* Full distributed transaction with strong consistency
* Multi-tenancy support
* No painful scale out
* High availabilityThanks [TiKV](https://github.com/tikv/tikv/) for supporting the core features. The project is developed and open sourced by the Beijing Infrastructure Team at [Meitu](https://www.meitu.com/) and has been donated to [DistributedIO](https://github.com/distributedio) org.
## Architecture
![titan](docs/titan.jpeg)
## Quick start
Can't wait to experiment with 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 using `redis-cli`
```
redis-cli -p 7369
```___Enjoy!___
## Installation
### SetUp TiKV cluster
Titan works with 2 TiDB components:
* TiKV
* PDTo setup TiKV and PD, please follow the official [instructions](https://pingcap.com/docs-cn/dev/how-to/deploy/orchestrated/ansible/)
### 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](docs/ops/deploy.md), click here.
## Commands supporting status
See the details of the commands [supporting status](docs/command_list.md)
| command | status |
| ------------ | ----------------------- |
| Connections | Almost Fully Supported |
| Transactions | Supported |
| Server | Almost Fully Supported |
| Keys | Supported |
| Strings | Almost Fully Supported |
| List | Almost Fully Supported |
| Hashes | Supported |
| Sets | Almost Fully Supported |
| Sorted Sets | Almost Fully Supported |
| Geo | Not Supported Yet |
| Hyperloglog | Not Supported Yet |
| Pub/Sub | Not Supported Yet |
| Scripting | Not Supported Yet |
| Streams | Not Supported Yet |## Benchmarks
Refer to the [benchmark docs](https://pan.baidu.com/s/1m5yp5LsvFjsDKvHtaXwWvg) for more details. It's shared on Baidu Disks, use the code `hzt6` to gain the permission.
Basic benchmarking result.
### Get
![Get command benchmark](docs/benchmark/get-benchmark.png)
### Set
![Set command benchmark](docs/benchmark/set-benchmark.png)
For more info, please vist here [Titan Benchmarks](docs/benchmark/benchmark.md)
## FAQ
[FAQ](https://github.com/distributedio/titan/issues?utf8=%E2%9C%93&q=+label%3A%22good+first+issue%22)
## Roadmap
View our [Roadmap](https://github.com/distributedio/titan/projects)
## Release Note
* 20.4.21: add support for rpop and rpoplpush