亚洲免费乱码视频,日韩 欧美 国产 动漫 一区,97在线观看免费视频播国产,中文字幕亚洲图片

      1. <legend id="ppnor"></legend>

      2. 
        
        <sup id="ppnor"><input id="ppnor"></input></sup>
        <s id="ppnor"></s>

        ThinkPHP自定義Redis處理SESSION的實現(xiàn)方法

        字號:


            本文實例講述了ThinkPHP自定義Redis處理SESSION的實現(xiàn)方法。分享給大家供大家參考,具體如下:
            日常中我們都會使用到session來保存用戶登錄的信息,常用的session的保存方式有:文件保存(默認(rèn))、數(shù)據(jù)庫保存、Redis保存、memcached等。這里主要記錄一下在用ThinkPHP處理session用Redis來保存session的用法。
            1.在配置項中定義:
            'SESSION_TYPE' => 'Redis', //session保存類型
            'SESSION_PREFIX' => 'sess_', //session前綴
            'REDIS_HOST' => '127.0.0.1' //REDIS服務(wù)器地址
            'REDIS_PORT' => 6379, //REDIS連接端口號
            'SESSION_EXPIRE' => 3600, //SESSION過期時間
            可以ThinkPHP/Common/functions.php文件中找到定義session的方法,大約在1179行左右讀取session驅(qū)動的判斷。如果我們定義了配置項SESSION_TYPE,則會new一個Redis對象并調(diào)用會話存儲函數(shù)session_set_save_handler()。
            2.在ThinkPHP\Library\Think\Session\Driver目錄下新建Redis.class.php文件
            文件內(nèi)容如下:
            <?php
            namespace Think\Session\Driver;
            class Redis {
            //  Redis連接對象
              private $redis;
            //  Session過期時間
              private $expire;
              /**
               * 打開方法
               * @param type $path
               * @param type $name
               * @return type
               */
              public function open($path, $name) {
              $this->expire = C('SESSION_EXPIRE') ? C('SESSION_EXPIRE') : ini_get('session.gc_maxLifetime');
              $this->redis = new Redis();
              return $this->redis->connect(C('REDIS_HOST'), C('REDIS_PORT'));
              }
              /**
               * 關(guān)閉
               * @return type
               */
              public function close() {
              return $this->redis->close();
              }
              /**
               * 讀取
               * @param string $id
               * @return type
               */
              public function read($id) {
              $id = C('SESSION_PREFIX') . $id;
              $data = $this->redis->get($id);
              return $data ? $data : '';
              }
              /**
               * 寫入
               * @param string $id
               * @param type $data
               * @return type
               */
              public function write($id, $data) {
              $id = C('SESSION_PREFIX') . $id;
              return $this->redis->set($id, $data, $this->expire);
              }
              /**
               * 銷毀
               * @param string $id
               */
              public function destroy($id) {
              $id = C('SESSION_PREFIX') . $id;
              $this->redis->delete($id);
              }
              /**
               * 垃圾回收
               * @param type $maxLifeTime
               * @return boolean
               */
              public function gc($maxLifeTime) {
              return true;
              }
            }
            至此就完成了Redis對session的處理。
            memcached的方法和Redis差不多一樣!
            希望本文所述對大家基于ThinkPHP框架的PHP程序設(shè)計有所幫助。