在Yii里面我想達到將Session信息存儲到Memcached里面只需要稍做配置即可,我當前的Yii版本為yii-1.1.13.e9e4a0
'session' => array( 'html' target='_blank'>class' => 'CCacheHttpSession', 'autoStart' => true, 'cacheID' => 'sessionCache', // we only use the sessionCache to store the session 'cookieMode' => 'only', 'timeout' => 1400,),'sessionCache' => array( 'class' => 'system.caching.CMemCache', 'servers' => array( array( 'host' => '192.168.10.193', 'port' => 11211, 'weight' => 6 ), array( 'host' => '192.168.10.226', 'port' => 11211, 'weight' => 3 ), array( 'host' => '192.168.10.228', 'port' => 11211, 'weight' => 2 ), ),),
測試一下登錄沒有問題,然后非常好奇,它真的就存入到Memcached里面了嗎?我們如何來驗證一下呢?
為了省去新建一個Controller所以我就直接寫一個action到SiteController里面去了。
public function actionTestSessionWithMemcached(){ /* * 得到sessionID號 * 計算出來存在memcached的key值是多少. */ $sessionId = Yii::app()->session->sessionID; echo "key:", $key = CCacheHttpSession::CACHE_KEY_PREFIX.$sessionId; /** * 這相當于是直接使用Memcached 連接,和session沒有任何掛鉤, * 我們來看一下session的數據是否真的就存在了memcached里邊。 * 通過計算出來的key直接用 get命令獲取然后將數據打印出來就能看到值了。 * 測試的時候先登錄噢,別不登錄就開始測試估計會獲取不到值,以為有問題呢! */ $mem = Yii::app()->sessionCache; $data =$mem->get($key); var_dump($data);}
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。
新聞熱點
疑難解答