•redis的set是string類型的無序集合。
•set元素最大能夠包含(2的32次方-1)個元素。
•set的是經過hash table實現的,hash table會隨着添加或者刪除自動的調整大小
關於set集合類型除了基本的添加刪除操做,其餘有用的操做還包含集合的取並集(union),交集(intersection),差集(difference)。經過這些操做能夠很容易的實現sns中的好友推薦和blog的tag功能。
•sadd key member 添加一個string元素到,key對應的set集合中,成功返回1,若是元素以及在集合中返回0,key對應的set不存在返回錯誤
•srem key member 從key對應set中移除給定元素,成功返回1,若是member在集合中不存在或者key不存在返回0,若是key對應的不是set類型的值返回錯誤
•spop key 刪除並返回key對應set中隨機的一個元素,若是set是空或者key不存在返回nil
•srandmember key 同spop,隨機取set中的一個元素,可是不刪除元素
•smove srckey dstkey member 從srckey對應set中移除member並添加到dstkey對應set中,整個操做是原子的。成功返回1,若是member在srckey中不存在返回0,若是key不是set類型返回錯誤
•scard key 返回set的元素個數,若是set是空或者key不存在返回0
•sismember key member 判斷member是否在set中,存在返回1,0表示不存在或者key不存在
•sinter key1 key2...keyN 返回全部給定key的交集
•sinterstore dstkey key1...keyN 同sinter,可是會同時將交集存到dstkey下
•sunion key1 key2...keyN 返回全部給定key的並集
•sunionstore dstkey key1...keyN 同sunion,並同時保存並集到dstkey下
•sdiff key1 key2...keyN 返回全部給定key的差集
•sdiffstore dstkey key1...keyN 同sdiff,並同時保存差集到dstkey下
•smembers key 返回key對應set的全部元素,結果是無序的
Sorted set
•和set同樣sorted set也是string類型元素的集合,不一樣的是每一個元素都會關聯一個double類型的score。sorted set的實現是skip list和hash table的混合體。當元素被添加到集合中時,一個元素到score的映射被添加到hash table中,另外一個score到元素的映射被添加到skip list
並按照score排序,因此就能夠有序的獲取集合中的元素。
Sorted set 相關命令
•zadd key score member 添加元素到集合,元素在集合中存在則更新對應score
•zrem key member 刪除指定元素,1表示成功,若是元素不存在返回0
•zincrby key incr member 增長對應member的score值,而後移動元素並保持skip list有序。返回更新後的score值
•zrank key member 返回指定元素在集合中的排名(下標,非score),集合中元素是按score從小到大排序的
•zrevrank key member 同上,可是集合中元素是按score從大到小排序
•zrange key start end 相似lrange操做從集合中取指定區間的元素。返回的是有序結果
•zrevrange key start end 同上,返回結果是按score逆序的
•zrangebyscore key min max 返回集合中score在給定區間的元素
•zcount key min max 返回集合中score在給定區間的數量
•zcard key 返回集合中元素個數
•zscore key element 返回給定元素對應的score
•zremrangebyrank key min max 刪除集合中排名在給定區間的元素
•zremrangebyscore key min max 刪除集合中score在給定區間的元素
Hash
•redis hash是一個string類型的field和value的映射表。
•hash特別適合用於存儲對象。相較於將對象的每一個字段存成單個string類型。將一個對象存儲在hash類型中會佔用更少的內存,而且能夠更方便的存取整個對象。
Hash相關命令
•hset key field value 設置hash field爲指定值,若是key不存在,則先建立
•hget key field 獲取指定的hash field
•hmget key filed1....fieldN 獲取所有指定的hash filed
•hmset key filed1 value1 ... filedN valueN 同時設置hash的多個field
•hincrby key field integer 將指定的hash filed 加上給定值
•hexists key field 測試指定field是否存在
•hdel key field 刪除指定的hash field
•hlen key 返回指定hash的field數量
•hkeys key 返回hash的全部field
•hvals key 返回hash的全部value
hgetall 返回hash的全部filed和value