仅前缀 redis 会话密钥

Prefix only redis session keys

有没有办法在整个应用程序中使用一个 Predis 客户端连接,但只为会话密钥添加前缀?

Predis库只允许通过设置options参数来定义key前缀when instantiating a client object:

$sessionClient = new Predis\Client($config, array('prefix' => 'session-'));

我在一个 Redis 实例中存储的不仅仅是会话。因此,要存储不带前缀的其他值,我认为这会起作用:

$client = new Predis\Client($config);

但是键仍然有前缀。我假设 Predis 正在跨客户端实例共享连接和选项。那么一个前缀怎么能只是会话密钥呢?

发现 a related issue on Github 作者回复说这将不受支持。

Predis\Session\SessionHandler accepts a client instance only for the sake of injection, but you shouldn't really reuse that client for anything else... Obviously, for very specific scenarios nothing stops you from writing your own session handler.