Redis Lua 脚本实现点赞与点踩互斥逻辑 - 点赞与点踩互斥功能的 Redis 脚本实现
-- 使用这些参数基于Redis的lua脚本实现点赞与点踩的逻辑,并让点赞与点踩互斥//n-- 1.1 参数//n-- 1.2 用户id//nlocal userId = ARGV[1]//n//n-- 1.3 博客id//nlocal blogId = ARGV[2]//n//nlocal blogLikeKey = 'blog:like:member:'..blogId//n//nlocal blogUnlikeKey = 'blog:unlike:member:'..blogId//n//nlocal blogLikeCountKey = 'blog:like:count:'..blogId//n//nlocal blogUnlikeCountKey = 'blog:unlike:count:'..blogId//n//n-- 判断用户是否已经点过赞或者踩过//nlocal hasLiked = redis.call('SISMEMBER', blogLikeKey, userId)//nlocal hasUnliked = redis.call('SISMEMBER', blogUnlikeKey, userId)//n//n-- 如果用户已经点过赞或者踩过,则返回错误提示//nif hasLiked == 1 or hasUnliked == 1 then//n return /'User has already liked or unliked this blog/'//nend//n//n-- 增加点赞数//nredis.call('INCR', blogLikeCountKey)//n//n-- 将用户id添加到点赞集合中//nredis.call('SADD', blogLikeKey, userId)//n//n-- 删除用户id在点踩集合中的记录(如果存在)//nredis.call('SREM', blogUnlikeKey, userId)//n//n-- 返回成功提示//nreturn /'Like success/
原文地址: https://www.cveoy.top/t/topic/pC1W 著作权归作者所有。请勿转载和采集!