ThinkPHP 6使用 mongoDB

在config/database.php添加mongoDB数据库配置信息:

        // 更多的数据库配置信息
        'mongodb'=>[
            // 数据库类型
            'type'              => 'mongo',
            // 服务器地址
            'hostname'          => '127.0.0.1',
            // 数据库名
            'database'          => 'test',
            // 用户名
            'username'          => '',
            // 密码
            'password'          => '',
            // 端口
            'hostport'          => '27017',
            // 数据库连接参数
            'params'            => [],
            // 数据库调试模式
            'debug'             => env('database.debug', true),
            // 数据库部署方式:0 集中式(单一服务器),1 分布式(主从服务器)
            'deploy'            => 0,
            // 数据库读写是否分离 主从式有效
            'rw_separate'       => false,
            // 监听SQL
            'trigger_sql'       => true,
            // 读写分离后 主服务器数量
            'master_num'        => 1,
            // 指定从服务器序号
            'slave_no'          => '',
            // 是否严格检查字段是否存在
            'fields_strict'     => true,
            // 是否需要断线重连
            'break_reconnect'   => false,
            // 字段缓存路径
            'schema_cache_path' => app()->getRuntimePath() . 'schema' . DIRECTORY_SEPARATOR,
        ]

数据存入和读取的代码:

        Db::connect('mongodb')
            ->table('one')
            ->insert(['name'=>123,'age'=>18]);

        $res = Db::connect('mongodb')
            ->table('one')
            ->select();

        dd($res);

效果:

补充一点mongoDB的知识:

mongoDB使用场景:

实时读取,对速度有要求,读取快

数据量大,并且数据保存价值不大,比如说文章的评论,尽管有数据持久化,但仍有丢失风险

不要求使用事务,不支持事务

mongoDB使用案例:

京东,存储商品信息,和关注功能.

赶集网,记录pv浏览计数

奇虎360,每天接受200亿次的查询

百度云,存储500亿条关于文件源信息的记录.

CERN粒子物理研究所,存储大型强子对撞机的数据

mongoDB和Redis的区别: 

内存管理机制:Redis数据全部存储在内存,定期写入磁盘,当内存不够是,可以选择指定的LRU算法删除数据。Mongodb数据存在内存上,由Linux系统mmap实现,当内存不够时,只将热点数据放入内存,其他数据存在磁盘。

数据结构:Redis支持多种数据结构,包括Hash、set、list等。Mongodb支持比较单一,但支持丰富的数据表达,索引,最类似于关系型数据库,支持的查询语言比较丰富。 


版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/a18132147899/article/details/125476572