聯(lián)系官方銷售客服
1835022288
028-61286886
CI默認支持的session是以文件的方式保存到磁盤文件中,保存在指定的文件夾中,保存的路徑可以在配置文件中設(shè)置或者在程序中使用函數(shù)session_save_path()進行設(shè)置,但是這么做有弊端,
第一就是保存到文件系統(tǒng)中,效率低,只要有用到session就會從好多個文件中查找指定的sessionid,效率很低。
第二就是當(dāng)用到多臺服務(wù)器的時候可能會出現(xiàn),session丟失問題(其實是保存在了其他服務(wù)器上)。
當(dāng)然了,保存在緩存中可以解決上面的問題,如果使用php本身的session函數(shù),可以使用session_set_save_handler()函數(shù)很方便的對session的處理過程進行重新控制。如果不用php的session系列函數(shù),可以自己編寫個類似的session函數(shù),也是可以的,我現(xiàn)在做的這個項目就是這樣,會根據(jù)用戶的mid、登錄時間進行求hash作為sessionId,每次請求的時候都必須加上sessionId才算合法(第一次登錄的時候是不需要的,這個時候會創(chuàng)建sessionId,返回給客戶端),這么做也很方便、簡潔高效的。
SESSION保存在緩存中
CI將緩存保存到redis中,可以使用配置文件,對session的處理和保存做修改。
Redis 是一種存儲引擎,通常用于緩存,并由于他的高性能而流行起來,這可能也正是你使用 Redis 驅(qū)動的原因。
缺點是它并不像關(guān)系型數(shù)據(jù)庫那樣普遍,需要你的系統(tǒng)中安裝了 phpredis 這個 PHP 擴展,它并不是 PHP 程序自帶的。 可能的情況是,你使用 Redis 驅(qū)動的原因是你已經(jīng)非常熟悉 Redis 了并且你使用它還有其他的目的。
配置方法如下:
config/config.php
$config['sess_driver'] = 'redis'; $config['sess_save_path'] = 'tcp://localhost:6379';
前提是你服務(wù)器需要安裝redis才可以!
使用這個會影響memcache緩存嗎