如何使用cakephp 3.0在redis中保存会话?

如何使用cakephp 3.0在redis中保存会话?

问题描述:

你好,我是cakephp 3.0的新手。我知道一点cakephp 2.0。我配置我使用CakePHP 2.0的Redis与this help of url但我不知道如何在CakePHP的3.0配置请帮我如何使用cakephp 3.0在redis中保存会话?

您需要将您的会话使用app.php文件中缓存的会话:

'Session' => [ 
    'defaults' => 'cache' 
] 

然后,你会设置你的缓存,Redis的:

'Cache' => [ 
    'default' => [ 
     'className' => 'Redis', 
    ], 
    ] 

在供应商\ CakePHP的\ CakePHP中的\ src \网络\ session.php文件

可以看到defaul t类型的会话。

它们被列为php,cake,cache,database。

$defaults = [ 
     'php' => [ 
      'cookie' => 'CAKEPHP', 
      'ini' => [ 
       'session.use_trans_sid' => 0, 
      ] 
     ], 
     'cake' => [ 
      'cookie' => 'CAKEPHP', 
      'ini' => [ 
       'session.use_trans_sid' => 0, 
       'session.serialize_handler' => 'php', 
       'session.use_cookies' => 1, 
       'session.save_path' => TMP . 'sessions', 
       'session.save_handler' => 'files' 
      ] 
     ], 
     'cache' => [ 
      'cookie' => 'CAKEPHP', 
      'ini' => [ 
       'session.use_trans_sid' => 0, 
       'session.use_cookies' => 1, 
       'session.save_handler' => 'user', 
      ], 
      'handler' => [ 
       'engine' => 'CacheSession', 
       'config' => 'default' 
      ] 
     ], 
     'database' => [ 
      'cookie' => 'CAKEPHP', 
      'ini' => [ 
       'session.use_trans_sid' => 0, 
       'session.use_cookies' => 1, 
       'session.save_handler' => 'user', 
       'session.serialize_handler' => 'php', 
      ], 
      'handler' => [ 
       'engine' => 'DatabaseSession' 
      ] 
     ] 
    ] 

这是使用Cache的默认配置的缓存。也许你想使用defualt作为文件缓存。

在app.php 创建一个新的缓存配置

'redis' => [ 
     'className' => 'Redis', 
     'server'=>'127.0.0.1', 
     'port'=>6379 
    ], 

然后你就可以在这里使用新的缓存配置。

'Session' => [ 
    'cookie' => 'herewego', 
    'ini' => [ 
     'session.use_trans_sid' => 0, 
     'session.use_cookies' => 1, 
     'session.save_handler' => 'user', 
    ], 
    'handler' => [ 
     'engine' => 'CacheSession', 
     'config' => 'redis' 
    ] 
],