Java簡單使用redis-zset實現(xiàn)排行榜
更新時間:2020年12月16日 11:52:46 作者:weixin_45121508
這篇文章主要介紹了Java簡單使用redis-zset實現(xiàn)排行榜,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習或者工作具有一定的參考學(xué)習價值,需要的朋友們下面隨著小編來一起學(xué)習學(xué)習吧
簡單使用redis-zset實現(xiàn)排行榜
此方法實現(xiàn)一個根據(jù)某字段的查詢次數(shù)進行排行,查詢的次數(shù)越多排行越前(從大到小排序),適用于初學(xué)者
1.添加依賴
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency>
2.注入RedisTemplate方法
@Autowired public RedisTemplate redisTemplate;
3.創(chuàng)建對象,用來接收redis數(shù)據(jù)
@Data
public class RangeVo implements Serializable {
private String shopName;
private Double shopPrice;
}
4.添加十條redis數(shù)據(jù)
@Test
public void getzset4(){
String keyModel = "testList";
for (int i = 0; i < 10 ; i++) {
int score = new Random().nextInt(50);
String ss = "shop"+i;
redisTemplate.opsForZSet().add(keyModel,ss,score);
}
}
5.根據(jù)某個key查詢并每次查詢score都會加1
@Test
public void setOneValue(){
String keyModel = "testList";
String ss = "shop8";
Double aDouble = redisTemplate.opsForZSet().incrementScore(keyModel, ss, 1);
System.out.println(aDouble);
}
6.查詢redis中所有數(shù)據(jù),zset會根據(jù)score自動排序
@Test
public void getList(){
String key = "testList";
List<RangeVo> list = new ArrayList<>();
/** 從小到大排序 返回value 和 score* 參數(shù)注釋 key 為有序集合的key,1,50 是分數(shù)范圍 1-50,0 是偏移量即從哪條數(shù)據(jù)開始排序, 5是取5條滿足條件的數(shù)據(jù)*/
Set<ZSetOperations.TypedTuple<Object>> set = redisTemplate.opsForZSet().rangeByScoreWithScores(key,1,50,0,5);
Iterator<ZSetOperations.TypedTuple<Object>> iterator = set.iterator();
while (iterator.hasNext()){
ZSetOperations.TypedTuple<Object> next = iterator.next();
RangeVo rangeVo = new RangeVo();
rangeVo.setShopName((String) next.getValue());
rangeVo.setShopPrice(next.getScore());
list.add(rangeVo);
}
System.out.println(list);
}
到此這篇關(guān)于Java簡單使用redis-zset實現(xiàn)排行榜的文章就介紹到這了,更多相關(guān)redis-zset排行榜內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
您可能感興趣的文章:
相關(guān)文章
Java操作redis設(shè)置第二天凌晨過期的解決方案
這篇文章主要介紹了Java操作redis設(shè)置第二天凌晨過期的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-01-01
Spring Boot應(yīng)用程序同時支持HTTP和HTTPS協(xié)議的實現(xiàn)方法
如今,企業(yè)級應(yīng)用程序的常見場景是同時支持HTTP和HTTPS兩種協(xié)議,這篇文章考慮如何讓Spring Boot應(yīng)用程序同時支持HTTP和HTTPS兩種協(xié)議,需要的朋友可以參考下2019-10-10

