我当前lua脚本在 /www/wwwroot/redis.lua 中
代码如下:
根据key获取一个值 , 当条件成立时产出这个key
local key=KEYS[1]
local value=ARGV[1]
if(redis.call('get', key) == value)
then
return redis.call('del', key)
end
如果在redis-cli中 是无法打开这个文件的
所以应该命令行中运行
redis-cli --eval /www/wwwroot/redis.lua 'swoft:lock1' , 's:9:"goods_id1";'
注意的地方:
- eval 后面参数是lua脚本文件,
.lua
后缀 - 不用写
numkeys
,而是使用,
隔开。注意,
前后有空格。
我这个例子是swoft框架 , 值不一样
public function redis()
{
$count = 0; // 重试次数
$max_count = 3; // 最大重试次数
$status = true;
while ($status){
$count++;
if ($count > $max_count) $status=false;
if ($status == false) return "您的网络不佳,稍后重试吧".$count.$status;
$good_id = 1;
$key = 'lock'.$good_id;
$value = 'goods_id'.$good_id;
$lock_status = Redis::exists($key);
if (!$lock_status){
$lock_time = 500;
$lock = Redis::set($key, $value,$lock_time); // 设置锁并且设置过期时间
if ($lock){ // 加锁成功
// TODO 业务操作
// 业务执行后存在锁,删除锁
$script =
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?