mirror of
https://github.com/joyieldInc/predixy.git
synced 2025-12-24 22:46:41 +08:00
Update README.md
This commit is contained in:
parent
49877b59e0
commit
4741e58e3d
83
README.md
83
README.md
@ -23,7 +23,7 @@
|
|||||||
+ Stats info, CPU/Memory/Requests/Responses and so on.
|
+ Stats info, CPU/Memory/Requests/Responses and so on.
|
||||||
+ Latency monitor.
|
+ Latency monitor.
|
||||||
|
|
||||||
## Build
|
## Generic Build Instructions
|
||||||
|
|
||||||
Predixy can be compiled and used on Linux, OSX, BSD, Windows([Cygwin](http://www.cygwin.com/)). Requires C++11 compiler.
|
Predixy can be compiled and used on Linux, OSX, BSD, Windows([Cygwin](http://www.cygwin.com/)). Requires C++11 compiler.
|
||||||
|
|
||||||
@ -48,13 +48,13 @@ For examples:
|
|||||||
$ make MT=false
|
$ make MT=false
|
||||||
$ make debug MT=false TS=true
|
$ make debug MT=false TS=true
|
||||||
|
|
||||||
## Install
|
## Generic Install Instructions
|
||||||
|
|
||||||
Just copy src/predixy to the install path
|
Just copy src/predixy to the install path
|
||||||
|
|
||||||
$ cp src/predixy /path/to/bin
|
$ cp src/predixy /path/to/bin
|
||||||
|
|
||||||
## Configuration
|
## Generic Configuration Instructions
|
||||||
|
|
||||||
See below files:
|
See below files:
|
||||||
+ predixy.conf, basic config, will refrence below config files.
|
+ predixy.conf, basic config, will refrence below config files.
|
||||||
@ -117,6 +117,83 @@ Reset all stats and latency monitors, require admin permission.
|
|||||||
|
|
||||||
redis> CONFIG ResetStat
|
redis> CONFIG ResetStat
|
||||||
|
|
||||||
|
## Instacart Local Development Instructions
|
||||||
|
|
||||||
|
### Prerequisites
|
||||||
|
- Local Redis instance running on default port (6379)
|
||||||
|
- C++11 compiler
|
||||||
|
- Make
|
||||||
|
|
||||||
|
### Install Redis Locally
|
||||||
|
|
||||||
|
1. Use Homebrew to install Redis in a single instance mode with cluster mode disabled to test your changes locally
|
||||||
|
```bash
|
||||||
|
$ brew install redis
|
||||||
|
```
|
||||||
|
|
||||||
|
2. Start Redis
|
||||||
|
```bash
|
||||||
|
$ brew services start redis
|
||||||
|
```
|
||||||
|
|
||||||
|
3. Verify your local Redis is running:
|
||||||
|
```bash
|
||||||
|
$ redis-cli -h 127.0.0.1 -p 6379 ping
|
||||||
|
```
|
||||||
|
Should return "PONG"
|
||||||
|
|
||||||
|
```bash
|
||||||
|
$ redis-cli -h 127.0.0.1 -p 6379 info
|
||||||
|
```
|
||||||
|
|
||||||
|
Will return info about the Redis instance, if required for debugging
|
||||||
|
|
||||||
|
Note, logs for Redis installed by Brew will appear in `/opt/homebrew/var/log/redis.log` by default.
|
||||||
|
|
||||||
|
### Building and Running Predixy Locally
|
||||||
|
|
||||||
|
1. Compile Predixy:
|
||||||
|
```bash
|
||||||
|
$ make
|
||||||
|
```
|
||||||
|
This will create object files and the executable in the `src` directory.
|
||||||
|
|
||||||
|
2. Verify your local Redis is running:
|
||||||
|
```bash
|
||||||
|
$ redis-cli -h 127.0.0.1 -p 6379 ping
|
||||||
|
```
|
||||||
|
Should return "PONG"
|
||||||
|
|
||||||
|
3. Start Predixy using the local configuration:
|
||||||
|
```bash
|
||||||
|
$ src/predixy conf/predixy_local.conf
|
||||||
|
```
|
||||||
|
You should see output indicating Predixy is listening on 127.0.0.1:7617
|
||||||
|
|
||||||
|
4. Test the connection through Predixy:
|
||||||
|
```bash
|
||||||
|
# Basic connectivity test
|
||||||
|
$ redis-cli -h 127.0.0.1 -p 7617 ping
|
||||||
|
|
||||||
|
# Check Predixy status
|
||||||
|
$ redis-cli -h 127.0.0.1 -p 7617 info
|
||||||
|
|
||||||
|
# Test read/write operations
|
||||||
|
$ redis-cli -h 127.0.0.1 -p 7617 set test "Hello via Predixy"
|
||||||
|
$ redis-cli -h 127.0.0.1 -p 7617 get test
|
||||||
|
```
|
||||||
|
|
||||||
|
5. To stop Predixy:
|
||||||
|
```bash
|
||||||
|
$ pkill -f predixy
|
||||||
|
```
|
||||||
|
|
||||||
|
### Notes
|
||||||
|
- Predixy will be listening on port 7617 while your Redis instance remains on 6379
|
||||||
|
- The configuration in `predixy_local.conf` is set up for a single local Redis instance
|
||||||
|
- Build artifacts (*.o files) are ignored by git but can be safely kept for development
|
||||||
|
- Logs will appear in stdout by default
|
||||||
|
|
||||||
## Benchmark
|
## Benchmark
|
||||||
|
|
||||||
predixy is fast, how fast? more than twemproxy, codis, redis-cerberus
|
predixy is fast, how fast? more than twemproxy, codis, redis-cerberus
|
||||||
|
|||||||
@ -1,104 +0,0 @@
|
|||||||
################################### GENERAL ####################################
|
|
||||||
## Predixy configuration file example
|
|
||||||
|
|
||||||
## Specify a name for this predixy service
|
|
||||||
## redis command INFO can get this
|
|
||||||
Name PredixyLocalRedis
|
|
||||||
|
|
||||||
## Specify listen address, support IPV4, IPV6, Unix socket
|
|
||||||
## Using a different port than Redis to avoid conflicts
|
|
||||||
Bind 127.0.0.1:7617
|
|
||||||
|
|
||||||
## Worker threads
|
|
||||||
WorkerThreads 1
|
|
||||||
|
|
||||||
## Memory limit, 0 means unlimited
|
|
||||||
MaxMemory 0
|
|
||||||
|
|
||||||
## Close the connection after a client is idle for N seconds (0 to disable)
|
|
||||||
## ClientTimeout can change online by CONFIG SET ClientTimeout N
|
|
||||||
## Default is 0
|
|
||||||
ClientTimeout 300
|
|
||||||
|
|
||||||
## IO buffer size
|
|
||||||
## Default is 4096
|
|
||||||
BufSize 4096
|
|
||||||
|
|
||||||
################################### LOG ########################################
|
|
||||||
## Log file path
|
|
||||||
## Unspecify will log to stdout
|
|
||||||
## Default is Unspecified
|
|
||||||
# Log ./predixy.log
|
|
||||||
|
|
||||||
## LogRotate support
|
|
||||||
|
|
||||||
## 1d rotate log every day
|
|
||||||
## nh rotate log every n hours 1 <= n <= 24
|
|
||||||
## nm rotate log every n minutes 1 <= n <= 1440
|
|
||||||
## nG rotate log evenry nG bytes
|
|
||||||
## nM rotate log evenry nM bytes
|
|
||||||
## time rotate and size rotate can combine eg 1h 2G, means 1h or 2G roate a time
|
|
||||||
|
|
||||||
## Examples:
|
|
||||||
# LogRotate 1d 2G
|
|
||||||
# LogRotate 1d
|
|
||||||
|
|
||||||
## Default is disable LogRotate
|
|
||||||
|
|
||||||
## In multi-threads, worker thread log need lock,
|
|
||||||
## AllowMissLog can reduce lock time for improve performance
|
|
||||||
## AllowMissLog can change online by CONFIG SET AllowMissLog true|false
|
|
||||||
## Default is true
|
|
||||||
# AllowMissLog false
|
|
||||||
|
|
||||||
## LogLevelSample, output a log every N
|
|
||||||
## all level sample can change online by CONFIG SET LogXXXSample N
|
|
||||||
LogVerbSample 0
|
|
||||||
LogDebugSample 0
|
|
||||||
LogInfoSample 10000
|
|
||||||
LogNoticeSample 1
|
|
||||||
LogWarnSample 1
|
|
||||||
LogErrorSample 1
|
|
||||||
|
|
||||||
################################### AUTHORITY ##################################
|
|
||||||
## Simple auth config for local development
|
|
||||||
Authority {
|
|
||||||
Auth {
|
|
||||||
Mode write
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
################################### SERVERS ####################################
|
|
||||||
## Standalone Redis configuration
|
|
||||||
StandaloneServerPool {
|
|
||||||
Databases 16
|
|
||||||
Hash crc16
|
|
||||||
HashTag "{}"
|
|
||||||
Distribution modula
|
|
||||||
MasterReadPriority 60
|
|
||||||
StaticSlaveReadPriority 50
|
|
||||||
DynamicSlaveReadPriority 50
|
|
||||||
RefreshMethod fixed
|
|
||||||
ServerTimeout 1
|
|
||||||
ServerFailureLimit 10
|
|
||||||
ServerRetryTimeout 1
|
|
||||||
KeepAlive 120
|
|
||||||
Group local {
|
|
||||||
+ 127.0.0.1:6379
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
################################### DATACENTER #################################
|
|
||||||
## LocalDC specify current machine dc
|
|
||||||
# LocalDC bj
|
|
||||||
|
|
||||||
## see dc.conf
|
|
||||||
# Include dc.conf
|
|
||||||
|
|
||||||
################################### COMMAND ####################################
|
|
||||||
## Custom command define, see command.conf
|
|
||||||
#Include command.conf
|
|
||||||
|
|
||||||
################################### LATENCY ####################################
|
|
||||||
## Latency monitor define, see latency.conf
|
|
||||||
Include latency.conf
|
|
||||||
Loading…
Reference in New Issue
Block a user