ThinkPHP5的缓存和session默认使用文件存储。
即application/config.php
中cache
的type
是File
,而session
的type
是空。
可以改用Redis作为缓存和session的存储,效率更高。在分布式的环境中,使用Redis来存储,可以保证数据的一致性和会话的一致性。
改写如下:
'cache' => [
// 驱动方式
'type' => 'Redis',
'host' => 'web-redis', // redis主机
'port' => 6379, // redis端口
// 缓存保存目录
'path' => CACHE_PATH,
// 缓存前缀
'prefix' => '',
// 缓存有效期 0表示永久缓存
'expire' => 0,
],
// +----------------------------------------------------------------------
// | 会话设置
// +----------------------------------------------------------------------
'session' => [
'id' => '',
// SESSION_ID的提交变量,解决flash上传跨域
'var_session_id' => '',
// SESSION 前缀
'prefix' => 'think',
// 驱动方式 支持redis memcache memcached
'type' => 'redis',
'host' => 'web-redis', // redis主机
'port' => 6379, // redis端口
// 是否自动开启 SESSION
'auto_start' => true,
],
cache
和session
都配置了host
和port
,表示自定义的Redis主机和端口,如果不配置,则默认为127.0.0.1
和6379
。