请教下Octane内存数据持久性相关问题?
1. 运行环境
1). 当前使用的 Laravel 版本?
Laravel Framework 10.22.0
2). 当前使用的 php/php-fpm 版本?
PHP 版本:
PHP 8.1.13 (cli) (built: Dec 1 2022 16:29:48) (NTS)
php-fpm 版本:8.1.13
3). 当前系统
CentOS 7.9
4). 业务环境
开发环境,使用的宝塔面板搭建的
5). 相关软件版本
Nginx 1.22.1
MySQL 8.0.24
Redis 7.2.4
Swoole 5
2. 问题描述?
octane 文档不是提供了两种启动方式嘛,
第一种:octane:start
第二种:octane:reload. (这总适合于启动后,修改了文件上传后重启)
然后关闭方式就是:
octane:stop
虽然这几个命令使用都是正常的,但是,这里面存在一个问题,那就是:
octane使用的是swoole, 将数据常驻内存,那么,这些数据,是什么时候才能写入到数据库中呢?他的机制是什么呢?
我的尝试
1、我先是根据文档,开发过程中一直都是用最开始octane:start,然后呢,就是一直octane:reload了,但是每次reload之后,都会丢失数据,所以渐渐的感觉不太对了。
2、后面我又尝试了octane:stop,然后再octane:start, 诶,这次好了,数据不会丢,重新start后,内存中的数据还在,但是还是并没有写入到数据库中。
3、后面我又根据文档,使用了octane:start --watch 模式,这个好像是可以实时写入数据库,也就是说,它除了可以自动更新加载我们上传的文件外,还跳过了内存,直接写入数据库,但是这个肯定不是我想要的呀,如果不用内存,那octane的意义就没了呀.....
3. 您期望得到的结果?
我主要是想知道,这个【机制】是什么?
不然虽然现在octane:stop是可以保留数据在内存中的,但是服务器总有重启的那一刻啊,
如果以后服务器要重启,我该如何操作呢?
有没有命令能强制写入octane保留的内存数据到数据库?
或者有没有文档给详细解释这个【数据持久性】的【机制】呢?
头疼啊,有知道的大神麻烦告诉下,谢谢啦^_^
推荐文章: