Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Symfony运行自定义Redis命令_Symfony_Redis - Fatal编程技术网

使用Symfony运行自定义Redis命令

使用Symfony运行自定义Redis命令,symfony,redis,Symfony,Redis,我在一个项目中使用SymfonyRedisAdapter来处理缓存的值,它已经在项目中得到了广泛的使用 现在我想添加新的redis键,它存储一些数字计数,可以经常更新。所以我想使用INCR和DECRredis命令来快速执行 但是RedisAdapter似乎不允许自定义redis命令,您只能获取、检查密钥是否存在、删除和保存密钥。当然,我可以获取计数值,在php中增加它,然后再次保存它,但考虑到redis中已经实现了一个解决方案,所以它不是非常优化 在保留Symfony提供的redis抽象层的同时

我在一个项目中使用Symfony
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的缓存适配器接口根本不允许这种行为。没有什么能阻止你为你的应用程序扩展它,虽然我想。。。