如果只是设计一个点赞接口,用来存储点赞数据,不做点赞列表功能,我们可以使用redis里的集合来实现,主要利用了集合的互斥性。
那么,我的想法是,点赞和取消点赞都是同一个接口吧?
逻辑是:
判断uid是否在集合中
是:则从集合删除,这个等于取消点赞
否:加入集合,这个等同于点赞
以上这个逻辑是不是要用lua脚本来运行,以保证其原子性,是吗?
否则我想了下,如果当前状态是未点赞,连续快速点击两次后,理论应该还是属于未点赞,但是如果不能保证原子性,则可能会出现连续点击两次后,结果为点赞成功,请问我以上的想法是否正确?