有序集合 sorted sets類型
sorted sets是set的一個升級版本,它在set的基礎上增長了一個順序屬性,這一屬性在添加修改元素的時候能夠指定,每次指定後,zset會自動從新按照新的值調整順序。能夠理解爲有兩列mysql表,一列存放value,一列存放order。操做中key理解爲zset名字。有序集合的成員是惟一的,可是分數(score)倒是能夠重複的。mysql
- zadd 向名稱爲key的zset中添加元素。
格式: zadd myzset1 1 name 1,表明其順序;name爲添加的元素
含義: 向key爲myzset1中添加一個順序爲1的元素name。添加成功返回1。
注意: 若是該元素已經存在,則更新其順序。
- zrange 取出key中指定範圍的元素
格式: zrange myzset1 0 -1 withscores
含義: 取出myzset1中,下標從0到-1的全部元素,而且附帶上順序號(score)。
注意: 須要一塊兒返回順序號的時候,須要加上withscores,不加的話,只能返回元素。返回值是按照scores從小到大排序。
- zrem 刪除有序集合中的元素
格式: zrem myzset1 name
含義: 刪除keymyzset1中的元素name,刪除成功返回1,失敗返回0。
- zincrby 若是元素存在,遞增該元素的scores。
格式: zincrby myzset1 3 age
含義: 爲元素age的順序號(scores)遞增3。返回值是,修改事後的順序號。
注意: 和以前的incrby同樣,正數是遞增,負數是遞減。另外,若是沒有這個元素,則增長該元素,順序號是它的指定值
- zrank 獲取有序列表中成員的排名(按照scores從小到大排序)的下標。
格式: zrank myzset1 sex
含義: 查看有序集合myzset1中sex元素的下標。
注意: 返回的是下標!下標!首先,把這個集合中的每一個元素按照順序(scores)的從小到大排序,再返回相應元素的下標。
- zrevrank 一樣是獲取某元素的排名,可是,此次是按照scores的從大到小排名的。
格式: zrevrank myzset1 age
含義: 獲取有序列表中成員的排名(按照scores從大到小排序)的下標。
注意: 返回的一樣是下標,可是此次scores是從大到小排序。rev:reverse 反轉,這樣就容易記憶了。
- zrevranges 從大到小排序,和zranges相對應
格式: zrevrange myzset1 0 -1 withscores
含義: 取出myzset1中,下標從0到-1的全部元素,而且附帶上順序號(score)。返回值是按照scores從大到小排序。
- zcount 返回集合中scores在給定區間的數量
格式: zcount myzset1 2 3
含義: 取出有序集合myzset1中,順序號(scores)從2到3的元素的數量。
注意: 返回的是元素的個數。
- zcard 返回有序集合中全部元素的數量。
格式: zcard myzset1
含義: 查看集合中全部元素的數量。
- zremrangebyrank 刪除集合中排名在給定區間的元素(按照下標刪除)
格式: zremrangebyrank myzset1 2 4
含義: 刪除myzset1中,下標從3到4的元素。
注意: 是按照下標刪除的。返回值是刪除的個數。
- zremrangebyscore 刪除集合中排名在給定區間的元素(按照順序號scores刪除)
格式: zremrangebyscore myzset1 2 4
含義: 刪除myzset1中,順序號(score)從3到4的元素。
注意: 此次是按照順序號刪除的。返回值是刪除的個數。
學PHP的小螞蟻 原創博客 http://my.oschina.net/woshixiaomayi/blogsql