欢迎访问WDPHP素材源码!今天是2024年04月20日 星期六,中午好!吃了吗?
您好,游客 [ 马上登录 | 注册帐号 | 微信登录 | QQ登录]
当前位置:首页 > 源码 > 函数/类库 > ThinkPHP5 数据库版Session驱动

ThinkPHP5 数据库版Session驱动原创
栏目分类:函数/类库    发布日期:2017-08-01    浏览次数:6414次     收藏

ThinkPHP5 数据库版Session驱动,虽然将session入库,可以在一定程度上提高session的性能,但是,session入库同样存在效率不高、占据数据库connection资源等问题,针对这种情况,可以使用memcached、redis等KV数据存储方案实现高并发、大流量的session存储。
浏览次数:6414 文件大小:1.57KB 下载积分:20积分
下载附件,解压,文件路径\extend\driver\session\Db.php
创建数据表
DROP TABLE IF EXISTS `wdphp_session`;
CREATE TABLE `wdphp_session` (
  `session_id` char(40) NOT NULL COMMENT 'SESSION键',
  `data` text NOT NULL COMMENT 'SESSION值',
  `update_time` int(10) unsigned NOT NULL DEFAULT '0' COMMENT 'SESSION更新时间',
  PRIMARY KEY (`session_id`),
  UNIQUE KEY `session_id` (`session_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

配置文件config.php

'session'                => [
        'id'             => '',
        // SESSION_ID的提交变量,解决flash上传跨域
        'var_session_id' => '',
        // SESSION 前缀

        'prefix'         => 'think',
        // 驱动方式 支持redis memcache memcached
        'type'           => '\driver\session\Db',  // 最主要是这里!!!
        // 是否自动开启 SESSION

        'auto_start'     => true,

        // 下面四个可选,你要喜欢的话可以一块配了
        'expire'     => 0, // Session有效期
        'table_name' => 'session', // 表名(不包含前缀)
        'db_config'  => '', //应用配置文件中配置的额外的数据库连接信息
    ],
可能需要说明的就是db_config项,这个就是用来切换数据库连接的,TP5手册里说得很清楚了,截个图吧 当你需要db_config1这个连接数据库的时候,你可以配置
 'db_config'  => 'db_config1'
不配置的话,就是应用默认的数据库连接了
就这么简单

我这个驱动对数据的操作,完全是用了官方的数据库三大神器,采用PDO方式,当然也就包含了Mysql、SqlServer、PgSQL、Sqlite等数据库的支持,虽然我这里用的是MySQL。
虽然将session入库,可以在一定程度上提高session的性能,特别是用memory引擎的时候,但是,session入库同样存在效率不高、占据数据库connection资源等问题,针对这种情况,可以使用memcached、redis等KV数据存储方案实现高并发、大流量的session存储。
也许这也tp官方为什么只出memcached、redis的session驱动,而不出数据库的session驱动的原因吧。

申明:本站代码不提供任何技术服务,仅提供有偿服务。WDPHP素材源码所有资源都经过检测,请放心下载!

声明:本文为原创文章,如需转载,请注明来源 WDPHP.COM 并保留原文链接:http://wdphp.com/detail/1343.html
源码 模板 特效 素材 资源 教程 站长