我在一个项目中使用Symfony RedisAdapter来处理缓存值,并且它已经在项目中得到了深入的使用。
现在我想添加一些新的redis键来存储一些数字计数,这些计数可以经常更新。因此,我想使用INCR和DECR redis命令来快速完成此操作。
但RedisAdapter似乎不允许自定义redis命令,您只能获取、检查密钥存在、删除和保存密钥。当然,我可以获取计数值,在php中递增它,然后再次保存它,但考虑到已经有一个用redis实现的解决方案,它并不是很优化。
是否可以在保留Symfony提供的redis抽象层的同时运行自定义redis命令?
发布于 2019-11-20 02:53:44
不幸的是,symfony的redis适配器不支持此功能,因为它不会在symfony的其他缓存适配器之间共享。您需要访问适配器正在使用的底层redis客户端,并使用它进行您想要的调用。例如,使用predis:
$predis = new Predis\Client(/* Configuration */);
$predis->incr($my_key);显然,这远远不是理想的,因为人们现在将他们的耦合、他们的应用程序与Redis以及正在使用的Redis客户端捆绑在一起。
https://stackoverflow.com/questions/58931324
复制相似问题