Java簡單使用redis-zset實(shí)現(xiàn)排行榜
簡單使用redis-zset實(shí)現(xiàn)排行榜
此方法實(shí)現(xiàn)一個根據(jù)某字段的查詢次數(shù)進(jìn)行排行,查詢的次數(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 是分?jǐn)?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實(shí)現(xiàn)排行榜的文章就介紹到這了,更多相關(guān)redis-zset排行榜內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
springcloud連接遠(yuǎn)程nacos失敗顯示localhost服務(wù)連接失敗的問題解決
這篇文章主要介紹了springcloud連接遠(yuǎn)程nacos失敗顯示localhost服務(wù)連接失敗的問題解決,文中有詳細(xì)的代碼示例供大家參考,對大家解決問題有一定的幫助,需要的朋友可以參考下2024-03-03Java連接合并2個數(shù)組(Array)的5種方法例子
最近在寫代碼時遇到了需要合并兩個數(shù)組的需求,突然發(fā)現(xiàn)以前沒用過,于是研究了一下合并數(shù)組的方式,這篇文章主要給大家介紹了關(guān)于Java連接合并2個數(shù)組(Array)的5種方法,需要的朋友可以參考下2023-12-12JAVA進(jìn)階篇之詳細(xì)了解File文件的常用API
這篇文章主要給大家介紹了關(guān)于JAVA進(jìn)階篇之詳細(xì)了解File文件的常用API的相關(guān)資料,File用于表示文件系統(tǒng)中的一個文件或目錄,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-11-11MyBatis實(shí)現(xiàn)多表聯(lián)合查詢resultType的返回值
這篇文章主要介紹了MyBatis多表聯(lián)合查詢resultType的返回值,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-03-03