It's strongly suggested to use docker to build up those services ^_^
If you intended to pass a host directory, please use absolute path.
-
Redis Memory Database
Create a local volume on host machine and editing configration files. Please don't forget to change your password.
#if you are using windows, please download WSL2 mkdir -p /path/to/redis/{conf,data} cat > /path/to/redis/conf/redis.conf <<EOF # bind 192.168.1.100 10.0.0.1 # listens on two specific IPv4 addresses # bind 127.0.0.1 ::1 # listens on loopback IPv4 and IPv6 # bind * -::* # like the default, all available interfaces # bind 127.0.0.1 -::1 protected-mode no port 6379 tcp-backlog 511 timeout 0 tcp-keepalive 300 daemonize no pidfile /var/run/redis_6379.pid loglevel notice logfile "" databases 16 always-show-logo no set-proc-title yes proc-title-template "{title} {listen-addr} {server-mode}" locale-collate "" stop-writes-on-bgsave-error yes rdbcompression yes rdbchecksum yes dbfilename dump.rdb rdb-del-sync-files no dir ./ #---------------------------password-------------------------------------------- requirepass 123456 #--------------------------------------------------------------------------------- replica-serve-stale-data yes replica-read-only yes repl-diskless-sync yes repl-diskless-sync-delay 5 repl-diskless-sync-max-replicas 0 repl-diskless-load disabled repl-disable-tcp-nodelay no replica-priority 100 acllog-max-len 128 lazyfree-lazy-eviction no lazyfree-lazy-expire no lazyfree-lazy-server-del no replica-lazy-flush no lazyfree-lazy-user-del no lazyfree-lazy-user-flush no oom-score-adj no oom-score-adj-values 0 200 800 disable-thp yes appendonly no appendfilename "appendonly.aof" appenddirname "appendonlydir" appendfsync everysec no-appendfsync-on-rewrite no auto-aof-rewrite-percentage 100 auto-aof-rewrite-min-size 64mb aof-load-truncated yes aof-use-rdb-preamble yes aof-timestamp-enabled no slowlog-log-slower-than 10000 slowlog-max-len 128 latency-monitor-threshold 0 notify-keyspace-events "" hash-max-listpack-entries 512 hash-max-listpack-value 64 list-max-listpack-size -2 list-compress-depth 0 set-max-intset-entries 512 set-max-listpack-entries 128 set-max-listpack-value 64 zset-max-listpack-entries 128 zset-max-listpack-value 64 hll-sparse-max-bytes 3000 stream-node-max-bytes 4096 stream-node-max-entries 100 activerehashing yes client-output-buffer-limit normal 0 0 0 client-output-buffer-limit replica 256mb 64mb 60 client-output-buffer-limit pubsub 32mb 8mb 60 hz 10 dynamic-hz yes aof-rewrite-incremental-fsync yes rdb-save-incremental-fsync yes jemalloc-bg-thread yes EOF
Creating a
Redis
container and execute following commands.docker pull redis:7.2.4 #Pull the official docker image from Docker hub docker run \ --restart always \ -p 16379:6379 --name redis \ --privileged=true \ -v /path/to/redis/conf/redis.conf:/etc/redis/redis.conf \ -v /path/to/redis/data:/data:rw \ -d redis:7.2.4 redis-server /etc/redis/redis.conf \ --appendonly yes
Entering
Redis
container and access to command lineredis-cli
.docker exec -it redis bash #entering redis redis-cli #login redis db
[BalanceService]
host=127.0.0.1
port=59900
[Redis]
host=127.0.0.1
port=16379
password=123456
Windows, Linux, MacOS(Intel & Apple Silicon M)
git clone https://github.com/Liupeter01/balance-server
grpc-1.50.2 will be downloaded automatically, and we will use boringssl instead of openssl
For Windows users, fetch content will download all of those for you
-
For Linux/Windows
cd FullStackChattingDemo/server git submodule update --init cmake -Bbuild -DCMAKE_BUILD_TYPE=Release cmake --build build --parallel [x]
-
For MacOS
cd FullStackChattingDemo/server git submodule update --init cmake -Bbuild -DCMAKE_BUILD_TYPE=Release -DCMAKE_INCLUDE_PATH=/usr/local/include cmake --build build --parallel [x]
-
Activate Redis service
IMPORTANT: you have to start the services first!!
-
Execute Servers' program
./balance-server/build/BalanceServer