项目在这里: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
下面也有说怎么
几个小点
-
一些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
更新即可
- 安装WSL2后,mobaXterm可以检测到并且可以一键链接,非常方便
- 可以顺便在微软商店安装windows终端,并且在终端设置里默认采用ubuntu启动 可以在Ubuntu的配置文件里设置启动目录(即是共享文件夹,又是打开Ubuntu终端的一开始显示的目录)
- 安装 g++ / cmake / git
apt-get install g++
apt-get install cmake
apt-get install git
-
安装配置 mysql
安装如下,配置待补:
apt-get install mysql-server
- 安装配置 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混用——丢失太多数据是不可容忍的。
差不多了