Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/icefiredb/redhub
High-performance Redis-Server multi-threaded framework, based on rawepoll model.
https://github.com/icefiredb/redhub
cache epoll fast go golang high-performance key-value redis redis-protocol
Last synced: 7 days ago
JSON representation
High-performance Redis-Server multi-threaded framework, based on rawepoll model.
- Host: GitHub
- URL: https://github.com/icefiredb/redhub
- Owner: IceFireDB
- License: apache-2.0
- Created: 2021-09-07T07:18:16.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2024-10-07T12:17:29.000Z (4 months ago)
- Last Synced: 2025-01-08T00:11:26.957Z (14 days ago)
- Topics: cache, epoll, fast, go, golang, high-performance, key-value, redis, redis-protocol
- Language: Go
- Homepage: https://redhub.icefiredb.xyz
- Size: 4.21 MB
- Stars: 78
- Watchers: 5
- Forks: 15
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE-OF-CONDUCT.md
Awesome Lists containing this project
README
# RedHub
[![FOSSA Status](https://app.fossa.com/api/projects/git%2Bgithub.com%2FIceFireDB%2Fredhub.svg?type=shield)](https://app.fossa.com/projects/git%2Bgithub.com%2FIceFireDB%2Fredhub?ref=badge_shield)High-performance RESP-Server multi-threaded framework, based on RawEpoll model.
* Ultra high performance
* Fully multi-threaded support
* Low CPU resource consumption
* Compatible with redis protocol
* Create a Redis compatible server with RawEpoll model in Go# Installing
```
go get -u github.com/IceFireDB/redhub
```# Example
Here is a simple framework usage example,support the following redis commands:
- SET key value
- GET key
- DEL key
- PING
- QUITYou can run this example in terminal:
```sh
go run example/memory_kv/server.go
```# Benchmarks
```
Machine information
OS : Debian Buster 10.6 64bit
CPU : 8 CPU cores
Memory : 64.0 GiBGo Version : go1.16.5 linux/amd64
```
### 【Redis-server5.0.3】 Single-threaded, no disk persistence.
```
$ ./redis-server --port 6380 --appendonly no
```
```
$ redis-benchmark -h 127.0.0.1 -p 6380 -n 50000000 -t set,get -c 512 -P 1024 -q
SET: 2306060.50 requests per second
GET: 3096742.25 requests per second
```### 【Redis-server6.2.5】 Single-threaded, no disk persistence.
```
$ ./redis-server --port 6380 --appendonly no
```
```
$ redis-benchmark -h 127.0.0.1 -p 6380 -n 50000000 -t set,get -c 512 -P 1024 -q
SET: 2076325.75 requests per second
GET: 2652801.50 requests per second
```### 【Redis-server6.2.5】 Multi-threaded, no disk persistence.
```
io-threads-do-reads yes
io-threads 8
$ ./redis-server redis.conf
```
```
$ redis-benchmark -h 127.0.0.1 -p 6379 -n 50000000 -t set,get -c 512 -P 1024 -q
SET: 1944692.88 requests per second
GET: 2375184.00 requests per second
```### 【RedCon】 Multi-threaded, no disk persistence
```
$ go run example/clone.go
```
```
$ redis-benchmark -h 127.0.0.1 -p 6380 -n 50000000 -t set,get -c 512 -P 1024 -q
SET: 2332742.25 requests per second
GET: 14654162.00 requests per second
```
### 【RedHub】 Multi-threaded, no disk persistence```
$ go run example/server.go
```
```
$ redis-benchmark -h 127.0.0.1 -p 6380 -n 50000000 -t set,get -c 512 -P 1024 -q
SET: 4087305.00 requests per second
GET: 16490765.00 requests per second
```
# Disclaimers
When you use this software, you have agreed and stated that the author, maintainer and contributor of this software are not responsible for any risks, costs or problems you encounter. If you find a software defect or BUG, please submit a patch to help improve it!# License
[![FOSSA Status](https://app.fossa.com/api/projects/git%2Bgithub.com%2FIceFireDB%2Fredhub.svg?type=large)](https://app.fossa.com/projects/git%2Bgithub.com%2FIceFireDB%2Fredhub?ref=badge_large)