php-redis执行原生的redis指令

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/raoxiaoya/article/details/100515541

我们知道php-redis是php的一个扩展,方便了我们调用redis,但是它也有不足的地方,比如set方法

public function set( $key, $value, $timeout = 0 ) {}

对应redis的set指令

SET key value [EX seconds] [PX milliseconds] [NX|XX]

Redis >= 2.6.12 时增加了 EX,PX,NX,XX 很有用的参数,所以我们无法使用php-redis来实现这个指令,当key不存在的时候,设置key-value,同时设置过期时间,想要以原子化的方式来达到这样的效果,只能使用$redis->eval(lua脚本)来达到,还好今天发现 $redis->rawCommand()方法可以执行原生的redis指令。
在这里插入图片描述
使用三个点的语法来接收不定长的参数个数。

$redis = new \Redis();
$redis->connect('127.0.0.1', 6379);
$re = $redis->rawCommand('set', 'name_test_1', 'rxy', 'EX', 30, 'NX');
var_dump($re);

猜你喜欢

转载自blog.csdn.net/raoxiaoya/article/details/100515541