Redis实现投票机制的思路
zset
每一个元素都有一个与之对应的分数,分数用于排序
设计两个zset
(有序集合)key分别对应post:time:
和post:score:
,即帖子对应时间和分数,对应按照时间查找和按照分数查询
哪个用户对哪个帖子投票投的是赞成还是反对也要记录,再设计一个key为post:voted
:
分割key,相当于命名空间,方便查询和拆分
声明常量,可以写一个前缀KeyPrefix
表明命名空间,方便业务拆分,每个键可以点名数据类型KeyPostTimeZset
首先对redis的数据结构没有非常深入的认识和了解,也没有真实地设计经验,所以看起来很迷茫。
post:time
是一个zset,postId->time
post:score:
是一个zset,posiId->score
post:voted:<userId>
对应多个zset,每个zset记录一个用户的投票情况
Redis实现投票机制的思路
http://willxu0313.github.io/2025/01/22/gin-backend/Redis实现投票机制/