在symfony4中为redis设置无键前缀

Paw*_*wel 10 php redis symfony predis symfony4

我在Symfony 4中正确配置redis时遇到问题.我希望在缓存项目键之前没有前缀,但它会不断显示.这是我的config/packages/framework.yaml(与缓存相关的部分):

cache:
    prefix_seed: ztw/ztw
    app: cache.adapter.redis
    default_redis_provider: '%env(resolve:REDIS_URL)%'
Run Code Online (Sandbox Code Playgroud)

我试图删除prefix_seed键并将其值设置为~.没有任何效果.但是,文档说明其默认值为null.

我想实现这一点,因为当我通过网站启动我的网站时,它设置了一些关键并坚持下去.但是当我运行我的behat测试(故意 - 填充缓存)时 - 密钥是不同的,无论如何.两者都使用APP_ENV=dev环境变量值(检查两次).

以下是redis方面的情况:

127.0.0.1:6379> keys *
 1) "xw+Y6oICD-:4dfbddf6bbb8ea2e25e843d936739dd9"
 2) "xw+Y6oICD-:4f1cbb7ece6f8db3b69ae11418bbf022"
 3) "xw+Y6oICD-:26c65dcee950a5020596989ad1a8ff66"
 4) "gUbUjDoAuQ:b712bf9832f566bd5bd30a07e7bd146b"
 5) "gUbUjDoAuQ:1d0f56bf67bd482674b62067336bd633"
 6) "xw+Y6oICD-:d948f5e23f94e681620436786f0daf98"
 7) "xw+Y6oICD-:ef88ab906981c6e04ef639cd4a8ae803"
 8) "xw+Y6oICD-:748d18ce6ba0929d2540e9b4529e56cc"
 9) "xw+Y6oICD-:ef30ff7e239b92cec1f5e58c201296f5"
10) "xw+Y6oICD-:1d0f56bf67bd482674b62067336bd633"
11) "xw+Y6oICD-:b712bf9832f566bd5bd30a07e7bd146b"
12) "xw+Y6oICD-:4da534491b5732336b3bb3e7302bc79b"
Run Code Online (Sandbox Code Playgroud)

例如,第4和第11项具有相同的键(和值)但不幸的是前缀不同.

我知道缓存键前缀被认为是一种很好的做法,但由于某种原因,在运行时,behat键是不同的.

任何帮助赞赏.

mrb*_*rbm 1

上面提到prefix_seed的是symfony缓存文件的前缀(与redis无关)。

redis 前缀的默认值PHPREDIS_SESSION:解释了您上面提到的键,我还没有尝试过这个,但我认为您需要添加prefix选项并将其设置为session.save_path.

检查 predis 自述文件: https: //github.com/phpredis/phpredis

编辑:根据文档,看起来只能通过 predis 设置额外的设置。

使用 Predis 库时,可以使用一些附加的 Predis 特定选项。有关更多信息,请参阅 Predis 连接参数文档。

来源: https: //symfony.com/doc/current/components/cache/adapters/redis_adapter.html