中國建設行業(yè)網(wǎng)黑帽seo什么意思
Redis五大數(shù)據(jù)類型
Redis-Key
官網(wǎng):https://www.redis.net.cn/order/
序號 | 命令語法 | 描述 |
---|---|---|
1 | DEL key | 該命令用于在 key 存在時刪除 key |
2 | DUMP key | 序列化給定 key ,并返回被序列化的值 |
3 | EXISTS key | 檢查給定 key 是否存在,存在返回1,否則返回0 |
4 | EXPIRE key seconds | 為給定 key 設置過期時間,以秒計 |
5 | EXPIREAT key timestamp | EXPIREAT 的作用和 EXPIRE 類似,都用于為 key 設置過期時間。 不同在于 EXPIREAT 命令接受的時間參數(shù)是 UNIX 時間戳 |
6 | PEXPIRE key milliseconds | 設置 key 的過期時間以毫秒計 |
7 | PEXPIREAT key milliseconds-timestamp | 設置 key 過期時間的時間戳(unix timestamp) 以毫秒計 |
8 | KEYS pattern | 查找所有符合給定模式( pattern)的 key |
9 | MOVE key db | 將當前數(shù)據(jù)庫的 key 移動到給定的數(shù)據(jù)庫 db 當中 |
10 | PERSIST key | 移除 key 的過期時間,key 將持久保持 |
11 | PTTL key | 以毫秒為單位返回 key 的剩余的過期時間 |
12 | TTL key | 以秒為單位,返回給定 key 的剩余生存時間(TTL, time to live) |
13 | RANDOMKEY | 從當前數(shù)據(jù)庫中隨機返回一個 key |
14 | RENAME key newkey | 修改 key 的名稱 |
15 | RENAMENX key newkey | 僅當 newkey 不存在時,將 key 改名為 newkey |
16 | SCAN cursor [MATCH pattern] [COUNT count] | 迭代數(shù)據(jù)庫中的數(shù)據(jù)庫鍵 |
17 | TYPE key | 返回 key 所儲存的值的類型 |
18 | SELECT db | 選擇數(shù)據(jù)庫 數(shù)據(jù)庫為0-15(默認一共16個數(shù)據(jù)庫) |
19 | DBSIZE | 查看數(shù)據(jù)庫的key數(shù)量 |
20 | FLUSHDB | 清空當前數(shù)據(jù)庫 |
21 | FLUSHALL | 清空所有數(shù)據(jù)庫 |
22 | ECHO | 打印命令 |
127.0.0.1:6379> keys *
(empty array)
127.0.0.1:6379> select 0
OK
127.0.0.1:6379> keys *
(empty array)
127.0.0.1:6379> set name zs
OK
127.0.0.1:6379> keys *
1) "name"
127.0.0.1:6379> set age 20
OK
127.0.0.1:6379> keys *
1) "name"
2) "age"
127.0.0.1:6379> exists name
(integer) 1
127.0.0.1:6379> move name 1
(integer) 1
127.0.0.1:6379> keys *
1) "age"
127.0.0.1:6379> set name lisi
OK
127.0.0.1:6379> keys *
1) "name"
2) "age"
127.0.0.1:6379> clear
127.0.0.1:6379> keys *
1) "name"
2) "age"
127.0.0.1:6379> expire name 10
(integer) 1
127.0.0.1:6379> ttl name
(integer) 5
127.0.0.1:6379>
String(字符串)
Redis 字符串數(shù)據(jù)類型的相關命令用于管理 redis 字符串值
String 是 redis 最基本的類型,你可以理解成與 Memcached 一模一樣的類型,一個 key 對應一個 value。
String 類型是二進制安全的,意思是 redis 的 string 可以包含任何數(shù)據(jù)。比如jpg圖片或者序列化的對象。
String 類型是 Redis 最基本的數(shù)據(jù)類型,String 類型的值最大能存儲 512MB。
String類型一般用于緩存、限流、計數(shù)器、分布式鎖、分布式Session。
Redis 字符串命令
下表列出了常用的 redis 字符串命令:
序號 | 命令語法 | 描述 |
---|---|---|
1 | SET key value | 設置指定 key 的值 |
2 | GET key | 獲取指定 key 的值 |
3 | GETRANGE key start end | 返回 key 中字符串值的子字符,end=-1時表示全部 |
4 | SETBIT key offset value | 對 key 所儲存的字符串值,設置或清除指定偏移量上的位(bit) |
5 | GETBIT key offset | 對 key 所儲存的字符串值,獲取指定偏移量上的位(bit) |
6 | MSET key value [key value …] | 同時設置一個或多個 key-value 對 |
7 | MGET key1 [key2…] | 獲取所有(一個或多個)給定 key 的值 |
8 | GETSET key value | 將給定 key 的值設為 value ,并返回 key 的舊值(old value) |
9 | SETEX key seconds value | 將值 value 關聯(lián)到 key ,并將 key 的過期時間設為 seconds (以秒為單位) |
10 | SETNX key value | 只有在 key 不存在時設置 key 的值 |
11 | SETRANGE key offset value | 用 value 參數(shù)覆寫給定 key 所儲存的字符串值,從偏移量 offset 開始 |
12 | STRLEN key | 返回 key 所儲存的字符串值的長度 |
13 | MSETNX key value [key value …] | 同時設置一個或多個 key-value 對,當且僅當所有給定 key 都不存在 |
14 | PSETEX key milliseconds value | 與 SETEX 命令相似,但它以毫秒為單位設置 key 的生存時間 |
15 | INCR key | 將 key 中儲存的數(shù)字值增一 |
16 | INCRBY key increment | 將 key 所儲存的值加上給定的增量值(increment) |
17 | INCRBYFLOAT key increment | 將 key 所儲存的值加上給定的浮點增量值(increment) |
18 | DECR key | 將 key 中儲存的數(shù)字值減一 |
19 | DECRBY key decrement | key 所儲存的值減去給定的減量值(decrement) |
20 | APPEND key value | 如果 key 已經存在并且是一個字符串, APPEND 命令將指定的 value 追加到該 key 原來值 value 的末尾 |
實例:
127.0.0.1:6379> set key1 v1 #設置值
OK
127.0.0.1:6379> get key1 # 獲取值
"v1"
127.0.0.1:6379> exists key1 # 判斷key是否存在
(integer) 1
127.0.0.1:6379> append key1 "hello" # 追加字符串 如果當前key不存在,則相當于set key
(integer) 7
127.0.0.1:6379> get key1
"v1hello"
127.0.0.1:6379> strlen key
(integer) 0
127.0.0.1:6379> strlen key1
(integer) 7
127.0.0.1:6379> append key1 "redis"
(integer) 12
127.0.0.1:6379> strlen key1
(integer) 12
127.0.0.1:6379>
127.0.0.1:6379> set views 0
OK
127.0.0.1:6379> get views
"0"
127.0.0.1:6379> incr views # 將 key 中儲存的數(shù)字值增一
(integer) 1
127.0.0.1:6379> get views
"1"
127.0.0.1:6379> decr views # 將 key 中儲存的數(shù)字值減一
(integer) 0
127.0.0.1:6379> incrby views 10 # 將 key 所儲存的值加上給定的增量值(increment)
(integer) 10
127.0.0.1:6379> decrby views 5 # key 所儲存的值減去給定的減量值(decrement)
(integer) 5
127.0.0.1:6379> set key1 "hello,redis"
OK
127.0.0.1:6379> get key1
"hello,redis"
127.0.0.1:6379> getrange key1 0 5 # 返回 key 中字符串值的子字符,[0,5],end=-1時表示全部
"hello,"
127.0.0.1:6379> set key2 asdfgh
OK
127.0.0.1:6379> get key2
"asdfgh"
127.0.0.1:6379> setrange key2 1 xx # 用 value 參數(shù)覆寫給定 key 所儲存的字符串值,從偏移量 offset 開始
(integer) 6
127.0.0.1:6379> get key2
"axxfgh"
127.0.0.1:6379> setex key3 30 "hello" # 將值 value 關聯(lián)到 key ,并將 key 的過期時間設為 seconds (以秒為單位)
OK
127.0.0.1:6379> ttl key3
(integer) 22
127.0.0.1:6379> setnx mykey "redis" # 只有在 key 不存在時設置 key 的值
(integer) 1
127.0.0.1:6379> setnx mykey "mongodb"
(integer) 0
127.0.0.1:6379> get mykey
"redis"
127.0.0.1:6379> mset k1 v1 k2 v2 k3 v3 # 同時設置多個值
OK
127.0.0.1:6379> mget k1 k2 k3 # 同時獲取多個值
1) "v1"
2) "v2"
3) "v3"
127.0.0.1:6379> msetnx k1 v1 k4 v4 # msetnx 是原子性的操作
(integer) 0
127.0.0.1:6379> get k4
(nil)
127.0.0.1:6379> mset user:1:name zhangsan user:1:age 20
OK
127.0.0.1:6379> mget user:1:name user:1:age
1) "zhangsan"
2) "20"
127.0.0.1:6379> getset db redis # getset如果不存在值則返回nil,存在則先返回當前的值,在設置新的值
(nil)
127.0.0.1:6379> get db
"redis"
127.0.0.1:6379> getset db mongodb
"redis"
127.0.0.1:6379> get db
"mongodb"
List(列表)
Redis列表是簡單的字符串列表,按照插入順序排序。你可以添加一個元素導列表的頭部(左邊)或者尾部(右邊)
一個列表最多可以包含 232 - 1 個元素 (4294967295, 每個列表超過40億個元素)。
List類型一般用于關注人、簡單隊列等。
所有l(wèi)ist命令都是l開頭的
序號 | 命令語法 | 描述 |
---|---|---|
1 | LPUSH key value1 [value2] | 將一個或多個值插入到列表頭部 |
2 | LPOP key | 移出并獲取列表的第一個元素 |
3 | LRANGE key start stop | 獲取列表指定范圍內的元素 |
4 | LPUSHX key value | 將一個值插入到已存在的列表頭部 |
5 | RPUSH key value1 [value2] | 在列表中添加一個或多個值 |
6 | RPOP key | 移除列表的最后一個元素,返回值為移除的元素 |
7 | RPUSHX key value | 為已存在的列表添加值 |
8 | LLEN key | 獲取列表長度 |
9 | LINSERT key BEFORE|AFTER pivot value | 在列表的元素前或者后插入元素 |
10 | LINDEX key index | 通過索引獲取列表中的元素 |
11 | LSET key index value | 通過索引設置列表元素的值 |
12 | LREM key count value | 移除列表元素 |
13 | LTRIM key start stop | 對一個列表進行修剪,即讓列表只保留指定區(qū)間內的元素, 不在指定區(qū)間之內的元素都將被刪除 |
14 | BLPOP key1 [key2 ] timeout | 移出并獲取列表第一個元素,如果列表沒有元素會阻塞列表 直到等待超時或發(fā)現(xiàn)可彈出元素為止 |
15 | BRPOP key1 [key2 ] timeout | 移出并獲取列表最后一個元素,如果列表沒有元素會阻塞列表 直到等待超時或發(fā)現(xiàn)可彈出元素為止 |
16 | BRPOPLPUSH source destination timeout | 將列表中彈出的元素插入到另外一個列表中并返回 如果列表沒有元素會阻塞列表直到等待超時或發(fā)現(xiàn)可彈出元素為止 |
17 | RPOPLPUSH source destination | 移除列表最后一個元素,并將該元素添加到另一個列表并返回 |
實例
127.0.0.1:6379> lpush list one # 將一個或者多個值插入到列表的頭部(左)
(integer) 1
127.0.0.1:6379> lpush list two
(integer) 2
127.0.0.1:6379> lpush list three
(integer) 3
127.0.0.1:6379> lrange list 0 -1
1) "three"
2) "two"
3) "one"
127.0.0.1:6379> lrange list 0 1
1) "three"
2) "two"
127.0.0.1:6379> rpush list right # 將一個或者多個值插入到列表的尾部(右)
(integer) 4
127.0.0.1:6379> lrange list 0 1 # 通過區(qū)間獲取具體的值
1) "three"
2) "two"
127.0.0.1:6379> lrange list 0 -1
1) "three"
2) "two"
3) "one"
4) "right"
127.0.0.1:6379> lpop list # 移除第一個元素
"three"
127.0.0.1:6379> rpop list # 移除最后一個元素
"right"
127.0.0.1:6379> lrange list 0 -1
1) "two"
2) "one"
127.0.0.1:6379> lindex list 1 # 通過下標獲取某一個值
"one"
127.0.0.1:6379> lindex list 0
"two"
127.0.0.1:6379> llen list # 返回列表的長度
(integer) 2
127.0.0.1:6379> lpush list three
(integer) 3
127.0.0.1:6379> lpush list three
(integer) 4
127.0.0.1:6379> lrem list 1 two # 移除指定個數(shù)的value,精確匹配
(integer) 1
127.0.0.1:6379> lrange list 0 -1
1) "three"
2) "three"
3) "one"
127.0.0.1:6379> lrem list 1 three
(integer) 1
127.0.0.1:6379> lrange list 0 -1
1) "three"
2) "one"
127.0.0.1:6379> lpush list three
(integer) 3
127.0.0.1:6379> lrem list 2 three
(integer) 2
127.0.0.1:6379> lrange list 0 -1
1) "one"
127.0.0.1:6379> lpush mylist "hello"
(integer) 1
127.0.0.1:6379> lpush mylist "hello1"
(integer) 2
127.0.0.1:6379> lpush mylist "hello12"
(integer) 3
127.0.0.1:6379> lpush mylist "hello13"
(integer) 4
127.0.0.1:6379> ltrim mylist 1 2 # 通過下標截取指定的長度,list已經被改變,只剩下截取的元素了!
OK
127.0.0.1:6379> lrange mylist 0 -1
1) "hello12"
2) "hello1"
127.0.0.1:6379> rpush mylist "hello"
(integer) 1
127.0.0.1:6379> rpush mylist "hello1"
(integer) 2
127.0.0.1:6379> rpush mylist "hello2"
(integer) 3
127.0.0.1:6379> rpoplpush mylist myotherlist # 移除列表的最后一個元素,將他移動到新的列表中
"hello2"
127.0.0.1:6379> lrange mylist 0 -1 # 查看原來列表
1) "hello"
2) "hello1"
127.0.0.1:6379> lrange myotherlist 0 -1 # 查看新的列表中確實存在
1) "hello2"
127.0.0.1:6379> exists list
(integer) 0
127.0.0.1:6379> lset list 0 item
(error) ERR no such key
127.0.0.1:6379> lpush list value1
(integer) 1
127.0.0.1:6379> lrange list 0 -1
1) "value1"
127.0.0.1:6379> lset list 0 item # 將列表中的指定下標的值替換為另一個值,更新操作,如果不存在列表去更新就會報錯。存在就更新當前下標的值
OK
127.0.0.1:6379> lrange list 0 -1
1) "item"
127.0.0.1:6379> lpush mylist "hello"
(integer) 1
127.0.0.1:6379> lpush mylist "world"
(integer) 2
127.0.0.1:6379> linsert mylist before "world" "other" # 將某個具體的value插入到某個元素的前面或者后面
(integer) 3
127.0.0.1:6379> lrange list 0 -1
(empty array)
127.0.0.1:6379> lrange mylist 0 -1
1) "other"
2) "world"
3) "hello"
127.0.0.1:6379> linsert mylist after "world" "new"
(integer) 4
127.0.0.1:6379> lrange mylist 0 -1
1) "other"
2) "world"
3) "new"
4) "hello"
小結
-
他實際上是一個鏈表,before Node after , left , right 都可以插入值如果key不存在,創(chuàng)建新的鏈表
-
如果key存在,新增內容
-
如果移除了所有值,空鏈表,也代表不存在!
-
在兩邊插入或者改動值,效率最高!中間元素,相對來說效率會低一點~
消息排隊!消息隊列( Lpush Rpop ) ,棧( Lpush Lpop )
set(集合)
Redis的Set是string類型的無序集合。集合成員是唯一的,這就意味著集合中不能出現(xiàn)重復的數(shù)據(jù)。
Redis 中 集合是通過哈希表實現(xiàn)的,所以添加,刪除,查找的復雜度都是O(1)。
集合中最大的成員數(shù)為 232 - 1 (4294967295, 每個集合可存儲40多億個成員)。
Set類型一般用于贊、踩、標簽、好友關系等。
序號 | 命令語法 | 描述 |
---|---|---|
1 | SADD key member1 [member2] | 向集合添加一個或多個成員 |
2 | SMEMBERS key | 返回集合中的所有成員 |
3 | SCARD key | 獲取集合的成員數(shù) |
4 | SRANDMEMBER key [count] | 返回集合中一個或多個隨機數(shù) |
5 | SISMEMBER key member | 判斷 member 元素是否是集合 key 的成員 |
6 | SREM key member1 [member2] | 移除集合中一個或多個成員 |
7 | SDIFF key1 [key2] | 返回給定所有集合的差集 |
8 | SDIFFSTORE destination key1 [key2] | 返回給定所有集合的差集并存儲在 destination 中 |
9 | SINTER key1 [key2] | 返回給定所有集合的交集 |
10 | SINTERSTORE destination key1 [key2] | 返回給定所有集合的交集并存儲在 destination 中 |
11 | SUNION key1 [key2] | 返回所有給定集合的并集 |
12 | SUNIONSTORE destination key1 [key2] | 所有給定集合的并集存儲在 destination 集合中 |
13 | SMOVE source destination member | 將 member 元素從 source 集合移動到 destination 集合 |
14 | SPOP key | 移除并返回集合中的一個隨機元素 |
15 | SSCAN key cursor [MATCH pattern] [COUNT count] | 迭代集合中的元素 |
實例:
127.0.0.1:6379> sadd myset "hello" # set集合中添加值
(integer) 1
127.0.0.1:6379> sadd myset "zs"
(integer) 1
127.0.0.1:6379> smembers myset # 查看指定set的所有值
1) "hello"
2) "zs"
127.0.0.1:6379> sismember myset "hello" # 判斷某一個值是不是在set集合中
(integer) 1
127.0.0.1:6379> sismember myset "world"
(integer) 0
127.0.0.1:6379> scard myset # 獲取set集合中的內容元素個數(shù)
(integer) 3
127.0.0.1:6379> srem myset hello # 移除set中指定元素
(integer) 1
127.0.0.1:6379> scard myset
(integer) 2
127.0.0.1:6379> smembers myset
1) "zs"
2) "lisi"
127.0.0.1:6379> srandmember myset # 隨機抽選出元素
"zs"
127.0.0.1:6379> srandmember myset
"lisi"
127.0.0.1:6379> srandmember myset
"lisi"
127.0.0.1:6379> srandmember myset 2 # 隨機抽選出指定個數(shù)元素
1) "zs"
2) "lisi"
127.0.0.1:6379> spop myset # 隨機刪除set中的一些元素
"lisi2"
127.0.0.1:6379> sadd myset2 set2
(integer) 1
127.0.0.1:6379> smove myset myset2 lisi # 將一個指定的值,移動到另外一個set集合中
(integer) 1
127.0.0.1:6379> smembers myset2
1) "set2"
2) "lisi"
127.0.0.1:6379> sadd key1 a
(integer) 1
127.0.0.1:6379> sadd key1 b
(integer) 1
127.0.0.1:6379> sadd key1 c
(integer) 1
127.0.0.1:6379> sadd key2 c
(integer) 1
127.0.0.1:6379> sadd key2 d
(integer) 1
127.0.0.1:6379> sadd key2 e
(integer) 1
127.0.0.1:6379> sdiff key1 key2 # 差集
1) "a"
2) "b"
127.0.0.1:6379> sinter key1 key2 # 交集
1) "c"
127.0.0.1:6379> sunion key1 key2 # 并集
1) "a"
2) "b"
3) "c"
4) "d"
5) "e"
微博,A用戶將所有關注的人放在一個set集合中!將它的粉絲也放在一個集合中!
共同關注,共同愛好,二度好友(六度分割理論)
Hash(哈希)
Redis hash 是一個string類型的field和value的映射表,hash特別適合用于存儲對象。
Map集合,key-map!時候這個值是一個map集合! 本質和String類型沒有太大區(qū)別,還是一個簡單的key-vlaue !
Redis 中每個 hash 可以存儲 232 - 1 鍵值對(40多億)。
序號 | 命令語法 | 描述 |
---|---|---|
1 | HSET key field value | 將哈希表 key 中的字段 field 的值設為 value |
2 | HGET key field | 獲取存儲在哈希表中指定字段的值 |
3 | HGETALL key | 獲取在哈希表中指定 key 的所有字段和值 |
4 | HEXISTS key field | 查看哈希表 key 中,指定的字段是否存在 |
5 | HSETNX key field value | 只有在字段 field 不存在時,設置哈希表字段的值 |
6 | HKEYS key | 獲取所有哈希表中的字段 |
7 | HVALS key | 獲取哈希表中所有值 |
8 | HLEN key | 獲取哈希表中字段的數(shù)量 |
9 | HMGET key field1 [field2] | 獲取所有給定字段的值 |
10 | HMSET key field1 value1 [field2 value2] | 同時將多個 field-value (域-值)對設置到哈希表 key 中 |
11 | HINCRBY key field increment | 為哈希表 key 中的指定字段的整數(shù)值加上增量 increment |
12 | HINCRBYFLOAT key field increment | 為哈希表 key 中的指定字段的浮點數(shù)值加上增量 increment |
13 | HDEL key field1 [field2] | 刪除一個或多個哈希表字段 |
14 | HSCAN key cursor [MATCH pattern] [COUNT count] | 迭代哈希表中的鍵值對 |
實例:
127.0.0.1:6379> hset myhash filed1 zhangsan # set一個具體的key-value
(integer) 1
127.0.0.1:6379> hget myhash filed1 # 獲取一個字段值
"zhangsan"
127.0.0.1:6379> hmset myhash filed1 hello filed2 world # set多個key-value
OK
127.0.0.1:6379> hmget myhash filed1 filed2 # 獲取多個字段值
1) "hello"
2) "world"
127.0.0.1:6379> hgetall myhash # 獲取全部的數(shù)據(jù)
1) "filed1"
2) "hello"
3) "filed2"
4) "world"
127.0.0.1:6379> hdel myhash filed1 # 刪除hash指定的key字段,對應的value也沒了
(integer) 1
127.0.0.1:6379> hgetall myhash
1) "filed2"
2) "world"
127.0.0.1:6379> hdel myhash filed1
(integer) 1
127.0.0.1:6379> hgetall myhash
1) "filed2"
2) "world"
127.0.0.1:6379> hlen myhash
(integer) 1
127.0.0.1:6379> hmset myhash filed1 hello
OK
127.0.0.1:6379> hlen myhash # 獲取hash表的字段數(shù)量
(integer) 2
127.0.0.1:6379> hgetall myhash
1) "filed2"
2) "world"
3) "filed1"
4) "hello"
127.0.0.1:6379> hexists myhash filed1 # 判斷hash中的字段是否存在
(integer) 1
127.0.0.1:6379> hexists myhash filed3
(integer) 0
127.0.0.1:6379> hkeys myhash # 獲取所有的字段
1) "filed2"
2) "filed1"
127.0.0.1:6379> hvals myhash # 獲取所有的值
1) "world"
2) "hello"
127.0.0.1:6379> hset myhash filed3 5 # 指定增量
(integer) 1
127.0.0.1:6379> hincrby myhash filed3 1
(integer) 6
127.0.0.1:6379> hincrby myhash filed3 -1
(integer) 5
127.0.0.1:6379> hsetnx myhash filed4 hello # 若不存在則可設置
(integer) 1
127.0.0.1:6379> hsetnx myhash filed4 world # 若存在則不可設置
(integer) 0
hash變更的數(shù)據(jù)user name age,尤其是是用戶信息之類的,經常變動的信息! hash更適合于對象的存儲,String更加適合字符串存儲!
Zset(有序集合)
Redis 有序集合(sorted set)
Redis 有序集合和集合一樣也是string類型元素的集合,且不允許重復的成員。
不同的是每個元素都會關聯(lián)一個double類型的分數(shù)。redis正是通過分數(shù)來為集合中的成員進行從小到大的排序。
有序集合的成員是唯一的,但分數(shù)(score)卻可以重復。
集合是通過哈希表實現(xiàn)的,所以添加,刪除,查找的復雜度都是O(1)。 集合中最大的成員數(shù)為 232 - 1 (4294967295, 每個集合可存儲40多億個成員)。
Zset類型一般用于排行榜等。
序號 | 命令語法 | 描述 |
---|---|---|
1 | ZADD key score1 member1 [score2 member2] | 向有序集合添加一個或多個成員,或者更新已存在成員的分數(shù) |
2 | ZCARD key | 獲取有序集合的成員數(shù) |
3 | ZCOUNT key min max | 計算在有序集合中指定區(qū)間分數(shù)的成員數(shù) |
4 | ZINCRBY key increment member | 有序集合中對指定成員的分數(shù)加上增量 increment |
5 | ZLEXCOUNT key min max | 在有序集合中計算指定字典區(qū)間內成員數(shù)量 |
6 | ZRANGE key start stop [WITHSCORES] | 通過索引區(qū)間返回有序集合指定區(qū)間內的成員 |
7 | ZRANGEBYLEX key min max [LIMIT offset count] | 通過字典區(qū)間返回有序集合的成員 |
8 | ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT] | 通過分數(shù)返回有序集合指定區(qū)間內的成員 |
9 | ZRANK key member | 返回有序集合中指定成員的索引 |
10 | ZREM key member [member …] | 移除有序集合中的一個或多個成員 |
11 | ZREMRANGEBYLEX key min max | 移除有序集合中給定的字典區(qū)間的所有成員 |
12 | ZREMRANGEBYRANK key start stop | 移除有序集合中給定的排名區(qū)間的所有成員 |
13 | ZREMRANGEBYSCORE key min max | 移除有序集合中給定的分數(shù)區(qū)間的所有成員 |
14 | ZREVRANGE key start stop [WITHSCORES] | 返回有序集中指定區(qū)間內的成員,通過索引,分數(shù)從高到低 |
15 | ZREVRANGEBYSCORE key max min [WITHSCORES] | 返回有序集中指定分數(shù)區(qū)間內的成員,分數(shù)從高到低排序 |
16 | ZREVRANK key member | 返回有序集合中指定成員的排名, 有序集成員按分數(shù)值遞減(從大到小)排序 |
17 | ZSCORE key member | 返回有序集中,成員的分數(shù)值 |
18 | ZINTERSTORE destination numkeys key [key …] | 計算給定的一個或多個有序集的交集 并將結果集存儲在新的有序集合 key 中 |
19 | ZUNIONSTORE destination numkeys key [key …] | 計算給定的一個或多個有序集的并集,并存儲在新的 key 中 |
20 | ZSCAN key cursor [MATCH pattern] [COUNT count] | 迭代有序集合中的元素(包括元素成員和元素分值) |
實例:
127.0.0.1:6379> zadd myset 1 one # 添加一個值
(integer) 1
127.0.0.1:6379> zadd myset 2 two
(integer) 1
127.0.0.1:6379> zadd myset 3 three 4 four # 添加多個值
(integer) 2
127.0.0.1:6379> zrange myset 0 -1
1) "one"
2) "two"
3) "three"
4) "four"
# 排序實現(xiàn)
127.0.0.1:6379> zadd salary 2500 xiaohong # 添加三個用戶
(integer) 1
127.0.0.1:6379> zadd salary 5500 zhangsan
(integer) 1
127.0.0.1:6379> zadd salary 8000 lisi
(integer) 1
127.0.0.1:6379> zrangebyscore salary -inf +inf # 顯示全部用戶 從小到大排序
1) "xiaohong"
2) "zhangsan"
3) "lisi"
127.0.0.1:6379> zrevrange salary 0 -1 # 顯示全部用戶 從大到小排序
1) "lisi"
2) "zhangsan"
127.0.0.1:6379> zrangebyscore salary -inf +inf withscores # 顯示全部用戶 并且附帶成績
1) "xiaohong"
2) "2500"
3) "zhangsan"
4) "5500"
5) "lisi"
6) "8000"
127.0.0.1:6379> zrangebyscore salary -inf 5000 withscores # 顯示工資小于5000的用戶升序 并且附帶成績
1) "xiaohong"
2) "2500"
127.0.0.1:6379> zrange salary 0 -1
1) "xiaohong"
2) "zhangsan"
3) "lisi"
127.0.0.1:6379> zrem salary xiaohong # 移除有序集合中的指定元素
(integer) 1
127.0.0.1:6379> zrange salary 0 -1
1) "zhangsan"
2) "lisi"
127.0.0.1:6379> zcard salary # 獲取有序集合中的個數(shù)
(integer) 2
127.0.0.1:6379> zadd myset 1 hello 2 wolrd 3 zhangsan
(integer) 3
127.0.0.1:6379> zcount myset 1 3 # 獲取指定區(qū)間成員的數(shù)量
(integer) 3