我不知道微博的评论是不是用了Redis缓存,我只是拿他来做为一个例子而已。通用的场景是:用Redis缓存有序的对象列表,要求可以对对象进行增、删、查操作。
我以微博的评论来说,之前跟其它人交流时,是用zset或list。如果用zset,每个元素是评论id,评论时间做score,而评论的内容无法存储,只能根据id再查mysql等数据库。如果用list,每个元素是一个hash的json序列化(包含评论id,评论内容,评论时间等),这样的话貌似没有办法实现根据评论id删除评论了? 当然,list的元素也可直接用评论id,那这样的话,其实跟用zset差不多。
不知道大家有没有更好的方案实现“用Redis缓存有序的对象列表,要求可以对对象进行增、删、查、分页操作”
zadd Weibo 댓글 ID 댓글 ID+댓글 내용
해당 ID를 범위로 사용하여 삭제할 수 있으며, 이후 댓글 내용도 표시할 수 있습니다.
이 질문을 본 적이 있는데, 예시가 이해하기 어려워서 며칠이 지났는데도 답변을 안 주셨네요. 위의 솔루션은 언급한 실제 예에만 기반할 수 있습니다.
목록을 사용하여 댓글 ID를 저장한 다음 각 댓글을 ID를 키로 사용하여 해시로 저장합니다. 또한 일반적으로 이러한 키의 만료 시간을 설정해야 합니다