和set類型一樣,sorted set也是string類型元素的集合,因為元素是有序的,所以使用有序集合你可以以非常快的速度(O(log(N)))添加,刪除和更新元素,它也很擅長排序。
應用場景:獲取網站中點擊量最高的前n篇文章,等等。
為了詳細的解釋下面每個命令,先擬定一個應用場景;
假設用sorted set記錄網站每篇文章的點擊量,如果key為artHits,則:
1.【 zadd key v k 】 往key中添加一個元素,k為鍵,v為值。如:zadd artHits 99 12表示id為12的文章點擊量為99次。
2.【 zrange key start end 】 根據v的值由小到大進行排序來獲得start到end之間的元素。
注:0表示第一個元素,-1表示最后一個元素,-2表示倒數第二個元素,以此類推,如果要獲取第一個到倒數第三個之間的元素,命令為:zrange key 0 -3。
3.【 zrevrange key start end 】 同上,根據v的值由大到小進行排序來獲得start到end之間的元素。可以輕松取出點擊量最高的前n篇文章。
4.【 zremrangebyrank key start end 】 刪除集合中的元素。排序的方式為按照v由小到大的順序,如果要刪除key集合中的第一個值,則運行 zremrangebyrank artHits 0 0;刪除前3個值:zremrangebyrank artHits 0 2。
5.【 zcard 】 返回key集合中元素的個數。
6.【 zrank key k 】 返回值k在集合key中排第幾位,是按照v由小到大的順序。排第一名返回0,第二返回1,以此類推。
7.【 zrevrank key k 】 同上,不同的是,按照v由大到小的順序。可以輕松取出點擊量最高的文章。
8.【 zscore key k 】 取出集合key中鍵為k對應的值v。
9.【 zrem key k 】 刪除集合中指定元素。
10.【 zincrby key num k 】 給集合key中的元素k加上num,值針對整型。比如 zincrby artHits 3 12,給id為12的文章加上3個點擊量。此時zscore artHits 12的結果是99+3為102。
Redis 有序set添加,刪除和測試中的O(1)的存在成員(固定時間,無論里面包含的元素集合的數量)。列表的最大長度為232- 1元素(4294967295,超過4十億每個元素的集合)。
例子
redis 127.0.0.1:6379> ZADD tutorials 1 redis
(integer) 1
redis 127.0.0.1:6379> ZADD tutorials 2 mongodb
(integer) 1
redis 127.0.0.1:6379> ZADD tutorials 3 mysql
(integer) 1
redis 127.0.0.1:6379> ZADD tutorials 3 mysql
(integer) 0
redis 127.0.0.1:6379> ZADD tutorials 4 mysql
(integer) 0
redis 127.0.0.1:6379> ZRANGE tutorials 0 10 WITHSCORES
1) "redis"
2) "1"
3) "mongodb"
4) "2"
5) "mysql"
6) "4"
在上述例子中的三個值由命令ZADD插入其分數在redis排序集合并命名tutorials。
- 目錄
- 安裝擴展
- 在 Windows 上安裝 PHP 擴展
- 測試Redis擴展函數
- 教程
- 簡介
- Redis 安裝
- Redis 配置
- 運行
- 測試
- 書籍
- 《Redis開發與運維》
- 《Redis入門指南》
- 《Redis實戰》
- 《當 Redis 遇上 ThinkPHP5》
- 參考站點
- 下載
- 命令參考
- 管理工具
- 視頻
- 云數據庫 Redis 版使用教程
- Redis 深入之道
- Redis高可用教程
- Redis入門
- NoSQL概述
- Redis概述
- Redis安裝
- Jedis入門
- PHP命令
- PHP中利用Redis管道加快執行
- Hash操作
- Set操作
- Gearman
- MySQL - Redis配合使用方案
- 應用場景
- 緩存應用
- Redis實現簡單的條件查詢功能
- 獲取網站中點擊量最高的前n篇文章
- 顯示最新的項目列表
- 排行榜相關
- 設計技巧
- SortedSets
- List列表
- 消息隊列
- 最新文章
- Set集合
- 共同好友
- 獨立 IP
- Linux教程
- 常用命令
- 哈希命令
- 字符串
- 集合
- 有序集合
- Redis 有序集合命令
- 有序集合命令(中)
- 發布訂閱
- 用例
- 列表
- Lindex
- Ltrim
- Rpush
- Lset
- Llen
- Lpush
- 信息
- info memory
- 安裝
- 數據類型
- Redis管道(pipeline)
- Memory Command
- 阿里云Redis
- 架構
- 4.0版本
- Redis 4.0 新功能介紹
- Redis Desktop Manager
- 創建hash列表數據
- Lua: 給 Redis 用戶的入門指導
- Lua入門
- 樂觀鎖介紹
- 悲觀鎖介紹
- 臟數據
- Redis核心概念
- Redis事務
- Lua
- 在Redis中使用lua腳本
- php-redis
- mysql緩存服務器
- redis setnx 實現分布式鎖和單機鎖
- 為什么分布式一定要有Redis?