关于Laravel中的Redis如何使用Lua的一点记录
查找关于Redis资料的时候,发现了一篇关于Redis使用Lua脚本的文章:
Redis使用Lua脚本
但是要如何在Laravel实现相关操作却没有找到资料,于是自己动手摸索,在阅读了相关代码
PhpRedisConnection
最后使用如下代码实现:
//返回脚本的sha校验和
$sha_key = Redis::executeRaw(['script', 'load','return "Hello world"']);
//传入sha校验和,及key的个数(这里没有传入参数)
echo Redis::evalsha($sha_key, 0); //打印出Hello world
传入k-v参数的代码如下:
//返回脚本的sha校验和
$sha_key = Redis::executeRaw(['script', 'load','return {KEYS[1],KEYS[2],ARGV[1],ARGV[2]}']);
//调用
$result = Redis::evalsha($sha_key, 2, 'k1', 'k2', 'v1', 'v2'); //返回['k1','k2','v1','v2']
最后,如果要清空所有脚本的sha校验值,则如下:
Redis::executeRaw(['script', 'flush']);
暂时没想到什么应用场景,先做个记录吧
本作品采用《CC 协议》,转载必须注明作者和本文链接