日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

Java zset 应用_Java简单使用redis-zset实现排行榜

發布時間:2024/9/27 java 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java zset 应用_Java简单使用redis-zset实现排行榜 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

簡單使用redis-zset實現排行榜

此方法實現一個根據某字段的查詢次數進行排行,查詢的次數越多排行越前(從大到小排序),適用于初學者

1.添加依賴

org.springframework.boot

spring-boot-starter-data-redis

2.注入RedisTemplate方法

@Autowired

public RedisTemplate redisTemplate;

3.創建對象,用來接收redis數據

@Data

public class RangeVo implements Serializable {

private String shopName;

private Double shopPrice;

}

4.添加十條redis數據

@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.根據某個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中所有數據,zset會根據score自動排序

@Test

public void getList(){

String key = "testList";

List list = new ArrayList<>();

/** 從小到大排序 返回value 和 score* 參數注釋 key 為有序集合的key,1,50 是分數范圍 1-50,0 是偏移量即從哪條數據開始排序, 5是取5條滿足條件的數據*/

Set> set = redisTemplate.opsForZSet().rangeByScoreWithScores(key,1,50,0,5);

Iterator> iterator = set.iterator();

while (iterator.hasNext()){

ZSetOperations.TypedTuple next = iterator.next();

RangeVo rangeVo = new RangeVo();

rangeVo.setShopName((String) next.getValue());

rangeVo.setShopPrice(next.getScore());

list.add(rangeVo);

}

System.out.println(list);

}

到此這篇關于Java簡單使用redis-zset實現排行榜的文章就介紹到這了,更多相關redis-zset排行榜內容請搜索聚米學院以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持聚米學院!

總結

以上是生活随笔為你收集整理的Java zset 应用_Java简单使用redis-zset实现排行榜的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。