Java簡單使用redis-zset實現(xiàn)排行榜
更新時間:2020年12月16日 11:52:46 作者:weixin_45121508
這篇文章主要介紹了Java簡單使用redis-zset實現(xiàn)排行榜,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
簡單使用redis-zset實現(xiàn)排行榜
此方法實現(xiàn)一個根據(jù)某字段的查詢次數(shù)進行排行,查詢的次數(shù)越多排行越前(從大到小排序),適用于初學者
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); }
到此這篇關于Java簡單使用redis-zset實現(xiàn)排行榜的文章就介紹到這了,更多相關redis-zset排行榜內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
您可能感興趣的文章:
相關文章
springcloud連接遠程nacos失敗顯示localhost服務連接失敗的問題解決
這篇文章主要介紹了springcloud連接遠程nacos失敗顯示localhost服務連接失敗的問題解決,文中有詳細的代碼示例供大家參考,對大家解決問題有一定的幫助,需要的朋友可以參考下2024-03-03Java連接合并2個數(shù)組(Array)的5種方法例子
最近在寫代碼時遇到了需要合并兩個數(shù)組的需求,突然發(fā)現(xiàn)以前沒用過,于是研究了一下合并數(shù)組的方式,這篇文章主要給大家介紹了關于Java連接合并2個數(shù)組(Array)的5種方法,需要的朋友可以參考下2023-12-12MyBatis實現(xiàn)多表聯(lián)合查詢resultType的返回值
這篇文章主要介紹了MyBatis多表聯(lián)合查詢resultType的返回值,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-03-03