RedisTemplate ZSetOperations的使用之【根据点赞排序和创建时间排序2种方式】

排序是编程过程中经常遇到的。比如根据点赞数、收藏数、认证数以及时间进行排序等。下面我们就介绍一下使用Redis根据点赞排序和创建时间排序的2种方式。

使用Redis 对问题下的回答按点赞数排序的思路;
(1)根据问题id查出所有的回答列表,存放在ids中;
(2)①把回答的ids添加到zset1中; key为id,value为赞的数量;(用于点赞排行);
             //批量添加 Long add(K var1Set<ZSetOperations.TypedTuple<V>> var2);
         ②把回答的ids添加到zset2中;key为id,value为createTime.getLong();(用于创建时间排行);
(3)对回答进行点赞(取消)的时候更改zset1中的指定key的value加减1;
(4)①发表回答的时候zset1,zset2中增加元素,
            //redisTemplate.opsForZSet().add(key,4565L,13);
         ②删除的时候移除元素;
            //redisTemplate.opsForZSet().remove(key,4565L)
(5)获取排序后的分页数据;结果为回答的ids;
(6)迭代ids 去每个回答的id对应素材的缓存中取出对象;

RedisTemplate ZSetOperations的使用之【根据点赞排序和创建时间排序2种方式】

RedisTemplate ZSetOperations的使用之【根据点赞排序和创建时间排序2种方式】

RedisTemplate ZSetOperations的使用之【根据点赞排序和创建时间排序2种方式】