Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/netease-im/camellia
Camellia provide easy-to-use server toolkits, such as: redis proxy、delay queue、id gen、hot key and more
https://github.com/netease-im/camellia
daocache dbcache delay-queue delayqueue double-write hot-key hotkey id-gen idgen idgenerator netty4 read-write-splitting redis redis-cluster-proxy redis-proxy redis-sentinel redisproxy sharding
Last synced: 5 days ago
JSON representation
Camellia provide easy-to-use server toolkits, such as: redis proxy、delay queue、id gen、hot key and more
- Host: GitHub
- URL: https://github.com/netease-im/camellia
- Owner: netease-im
- License: mit
- Created: 2020-04-15T07:32:15.000Z (almost 5 years ago)
- Default Branch: master
- Last Pushed: 2024-10-22T11:04:56.000Z (3 months ago)
- Last Synced: 2024-10-29T15:26:05.836Z (3 months ago)
- Topics: daocache, dbcache, delay-queue, delayqueue, double-write, hot-key, hotkey, id-gen, idgen, idgenerator, netty4, read-write-splitting, redis, redis-cluster-proxy, redis-proxy, redis-sentinel, redisproxy, sharding
- Language: Java
- Homepage:
- Size: 59.3 MB
- Stars: 611
- Watchers: 22
- Forks: 140
- Open Issues: 38
-
Metadata Files:
- Readme: README-en.md
- License: LICENSE
Awesome Lists containing this project
README
# camellia framework([中文版](README.md))
Camellia is originally develop as basic architecture for netease-yunxin's servers,all the modules is running in netease-yunxin's online-env.
![GitHub](https://img.shields.io/badge/license-MIT-blue.svg)
[![GitHub release](https://img.shields.io/github/release/netease-im/camellia.svg)](https://github.com/netease-im/camellia/releases)
![java_language](https://img.shields.io/badge/java--language-1.8%20%7C%2021-blue.svg)
## SummaryCamellia provide easy-to-use server toolkits:
### server
* [redis-proxy](/docs/camellia-redis-proxy/redis-proxy-en.md)
* [id-generator](/docs/camellia-id-gen/id-gen.md)
* [delay-queue](/docs/camellia-delay-queue/delay-queue.md)
* [hot-key](/docs/camellia-hot-key/hot-key.md)### sdk
camellia also provide enhanced sdk (based on other open source sdk):
* [redis-client](/docs/camellia-redis-client/redis-client.md)
* [hbase-client](/docs/camellia-hbase/hbase-client.md)
* [feign-client](/docs/camellia-feign/feign.md)
* [dao-cache](/docs/camellia-cache/cache.md)
* [tools](/docs/camellia-tools/tools.md)## Instruction
### camellia-redis-proxy
high performance redis-proxy:
* base on netty4 and java21, support redis-standalone/redis-sentinel/redis-cluster
* support [twemproxy](https://github.com/twitter/twemproxy) 、[codis](https://github.com/CodisLabs/codis) as the upstream(such as migration scenarios)
* support [kvrocks](https://github.com/apache/kvrocks) 、 [pika](https://github.com/OpenAtomFoundation/pika) 、 [tendis](https://github.com/Tencent/Tendis) as the upstream
* support GET/SET/EVAL, support MGET/MSET, support blocking BLPOP, support PUBSUB/TRANSACTION, support STREAMS/JSON/SEARCH/BloomFilter/CuckooFilter, support TAIR_HASH/TAIR_ZSET/TAIR_STRING
* all supported commands: [supported_commands](docs/camellia-redis-proxy/supported_commands.md)
* support sharding/read-write-separate/double-write on proxy
* support multi-route-conf
* support ssl/tls, both client to proxy and proxy to upstream redis
* support unix-domain-socket, both client to proxy and proxy to upstream redis
* support use http to access proxy, like [webdis](https://github.com/nicolasff/webdis) , see: [redis_over_http](/docs/camellia-redis-proxy/other/redis_over_http.md)
* support tps/rt/big-key/hot-key/slow-command monitor
* support disguise as redis-cluster/redis-sentinel for high availability
* support custom command plugin, support hot-key-cache(GET command),support value converter and so on
[QUICK START](/docs/camellia-redis-proxy/redis-proxy-en.md)### camellia-id-gen
provide some id gen algorithm:
* server require java21, sdk require java8
* snowflake, support setting region tag
* strict-increment id-gen
* db-segment id-gen, support setting region tag
[QUICK START](/docs/camellia-id-gen/id-gen.md)### camellia-delay-queue
delay queue base on redis:
* server require java21, sdk require java8
* independent deployment of delay-queue-server, scale out, support multi-topic, support http-api
* provide java-sdk, support spring-boot-starter
* provide monitor data
[QUICK START](/docs/camellia-delay-queue/delay-queue.md)### camellia-hot-key
hot key detect and cache:
* server require java21, sdk require java8
* support hot key detect, hot key cache, hot key topN stats
* support custom hot-key-config、hot-key-callback、hot-key-topN-callback、hot-key-cache-stats-callback
* support custom registry, such as eureka、zk and so on
* provide monitor data
[QUICK START](/docs/camellia-hot-key/hot-key.md)## Release-Version
latest version is 1.3.2, have deploy to maven central repository on 2025/01/15
[CHANGE_LOG](/update-en.md)## SNAPSHOT-version
latest version is 1.4.0-SNAPSHOT
```xml
sonatype-snapshots
Sonatype Snapshot Repository
https://oss.sonatype.org/content/repositories/snapshots/
true
```
## User List
If you are using Camellia and feel it helps or you'd like to do some contributions, please add your company to [user list](https://github.com/netease-im/camellia/issues/10) and let us know your needs## Contact
wechat-id: hdnxttl
email: [email protected]## Stargazers Over Time
[![Stargazers Over Time](https://starchart.cc/netease-im/camellia.svg)](https://starchart.cc/netease-im/camellia)