Redis存在五種基礎類型:字符串(String)、列表(List)、哈希(Hash)、集合(Set)、有序集合(Sorted Set)。本次列舉出Sorted Set的經常使用操做。java
Redis官網:https://redis.io/git
Redis 有序集合和集合同樣也是string類型元素的集合,且不容許重複的成員。不一樣的是每一個元素都會關聯一個float類型的分數(score)。經過分數來爲集合中的成員進行從小到大的排序。有序集合的成員是惟一的,但分數(score)能夠重複。集合是經過哈希表實現的,因此添加,刪除,查找的複雜度都是O(1)。 集合中最大的成員數爲 232 - 1 (4294967295, 每一個集合可存儲40多億個成員)。redis
簡單模擬排行榜場景,對於蜀國貢獻值排行高低,有蜀國成員負責實時生成貢獻值,經過查看蜀國貢獻排行榜能夠實時獲取排行狀況。dom
一、啓用一個線程生存各成員貢獻值spa
Task.Run(() => { while (true) { foreach (var user in UserList) { Thread.Sleep(10); service.SortedSetAdd("蜀國貢獻值", user, new Random().Next(1, 100)); } Thread.Sleep(20 * 1000); } });
二、啓用一個線程實時展現貢獻值排行榜線程
Task.Run(() => { while (true) { Thread.Sleep(12 * 1000); Console.WriteLine("**********當前排行************"); int i = 1; var items = service.SortedSetRangeByRankWithScores<string>("蜀國貢獻值", 0, -1, true); foreach (var item in items) { Console.WriteLine($"第{i++}名 {item.Key} 分數{item.Value}"); } } });
三、效果展現,能夠看到實時排行狀況,結合UI呈現的話,能夠作到實時榜單。3d
倉庫地址:https://gitee.com/530521314/Partner.TreasureChest.git(RedisOperate文件夾)code
2020-08-09,望技術有成後能回來看見本身的腳步