一. 無序集合類型(Set)
集合中的每個元素都是不同的,且沒有順序。一個Set類型鍵可以存儲至多2的32次方-1個字符串。集合在Redis內(nèi)部是使用值為空的散列表(hash table) 實現(xiàn)的。集合:無序,唯一。列表:有序,不唯一。1.sadd : 添加元素到末尾
redis>sadd list a b c d // 如果鍵不存在創(chuàng)建,如果集合里面有這個值了,就會忽略,返回添加成功的條數(shù)。2.srem : 刪除元素
redis> srem list a c // 刪除 a c3.smembers : 查詢集合
redis> smembers list4.sismember : 查詢元素是否在集合中,時間復(fù)雜度為O(1),在返回(integer)1,否則返回(integer)0
redis> sismember list a // (integer)05.sdiff : 用來對多個集合執(zhí)行差集運算
// 集合 A : 1 2 3// 集合 B : 2 3 4redis>sdiff A B // 差集(屬于集合A且不屬于集合B構(gòu)成的集合),? 1)"1"6.sinter : 交集
// 集合 A : 1 2 3// 集合 B : 2 3 4redis>sinter A B // 交集 2 37.sunion : 并集
redis>sunion A B // 1 2 3 48.scard key : 獲取集合長度
9.srandmember : 隨機獲取集合中的元素
redis>srandmember list // 隨機獲取list中的一個元素redis>srandmember list 2 // 隨機獲取兩個二. 有序集合類型(sorted set)
1.列表通過鏈表實現(xiàn)的,獲取靠近兩端的數(shù)據(jù)速度極快。當元素增多后,訪問中間的數(shù)據(jù)速度較慢,所以它更適合實現(xiàn)如“新鮮事”“日志”等很少訪問中間元素的應(yīng)用。2.有序集合使用散列表和跳躍表實現(xiàn)的,所以即使讀取位于中間部分的數(shù)據(jù)速度也很快。3.列表中不能簡單的調(diào)整某個元素的位置,但有序集合可以。4.有序集合要比列表更耗內(nèi)存。1.zadd : 增加元素
redis>zadd grade 89 Tom 67 Peter 100 David // 構(gòu)建一個有序集合redis> zadd grade 98 Tom // 把Tom的分數(shù)修改成982.zscore : 獲取元素的分數(shù)
redis> zscore grade Tom3.zrange : 獲取分數(shù)在某范圍的元素列表
redis>zrange grade 0 1 // "Tom" "Peter"redis>zrange grade 0 -1 withscores //顯示全部并帶有分數(shù)。4.zrangebyscore : 獲取指定分數(shù)范圍的元素列表
redis>zrangebyscore grade 80 100 // Tom David5.zincrby : 增加某元素的分數(shù)
redis> zincrby grade 20 Peter // 跟Peter 加20redis> zincrby grade -20 Peter // 減206.zcard key : 求集合元素個數(shù)
7.zcount key min max : 獲取指定分數(shù)范圍內(nèi)的元素個數(shù)
8.zrem : 刪除一個或多個
redis>zrem grade Tom David持續(xù)更新….
老生常談:深圳有愛好音樂的會打鼓(吉他,鍵盤,貝斯等)的程序員和其它職業(yè)可以一起交流加入我們樂隊一起嗨。我的QQ:657455400
新聞熱點
疑難解答