我有一个关于Laravel Octane的行、字节和表的问题。
'cache' => [
'rows' => 1000,
'bytes' => 10000,
],
1.为什么我们必须限制Laravel Octane配置文件中的行数和字节数?它们不能像其他数据库(如MySQL)一样无限制吗?
- Swoole是如何确定字节限制的?它是通过
strlen
在后台计算的吗?我们如何避免“无法分配内存”异常?这个异常是否与字节限制有关?每当这个异常发生时,我都必须重新启动我的Docker容器以防止错误再次发生。
'tables' => [
'example:1000' => [
'name' => 'string:1000',
'votes' => 'int',
],
],
1.为什么我们需要在配置文件中定义一个额外的Swoole表?在配置文件中使用Cache::store('octane')->put()
和tables
键有什么区别?在配置文件中提供的示例(字符串:1000)中,:1000是什么意思?
1条答案
按热度按时间hc8w905p1#
1.因为Table是建立在共享内存之上的,所以它不能动态扩展。
Unable to allocate memory
是因为你的数据Key和Hash冲突率超过20%,预留的冲突内存块容量不足,设置新的数据会报Unable to allocate memory错误并返回false,存储失败,这时需要增加$size值并重启服务。Table占用的总内存为(HashTable结构长度+ KEY长度64字节+ $size值)(1 + $conflict_proportion值作为哈希冲突)(列大小)。
Octane::table('example')的表。
希望我能帮到你。