使用Symfony运行自定义Redis命令
我在一个项目中使用Symfony使用Symfony运行自定义Redis命令,symfony,redis,Symfony,Redis,我在一个项目中使用SymfonyRedisAdapter来处理缓存的值,它已经在项目中得到了广泛的使用 现在我想添加新的redis键,它存储一些数字计数,可以经常更新。所以我想使用INCR和DECRredis命令来快速执行 但是RedisAdapter似乎不允许自定义redis命令,您只能获取、检查密钥是否存在、删除和保存密钥。当然,我可以获取计数值,在php中增加它,然后再次保存它,但考虑到redis中已经实现了一个解决方案,所以它不是非常优化 在保留Symfony提供的redis抽象层的同时
RedisAdapter
来处理缓存的值,它已经在项目中得到了广泛的使用
现在我想添加新的redis键,它存储一些数字计数,可以经常更新。所以我想使用INCR
和DECR
redis命令来快速执行
但是RedisAdapter
似乎不允许自定义redis命令,您只能获取、检查密钥是否存在、删除和保存密钥。当然,我可以获取计数值,在php中增加它,然后再次保存它,但考虑到redis中已经实现了一个解决方案,所以它不是非常优化
在保留Symfony提供的redis抽象层的同时,是否可以运行自定义redis命令?不幸的是,Symfony的redis适配器不支持此功能,因为它不是Symfony其余缓存适配器之间共享的东西。您需要访问适配器正在使用的底层redis客户端,并使用它进行您想要的调用。例如,predis:
$predis=新predis\Client(/*配置*/);
$predis->incr($my_key);
显然,这还远远不够理想,因为人们现在正在将应用程序与Redis以及正在使用的任何Redis客户端进行耦合。不幸的是,Symfony的Redis适配器不支持此功能,因为它不是Symfony的其他缓存适配器之间可以共享的东西。您需要访问适配器正在使用的底层redis客户端,并使用它进行您想要的调用。例如,predis:
$predis=新predis\Client(/*配置*/);
$predis->incr($my_key);
显然,这远远不够理想,因为现在人们正将其应用程序与Redis以及正在使用的任何Redis客户端绑定在一起。遗憾的是,这似乎是可以接受的答案;我会等一两天再接受它,以防万一。。。谢谢。不幸的是,symfony的缓存适配器接口根本不允许这种行为。没有什么能阻止你为你的应用程序扩展它,虽然我想…这似乎是可以接受的答案,可悲的是;我会等一两天再接受它,以防万一。。。谢谢。不幸的是,symfony的缓存适配器接口根本不允许这种行为。没有什么能阻止你为你的应用程序扩展它,虽然我想。。。