php - 在 symfony4 中为 redis 设置无键前缀
问题描述
我在 Symfony 4 中对 redis 的正确配置有问题。我想在我的缓存项键之前没有前缀,但它一直在显示。这是我的config/packages/framework.yaml
(与缓存相关的部分):
cache:
prefix_seed: ztw/ztw
app: cache.adapter.redis
default_redis_provider: '%env(resolve:REDIS_URL)%'
我试图删除prefix_seed
键并将其值设置为~
. 没有任何效果。但是,文档指出其默认值为null
.
我想实现这一点,因为当我通过网站启动我的网站时,它会设置一些关键并坚持下去。但是当我运行我的行为测试时(故意 - 填充缓存) - 键是不同的,无论如何。两者都使用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"
例如,不幸的是,第 4 项和第 11 项具有相同的键(和值)但前缀不同。
我知道缓存键前缀被认为是一种很好的做法,但是由于某种原因,通过 behat 键运行时是不同的。
任何帮助表示赞赏。
解决方案
上面提到的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
推荐阅读
- python - 从 django 1.1 升级到 2.2,-(错误)post_detail_view() 得到了一个意外的关键字参数 'day'
- typescript - TypeScript 错误 TS2345 是否有 eslint 规则
- html - Safari 和 iOS 中的标题问题
- sql-server - SQL Server 等待类型
- c# - 地址已经在使用 Unity Android
- jenkins - 来自 YAML 文件的 Jenkins 管道
- python - 从两个数据框中剪切和粘贴值以获取匹配值
- python - 为什么调用方法时会出现 AttributeError?
- amazon-web-services - Jenkins 本地与云(AWS)
- vowpalwabbit - Vowpal Wabbit:关于在历史数据上训练上下文强盗的问题