symfony - 使用 Symfony 运行自定义 Redis 命令
问题描述
我RedisAdapter
在一个项目中使用 Symfony 来处理缓存的值,它已经在项目内部得到了深入的使用。
现在我想添加新的 redis 键来存储一些数字,这些数字可以经常更新。所以我想使用INCR
和DECR
redis 命令来快速完成它。
但是RedisAdapter
似乎不允许自定义 redis 命令,您只能获取、检查密钥存在、删除和保存密钥。当然,我可以获取计数值,在 php 中将其递增,然后再次保存,但考虑到在 redis 中已经为此实现了一个解决方案,它并不是很优化。
是否可以运行自定义 redis 命令,同时保留 Symfony 提供的 redis 抽象层?
解决方案
不幸的是 Symfony 的 redis 适配器不允许这个功能,因为它不会在 symfony 的其他缓存适配器之间共享。您需要访问适配器正在使用的底层 redis 客户端,并使用它来进行您想要的调用。以 predis 为例:
$predis = new Predis\Client(/* Configuration */);
$predis->incr($my_key);
显然,这远非理想,因为现在人们正在将他们的应用程序与 Redis 以及正在使用的任何 Redis 客户端绑定在一起。
推荐阅读
- spring - 我们可以在 play 版本 2.7.x 中配置 spring 吗?如果是这样,请分享所有依赖项
- r - 用同一数据框中另一列的值替换 NA 值
- c++ - 启用选中时Qt QPushButton会更改大小
- error-handling - 如果我将 1 除以 0 并且没有底层错误处理框架,那么硬件会受到怎样的影响?
- python - 为 Graph 和 Eager Execution 子类化 tf.Tensor
- javascript - 将带有样式的 HTML 插入 QuillJS?
- android - WebView 中的 Selenium WebDriver
- php - PDOException::("SQLSTATE[23000]: 完整性约束违规:1062 键 'roles_name_unique' 的重复条目 'admin'")
- node.js - 云函数不返回任何文档
- javascript - 如何使用cookies运行“oneClick”