天天看點

遊戲伺服器(一)開發環境 VScode + WSL 配置 及 redis 安裝

項目在這裡:https://gitee.com/zizaihuan/untitled_game,新手不易求支援❥(^_-)

1、使用VScode和WSL開發

wsl2安裝

https://docs.microsoft.com/zh-cn/windows/wsl/install-win10

https://zhuanlan.zhihu.com/p/147493558

下面也有說怎麼

幾個小點

  1. 一些linux裡的設定

    使用su

    sudo passwd root

    使用su進入root權限

    apt-get源修改為阿裡雲源

    在root權限下把/etc/apt/sources.list的archive.ubuntu.com改成mirrors.aliyun.com,

    可以用vim進入,輸入

:%s/archive.ubuntu.com/mirrors.aliyun.com/g

進行全局替換,然後運作

apt-get update
apt-get upgrade
           

更新即可

  1. 安裝WSL2後,mobaXterm可以檢測到并且可以一鍵連結,非常友善
    遊戲伺服器(一)開發環境 VScode + WSL 配置 及 redis 安裝
  2. 可以順便在微軟商店安裝windows終端,并且在終端設定裡預設采用ubuntu啟動
    遊戲伺服器(一)開發環境 VScode + WSL 配置 及 redis 安裝
    可以在Ubuntu的配置檔案裡設定啟動目錄(即是共享檔案夾,又是打開Ubuntu終端的一開始顯示的目錄)
    遊戲伺服器(一)開發環境 VScode + WSL 配置 及 redis 安裝
  3. 安裝 g++ / cmake / git

apt-get install g++

apt-get install cmake

apt-get install git

  1. 安裝配置 mysql

    安裝如下,配置待補:

apt-get install mysql-server
  1. 安裝配置 redis

此處我不采用 apt-get install redis-server(因為版本隻有5.0.1),而是直接去官網擷取最新版本

git clone git://github.com/redis/redis.git

cd redis/

按照官網的說法,可以先按安裝這兩個,分别用以支援systemd和ssl。

apt-get install libsystemd-dev

apt-get install libssl-dev

apt-get install pkg-config(根據安裝報錯資訊安裝)

make BUILD_TLS=yes USE_SYSTEMD=yes

之後可以運作測試:

apt-get install tcl(根據測試報錯資訊安裝)

make test

如果提示逾時錯誤

!!! WARNING The following tests failed:

*** [err]: MULTI-EXEC body and script timeout in tests/unit/multi.tcl

可能不是 multi.tcl 這個檔案,也可能會提示别的。進去你報錯的這個檔案,把兩個after的地方修改,這兩個地方的值預設是200,我都修改成了500。

https://blog.csdn.net/qq_36314960/article/details/82193673

https://www.cnblogs.com/northwest332/p/14450299.html

這些個測試逾時的原因應該是有的處理器過于垃圾(比如低價雲伺服器),駕馭不了測試腳本,導緻爆出測試逾時的錯誤,把時間修改得寬松一點,測試就能通過了。

如果出現大概如下的錯誤:

Can’t start the Redis server

https://www.baidu.com/link?url=ekuQJobnX44_y0s-Cy4XoSQ1NqJXSjmbcx15H3sw93_pns54MHQav67EsV5FNZxFNT_DMHQk-ytCedZ6oG-cnK&wd=&eqid=eb9180b50001c90f00000006611c92e2

Bind on unix socket: Operation not permitted”

[exception]: Executing test client: can’t read “stat_terminated_by_signal”: no such variable

我想了想,可能是我把redis檔案夾放在挂載目錄/mnt/共享檔案夾下,這樣可能不行?,是以我就把這些檔案全部放到 /root 下,并且啟動 make test,這下就行雲流水一氣呵成了。

然後是安裝:make install

安裝後可以再測試:make test

同時記得這個指令:make distclean,在git pull更新後可以使用

建立一個 redis-data 的檔案夾,用來存放redis的各種檔案,如運作需要的config、運作中産生的log檔案、rdb、aof檔案、pid檔案等。

把 redis 下的 redis.config 檔案夾 copy 到 redis-data 下

具體如何配置 redis.config 我之後會出一篇部落格談談。

// 啟動 redis

redis-server redis.config

// 連接配接 redis

redis-cli

shutdown關閉

vscode

https://docs.microsoft.com/zh-cn/windows/wsl/tutorials/wsl-vscode

c/c++基本配置

https://code.visualstudio.com/docs/cpp/config-wsl

2、實際項目的設計與配置

關于一緻性的問題,需要将mysql資料同步到redis,可以用go-mysql-transfer等工具。但是我時間很少,搞這些太麻煩。

為了絕對的開發效率,讀寫都通過redis進行。

有時間的話我才會考慮對于一些需要持久化的,比如角色等級、屬性、道具、戰鬥日志等,儲存到 mysql。

也就是說前期先不考慮 mysql 的事

把 Redis 開啟RDB、AOF混用——丢失太多資料是不可容忍的。

差不多了

下一篇是項目實際的redis設計和架構設計