Skip to content

Commit 212e11c

Browse files
authored
Merge pull request #1 from montplex/hugo_readme
Init README and intro files
2 parents 910a049 + 3b63272 commit 212e11c

File tree

9 files changed

+278
-2
lines changed

9 files changed

+278
-2
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
.idea

LICENSES

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
© 2024 Montplex. All rights reserved.
2+
3+
Engula is a modified distribution based on Redis®OSS. When building Engula using the Redis source code, we adhere to the following license terms:
4+
5+
Copyright (c) 2006-2020, Salvatore Sanfilippo
6+
All rights reserved.
7+
8+
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
9+
10+
* Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
11+
* Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
12+
* Neither the name of Redis nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
13+
14+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
15+
16+
For Engula:
17+
In addition to complying with the Redis®* OSS License, all other components of Engula are proprietary software owned by Montplex. Without explicit written permission from Montplex, you are prohibited from copying, modifying, distributing, or otherwise using any part of Engula.
18+
19+
*Redis is a registered trademark of Redis Ltd. Any rights therein are reserved to Redis Ltd. The use of Redis® by the Engula project is for referential purposes only and does not indicate any sponsorship, endorsement, or affiliation between Redis Ltd. and the Engula project.

README.md

Lines changed: 41 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,42 @@
1-
# engula-server-release
1+
[![Twitter URL](https://img.shields.io/twitter/follow/MontplexDB?style=social)](https://x.com/MontplexDB)
22

3-
[Engula 测试版使用说明](https://montplex.feishu.cn/docx/WNowd6mU4ozO5mxLuQWcjimenIf?from=from_copylink)
3+
Other languages: [简体中文](README.zh-CN.md)
4+
5+
[Website](https://www.montplex.com/)[Engula trial instructions](engula-test-intro.md)
6+
## The Most Cost-Efficient In-Memory Data Store
7+
Engula is a high-performance, enhanced distribution of Redis®* OSS, designed to deliver superior memory compression and performance optimizations without altering Redis's protocol or binary outputs. Engula ensures full compatibility with Redis APIs, enabling seamless adoption without any code changes.
8+
9+
## Features
10+
11+
- **Redis Compatibility**: Fully compatible with Redis protocols and APIs across versions 5.0.14, 6.2.16, and 7.2.4.
12+
- **Memory Compression**: Advanced hybrid compression algorithms that automatically select compression based on workload, optimizing memory usage without compromising performance.
13+
- **Consistent Behavior**: Maintains Redis’s transaction model, correctness, and behavior across all supported versions.
14+
- **Full compatibility**: Engula maintains the same transaction model, correctness, and behavior as the corresponding Redis versions.
15+
- **Binary compatibility**: Data files generated by Engula are fully compatible with Redis OSS.
16+
17+
## Contents
18+
19+
- [Compression Algorithm](#compression-algorithm)
20+
- [Compression Efficiency](#compression-efficiency)
21+
- [Configuration](#configuration)
22+
- [Licensing](#licensing)
23+
24+
## Compression Algorithm
25+
Engula's advanced compression algorithm intelligently evaluates data to determine the optimal compression strategy. It balances the trade-off between compression overhead and memory savings, delivering efficient performance for varied workloads.
26+
![Transparent-hybrid-compression-en.png](assets/Transparent-hybrid-compression-en.png)
27+
### Compression Efficiency
28+
29+
| **Business Name** | **Before Compression** | **After Compression** | **Compression Rate** | **Average Value Size** |
30+
|------------------------------------------------------|------------------------|-----------------------|----------------------|------------------------|
31+
| User Profiles for an Internet Forum | 13.88 GB | 6.11 GB | 44% | 4 KB |
32+
| Favorites and Carts in a Food Ordering App | 2.11 GB | 0.91 GB | 42% | 2 KB |
33+
| Traffic Operations Records for a Car Rental Platform | 3.1 GB | 1.7 GB | 55% | - |
34+
| Bank risk control model data | 9.44 GB | 2.352 GB | 25% | 5 KB |
35+
36+
## Configuration
37+
38+
Engula supports common Redis configuration parameters to ensure seamless integration.
39+
## Licensing
40+
For detailed license information, please see the [LICENSES](LICENSES) file.
41+
42+
> Redis is a registered trademark of Redis Ltd. Any rights therein are reserved to Redis Ltd. Any use by Montplex is for referential purposes only and does not indicate any sponsorship, endorsement or affiliation between Redis and Montplex.

README.zh-CN.md

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
[![Twitter URL](https://img.shields.io/twitter/follow/MontplexDB?style=social)](https://x.com/MontplexDB)
2+
3+
其他语言:[简体中文](README.zh-CN.md)
4+
5+
[官方网站](https://www.montplex.com/)[Engula 测试版使用说明](engula-test-intro-cn.md)
6+
7+
## 最具成本效益的内存数据存储
8+
9+
Engula 是由 Montplex 开发的 Redis®* OSS 高性能增强版,旨在提供卓越的内存压缩和性能优化,同时不改变 Redis 的协议或二进制输出。Engula 确保与 Redis API 完全兼容,无需任何代码更改即可无缝采用。
10+
11+
## 特性
12+
13+
- **Redis 兼容性**:完全兼容 Redis 5.0.14、6.2.16 和 7.2.4 版本的协议和 API。
14+
- **内存压缩**:先进的混合压缩算法,根据工作负载自动选择压缩方式,优化内存使用而不影响性能。
15+
- **一致行为**:在所有支持的版本中保持 Redis 的事务模型、正确性和行为。
16+
- **完全兼容性**:Engula 保持与相应 Redis 版本相同的事务模型、正确性和行为。
17+
- **二进制兼容性**:Engula 生成的数据文件与 Redis OSS 完全兼容。
18+
19+
## 目录
20+
21+
- [压缩算法](#压缩算法)
22+
- [压缩效率](#压缩效率)
23+
- [配置](#配置)
24+
- [许可证](#许可证)
25+
26+
## 压缩算法
27+
28+
Engula 的先进压缩算法智能评估数据以确定最佳压缩策略。它平衡了压缩开销和内存节省之间的权衡,为各种工作负载提供高效性能。
29+
![Transparent-hybrid-compression-en.png](assets/Transparent-hybrid-compression-cn.png)
30+
31+
### 压缩效率
32+
33+
| **业务名称** | **压缩前** | **压缩后** | **压缩率** | **平均值大小** |
34+
|----------------|------------|------------|------------|----------------|
35+
| 互联网论坛用户资料 | 13.88 GB | 6.11 GB | 44% | 4 KB |
36+
| 外卖 App 收藏夹和购物车 | 2.11 GB | 0.91 GB | 42% | 2 KB |
37+
| 租车平台交通运营记录 | 3.1 GB | 1.7 GB | 55% | - |
38+
| 银行风控平台数据 | 9.44 GB | 2.352 GB | 25% | 5 KB |
39+
40+
41+
## 配置
42+
43+
Engula 支持常见的 Redis 配置参数,以确保无缝集成。
44+
45+
## 许可证
46+
47+
有关详细的许可证信息,请查看 [LICENSES](LICENSES) 文件。
48+
49+
> Redis 是 Redis Ltd. 的注册商标。其中的任何权利均保留给 Redis Ltd。Montplex 对其的任何使用仅出于引用目的,并不表示 Redis 和 Montplex 之间存在任何赞助、认可或附属关系。
594 KB
Loading
596 KB
Loading

assets/engula-grafana.png

160 KB
Loading

engula-test-intro-cn.md

Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
# 1. 概述
2+
3+
Engula 是一个 100% 兼容 Redis 的自研缓存内核产品,包含以下几个组件:
4+
5+
- engula-server(必选):一个内置压缩算法、与 redis-server 全兼容的可执行程序。
6+
- engula-exporter(可选):开源 redis-exporter 的扩展版,支持输出 engula-server 特有的监控 metrics。
7+
- Engula Dashboard (可选):Grafana Dashboard 的定义文件,可以导入 Grafana 系统,展示 engula-exporter 输出的 engula-server 监控 metrics。
8+
9+
注:该版本为测试版,默认有效期为1个月。
10+
11+
# 2. 在现有的 Redis 系统中部署 Engula
12+
13+
## 2.1 安装
14+
15+
把 engula.tar.gz 文件解压,在 engula/bin 目录下包含 engula-server 和 engula-exporter 可执行文件,以及对应的 redis 软连接。
16+
17+
```bash
18+
$ tar -xvf engula-v1.0.0-r5.0.14.linux-amd64.tar.gz
19+
20+
$ ls -l engula-v1.0.0-r5.0.14/bin/
21+
total 44236
22+
-rwxr-xr-x 1 ubuntu ubuntu 9266080 Oct 9 12:26 engula-server
23+
-rwxr-xr-x 1 ubuntu ubuntu 8302744 Oct 9 12:30 engula_exporter
24+
-rwxr-xr-x 1 ubuntu ubuntu 4367928 Oct 9 12:26 redis-benchmark
25+
-rwxr-xr-x 1 ubuntu ubuntu 9266080 Oct 9 12:26 redis-check-aof
26+
-rwxr-xr-x 1 ubuntu ubuntu 9266080 Oct 9 12:26 redis-check-rdb
27+
-rwxr-xr-x 1 ubuntu ubuntu 4809456 Oct 9 12:26 redis-cli
28+
lrwxrwxrwx 1 ubuntu ubuntu 13 Oct 9 12:26 redis-sentinel -> engula-server
29+
lrwxrwxrwx 1 ubuntu ubuntu 13 Oct 9 12:26 redis-server -> engula-server
30+
lrwxrwxrwx 1 ubuntu ubuntu 15 Oct 9 12:30 redis_exporter -> engula_exporter
31+
32+
$ ls -l engula-v1.0.0-r5.0.14/conf/
33+
total 112
34+
-rw-r--r-- 1 ubuntu ubuntu 46942 Oct 9 12:29 engula-dashboard.json
35+
-rw-r--r-- 1 ubuntu ubuntu 63088 Oct 9 12:29 redis.conf
36+
```
37+
## 2.2 部署
38+
因为 engula-server 与 redis-server 100% 兼容,在现有的 Redis 系统中替换 engula-server 非常简单,只需要用 engula-server 程序替代 redis-server 程序即可。
39+
40+
## 2.3 监控
41+
### 2.3.1 通过 "ENGULA INFO" 命令
42+
engula-server 运行过程中,可以用 redis-cli 执行 `engula info` 命令,获取 engula-server 的运行时信息:
43+
44+
注:使用 redis 原生的 redis-cli 程序,不会对 `engula info` 命令输出内容进行换行格式化。使用 engula 安装包中自带的 redis-cli 程序可以获得更易于阅读的输出结果。
45+
```bash
46+
./redis-cli engula info
47+
48+
# Summary
49+
compress_enabled:1
50+
license_remaining:2569632
51+
memory_raw_data_bytes:0
52+
memory_compressed_data_bytes:0
53+
memory_tot_saved_bytes:0
54+
compress_tot_ignore_cnt:0
55+
56+
# Block
57+
block_compress_tot_cnt:0
58+
block_compress_failed_cnt:0
59+
block_compress_tot_before_bytes:0
60+
block_compress_tot_after_bytes:0
61+
block_decompress_tot_cnt:0
62+
block_decompress_failed_cnt:0
63+
64+
# Dict
65+
dict_compress_tot_cnt:0
66+
dict_compress_failed_cnt:0
67+
dict_compress_tot_before_bytes:0
68+
dict_compress_tot_after_bytes:0
69+
dict_decompress_tot_cnt:0
70+
dict_decompress_failed_cnt:0
71+
```
72+
73+
### 2.3.2 通过 Prometheus/Grafana
74+
如果现有的 Redis 系统中有 redis-exporter / prometheus 监控体系,且希望监控 engula server 特有的运行指标,可以执行下面的可选步骤:
75+
76+
* 使用 engula-exporter 程序替代 redis-exporter 程序。
77+
* 在 Grafana 的操作界面,选择 `Dashboards -> New -> Import`, 导入安装包内包含的 Dashboad 文件 `conf/engula-dashboard.json`
78+
79+
展示页面样例:
80+
81+
![alt text](assets/engula-grafana.png)

engula-test-intro.md

Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
# 1. Overview
2+
3+
Engula is a 100% Redis-compatible, self-developed cache kernel product that includes the following components:
4+
5+
- engula-server (required): An executable program with built-in compression algorithms, fully compatible with redis-server.
6+
- engula-exporter (optional): An extended version of the open-source redis-exporter, supporting output of engula-server-specific monitoring metrics.
7+
- Engula Dashboard (optional): A Grafana Dashboard definition file that can be imported into the Grafana system to display engula-server monitoring metrics output by engula-exporter.
8+
9+
Note: This is a trial version for users with a default validity period of 1 month.
10+
11+
# 2. Deploying Engula in Existing Redis Systems
12+
13+
## 2.1 Installation
14+
15+
Extract the engula.tar.gz file. The engula/bin directory contains engula-server and engula-exporter executables, as well as corresponding redis symbolic links.
16+
17+
```bash
18+
$ tar -xvf engula-v1.0.0-r5.0.14.linux-amd64.tar.gz
19+
20+
$ ls -l engula-v1.0.0-r5.0.14/bin/
21+
total 44236
22+
-rwxr-xr-x 1 ubuntu ubuntu 9266080 Oct 9 12:26 engula-server
23+
-rwxr-xr-x 1 ubuntu ubuntu 8302744 Oct 9 12:30 engula_exporter
24+
-rwxr-xr-x 1 ubuntu ubuntu 4367928 Oct 9 12:26 redis-benchmark
25+
-rwxr-xr-x 1 ubuntu ubuntu 9266080 Oct 9 12:26 redis-check-aof
26+
-rwxr-xr-x 1 ubuntu ubuntu 9266080 Oct 9 12:26 redis-check-rdb
27+
-rwxr-xr-x 1 ubuntu ubuntu 4809456 Oct 9 12:26 redis-cli
28+
lrwxrwxrwx 1 ubuntu ubuntu 13 Oct 9 12:26 redis-sentinel -> engula-server
29+
lrwxrwxrwx 1 ubuntu ubuntu 13 Oct 9 12:26 redis-server -> engula-server
30+
lrwxrwxrwx 1 ubuntu ubuntu 15 Oct 9 12:30 redis_exporter -> engula_exporter
31+
32+
$ ls -l engula-v1.0.0-r5.0.14/conf/
33+
total 112
34+
-rw-r--r-- 1 ubuntu ubuntu 46942 Oct 9 12:29 engula-dashboard.json
35+
-rw-r--r-- 1 ubuntu ubuntu 63088 Oct 9 12:29 redis.conf
36+
```
37+
38+
## 2.2 Deployment
39+
40+
Since engula-server is 100% compatible with redis-server, replacing engula-server in existing Redis systems is very simple. You only need to replace the redis-server program with the engula-server program.
41+
42+
## 2.3 Monitoring
43+
44+
### 2.3.1 Using the "ENGULA INFO" Command
45+
46+
While engula-server is running, you can use redis-cli to execute the `engula info` command to obtain runtime information of engula-server:
47+
48+
Note: Using the native redis-cli program will not format the output of the `engula info` command with line breaks. Using the redis-cli program included in the engula installation package will provide more readable output results.
49+
50+
```bash
51+
./redis-cli engula info
52+
53+
# Summary
54+
compress_enabled:1
55+
license_remaining:2569632
56+
memory_raw_data_bytes:0
57+
memory_compressed_data_bytes:0
58+
memory_tot_saved_bytes:0
59+
compress_tot_ignore_cnt:0
60+
61+
# Block
62+
block_compress_tot_cnt:0
63+
block_compress_failed_cnt:0
64+
block_compress_tot_before_bytes:0
65+
block_compress_tot_after_bytes:0
66+
block_decompress_tot_cnt:0
67+
block_decompress_failed_cnt:0
68+
69+
# Dict
70+
dict_compress_tot_cnt:0
71+
dict_compress_failed_cnt:0
72+
dict_compress_tot_before_bytes:0
73+
dict_compress_tot_after_bytes:0
74+
dict_decompress_tot_cnt:0
75+
dict_decompress_failed_cnt:0
76+
```
77+
78+
### 2.3.2 Using Prometheus/Grafana
79+
80+
If the existing Redis system has a redis-exporter / prometheus monitoring system and you want to monitor engula server-specific runtime metrics, you can perform the following optional steps:
81+
82+
* Replace the redis-exporter program with the engula-exporter program.
83+
* In the Grafana interface, select `Dashboards -> New -> Import` and import the Dashboard file `conf/engula-dashboard.json` included in the installation package.
84+
85+
Sample display page:
86+
87+
![alt text](assets/engula-grafana.png)

0 commit comments

Comments
 (0)