<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                [toc] 有序集合可以模擬優先級隊列與延時隊列,排行榜等功能的實現 ## 增 zadd key score1 value1 score2 value2 .. ``` redis 127.0.0.1:6379> zadd stu 18 lily 19 hmm 20 lilei 21 lilei (integer) 3 ``` 添加元素 在redis的3.02版本還可以為zadd增加一些附加參數 ZADD key [NX|XX] [CH] [INCR] score member NX: 不存在的情況下 XX: 存在的情況下(更新) CH: ?? INCR: 使用該參數使得ZADD的功能類似ZINCRBY的功能 ## 刪 zremrangebyscore key min max ``` redis 127.0.0.1:6379> zremrangebyscore stu 4 10 (integer) 2 redis 127.0.0.1:6379> zrange stu 0 -1 1) "f" ``` 作用: 按照socre來刪除元素,刪除score在[min,max] (包括)之間的 zrem key value1 value2 .. 作用: 刪除集合中的元素 zremrangebyrank key start end ``` redis 127.0.0.1:6379> zremrangebyrank stu 0 1 (integer) 2 redis 127.0.0.1:6379> zrange stu 0 -1 1) "c" 2) "e" 3) "f" 4) "g" ``` 作用: 按排名刪除元素,刪除名次在[start,end] (包括)之間的 ## 改 ZINCRBY key increment member ``` redis> ZADD myzset 1 "one" (integer) 1 redis> ZADD myzset 2 "two" (integer) 1 redis> ZINCRBY myzset 2 "one" "3" redis> ZRANGE myzset 0 -1 WITHSCORES 1) "two" 2) "2" 3) "one" 4) "3" redis> ``` 為有序集key的成員member的score值加上增量increment。如果key中不存在member,就在key中添加一個member,score是increment(就好像它之前的score是0.0)。如果key不存在,就創建一個只含有指定member成員的有序集合。 ## 查 zrange key start stop [withscores] ``` 127.0.0.1:6379> zrange yx1 0 3 127.0.0.1:6379> zrange yx1 0 -1 withscores #取出所有以及它的分數 ``` 把集合排序后,返回名次[start,stop]的元素 默認是升續排列,降序可以用zrevrange withscores 是把score也打印出來 zrangebyscore key min max [withscores] limit offset N zrevrangebyscore key max min [withscores] limit offset N ``` redis 127.0.0.1:6379> zadd stu 1 a 3 b 4 c 9 e 12 f 15 g (integer) 6 redis 127.0.0.1:6379> zrangebyscore stu 3 12 limit 1 2 withscores #取3到12,并從1位開始取2位,連同分數一起取出來 1) "c" 2) "4" 3) "e" 4) "9" 127.0.0.1:6379> ZREVRANGEBYSCORE stu 12 3 withscores 1) "f" 2) "12" 3) "e" 4) "9" 5) "c" 6) "4" 7) "b" 8) "3" ``` 作用: 集合(升續|降序)排序后,取score在[min,max]內的元素,并跳過offset個, 取出N個 注意:zrange是按名次來取,zrangebyscore是按score的值來取; zcard key 返回集合元素個數 zrank key member 查詢member的排名(升序0名開始) zrevrank key memeber 查詢 member的排名(降序0名開始) zcount key min max 返回[min,max] 區間內元素的數量 zrevrange key start stop [withscores] 作用:把集合降序排列,取名次[start,stop]之間的元素 zinterstore destination numkeys key1 [key2 ...] [weights weight [weight ...]] [aggregate sum|min|max] destination: 運算結果存放的集合名稱 numkeys: 參與運算的集合個數 key1,key2...: 參與運算的集合名稱 weights: 權重 aggregate: 聚合的方式sum|min|max 默認是sum; ``` redis 127.0.0.1:6379> zadd z1 2 a 3 b 4 c (integer) 3 redis 127.0.0.1:6379> zadd z2 2.5 a 1 b 8 d (integer) 3 # 取z1和z2的交集 redis 127.0.0.1:6379> zinterstore tmp 2 z1 z2 (integer) 2 redis 127.0.0.1:6379> zrange tmp 0 -1 1) "b" 2) "a" redis 127.0.0.1:6379> zrange tmp 0 -1 withscores 1) "b" 2) "4" 3) "a" 4) "4.5" # Aggregate sum->score相加,min->最小score的集合, max->最大score集合; # 可以通過weigth設置不同key的權重, 交集時,socre * weights redis 127.0.0.1:6379> zinterstore tmp 2 z1 z2 aggregate sum #默認是這個 (integer) 2 redis 127.0.0.1:6379> zrange tmp 0 -1 withscores 1) "b" 2) "4" 3) "a" 4) "4.5" redis 127.0.0.1:6379> zinterstore tmp 2 z1 z2 aggregate min #兩個集合中的交集最小從新生成集合到tmp里面 (integer) 2 redis 127.0.0.1:6379> zrange tmp 0 -1 withscores 1) "b" 2) "1" 3) "a" 4) "2" redis 127.0.0.1:6379> zinterstore tmp 2 z1 z2 weights 1 2 #權重默認為1,當前的score的真正值就是score*weight 權重,比如z2里面的b未聲明權重2前就是3,聲明權重2就是6;聲明權重后的運算都是按照權重后的值來運算 (integer) 2 redis 127.0.0.1:6379> zrange tmp 0 -1 withscores 1) "b" 2) "5" 3) "a" 4) "7" ``` 更多請參考: http://www.redis.cn/commands.html#sorted_set
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看