redis Lua学习与坑

时间:2023-03-10 01:53:59
redis Lua学习与坑

1.在写lua脚本往redis中添加zadd 有序集合的时候一直报 "value is not a valid float"的错误,经过查询相关资料,最后发现,是顺序写反了。

相关代码

--[错误代码]
redis.call('zadd',@TimeOrderKey,objRecord.ActivityID,@TimeScore);--[应该时间在前,value在后,这里反了。]
--[正确代码:]
redis.call('zadd',@TimeOrderKey,@TimeScore,objRecord.ActivityID);

2.redis中实务transaction和lua脚本,都不能使用同时使用scan游标和zrem。

原因是这样的,scan等这些是拷贝副本到本地,不能保证原子性,如果修改了数据库就会造成数据出错。