第二個(gè)模塊 Redis類型

第二部分 redis

Redis官網(wǎng) https://redis.io
Redis 中國(guó)鏡像
Redis中國(guó)用戶組(CRUG) http://www.redis.cn/download.html
Redis 數(shù)據(jù)類型的應(yīng)用場(chǎng)景

發(fā)現(xiàn):當(dāng)清空hash、list、set、zset的值時(shí),會(huì)把與之對(duì)應(yīng)的key釋放!

redis類型

  1. string 字符串類型(一個(gè)鍵最多存儲(chǔ)512M)

是最簡(jiǎn)單的類型,你可以理解成與 Memcached 是一模一樣的類型,一個(gè) key 對(duì)應(yīng)一個(gè)
value,其上支持的操作與 Memcached 的操作類似,但它的功能更豐富

  1. SET:設(shè)置key對(duì)應(yīng)值為value(會(huì)覆蓋)
    語(yǔ)法: SET key value
set str1 'xdl'
  1. GET:根據(jù)KEY找到對(duì)應(yīng)的值
    語(yǔ)法: GET key
get str1

注意:如果key不存在 返回nil

  1. MSET:一次設(shè)置多個(gè)鍵值對(duì)(會(huì)覆蓋)
    語(yǔ)法:MSET key value [key value .......]
    說(shuō)明:mset 鍵1 值1 鍵2 值2 ...
mset str4 'xdl' str5 'itxdl' str6 'xdlo2o'

注意:會(huì)覆蓋

  1. MGET:一次得到多個(gè)鍵值
    語(yǔ)法: MGET key key
    說(shuō)明: mget 鍵1 鍵2 鍵3
mget str4 str5 str6
  1. SETNX:只有KEY不存在的時(shí)候才能設(shè)置成功
    語(yǔ)法: SETNX key value
setnx str1 'hello'

說(shuō)明:如果存在,返回 0;如果不存在,返回1
注意:不會(huì)覆蓋

  1. MSETNX:一次設(shè)置多個(gè)key-value對(duì)
    語(yǔ)法: MSETNX key value [key value .....]
msetnx str10 'a' str11 'b' str12 'c'
msetnx str12 'd' str13 'e'

說(shuō)明:返回0:創(chuàng)建失敗;返回1:創(chuàng)建成功
注意:不會(huì)覆蓋,只有所有的key都不存在的時(shí)候才會(huì)成功

  1. SETEX:設(shè)置一個(gè)KEY并且設(shè)置一個(gè)過(guò)期時(shí)間
    語(yǔ)法: SETEX key seconds value
    說(shuō)明:setex 鍵 秒數(shù) 值
setex str8 30 'xdl'

注意:會(huì)覆蓋

  1. PSETEX: 以毫秒為單位設(shè)置KEY的生存周期
    語(yǔ)法:PSEREX key milliseconds value
psetex set9 20000 'hello'
  1. TTL 查看鍵值生命周期。
    語(yǔ)法: ttl KEY
ttl str8
  1. GETSET:設(shè)置指定key的值,并返回舊值
    語(yǔ)法: GETSET key value
set str2 'itxdl'
getset str2 'xdl'

注意:當(dāng)key不存在返回nil,但不影響執(zhí)行

  1. SETRANGE:相當(dāng)于字符串替換
    語(yǔ)法: SETRANGE key offset value
    說(shuō)明:setrange 鍵 第幾個(gè)字符開(kāi)始 新值
SET str7 'hello'
SETRANGE str7 5 'xdl'
setrange str7 20 'test'

注意: 如果設(shè)置key原來(lái)的字符串的長(zhǎng)度比偏移量小,就會(huì)以零字節(jié)(\x00)來(lái)填充

  1. GETRANGE:返回字符串中的一部分
    語(yǔ)法: GETRANGE key start end
    說(shuō)明:getrange 鍵 從第幾個(gè)開(kāi)始 到第幾個(gè)結(jié)束
getrange str1 0 0   #獲取第一個(gè)字符
getrange str1 0 1   #獲取前兩個(gè)字符
getrange str1 0 -1  #獲取所有字符
getrange str1 0 -2  #去掉最后一位
getrange str1 0 1000
getrange str1 -1 10 #返回空字符串
  1. INCR:對(duì)key中存儲(chǔ)的數(shù)字加1
    語(yǔ)法: INCR key
    說(shuō)明:只能針對(duì)數(shù)字
set nums 10
incr nums
incr total

注意:key如果不存在,則會(huì)先初始化為0,在進(jìn)行INCR操作

  1. DECR:將key中存儲(chǔ)的數(shù)字減1
    語(yǔ)法: DECR key
    說(shuō)明:只能針對(duì)數(shù)字
set nums1 1
decr nums1

注意:key如果不存在,則會(huì)先初始化為0,在進(jìn)行DECR操作

  1. INCRBY:將key中存儲(chǔ)的數(shù)字加上指定增量
    語(yǔ)法: INCRBY key INCREMENT
set nums 10
incrby nums 5
incrby nums 1.5 #報(bào)錯(cuò),只能是整數(shù)

說(shuō)明:只能使用整數(shù)
注意:key如果不存在,則會(huì)先初始化為0,在進(jìn)行INCRBY操作

  1. DECRBY:將key中存儲(chǔ)的數(shù)值減指定值
    語(yǔ)法: DECRBY key decrement
set total 20
decrby total 5

說(shuō)明:只能使用整數(shù)
注意:key如果不存在,則會(huì)先初始化為0,在進(jìn)行DECRBY操作

  1. APPEND:通過(guò)APPEND將值追加到字符串末尾
    語(yǔ)法: APPEND key value
set str20 'xdl'
append str20 'o2o'
  1. STRLEN:獲取key的字符串長(zhǎng)度
    語(yǔ)法: STRLEN key
strlen str4
  1. DEL 刪除鍵
    語(yǔ)法: DEL key
set test feng
del test
  1. INCRBYFLOAT:將key中存儲(chǔ)的數(shù)字加上指定浮點(diǎn)數(shù)
    語(yǔ)法: INCRBYFLOAT key increment
set num 1
incrbyfloat num 2.1

注意: 2.6.5版本以下不存在該方法

  1. hash類型

Hash 是一個(gè) string 類型的 field 和 value 的映射表.它的添加、刪除操作都是 O(1)
(平均)。
hash 特別適合用于存儲(chǔ)對(duì)象。相較于將對(duì)象的每個(gè)字段存成單個(gè) string 類型。將一個(gè)對(duì)象存
儲(chǔ)在 hash 類型中會(huì)占用更少的內(nèi)存,并且可以更方便的存取整個(gè)對(duì)象。

  1. HSET:將哈希表中的key中的field設(shè)置成指定的value
    語(yǔ)法: HSET key field value
    說(shuō)明: hset 鍵 字段 值
hset h1 username 'zhangsan'
hset h1 password '123'
hset h1 age '18'
注意:會(huì)覆蓋原值
  1. HGET:返回哈希表key中給的field的值
    語(yǔ)法: HGET key field
    說(shuō)明:hget 鍵 字段
hget h1 username
  hget h1 age
  ```

3. HSETNX:將hash表中的field設(shè)置成指定的值,只有field不存在才能成功,如果field存在,操作無(wú)效
  語(yǔ)法: `HSETNX  key field value`

hsetnx h1 aaa '20'
hsetnx h1 aaa '21'

  注意:如果存在返回0,如果不存在 ,返回1.

4. HMSET:通過(guò)多個(gè) field value設(shè)置到hash表key中
  語(yǔ)法: `HMSET key  field1 value1 field2 value2  .....`

hmset h2 username 'lisi' age '20' password '456'

  說(shuō)明:批量存值

5. HMGET:一次獲得hash表key中多個(gè)field的值
語(yǔ)法: `HMGET key field field .....`

hmget h2 username age password
hmget h2 username age password aaa

  注意:如果hash表key中field不存在,返回nil

6. HLEN:返回hash表key中的field的數(shù)量
  語(yǔ)法: `HLEN key`

hlen h2

  說(shuō)明:查看鍵中有多少個(gè)字段

7. HGETALL:返回hash表key中所有的field和value
語(yǔ)法: `HGETALL key`

HGETALL h2

  說(shuō)明:查看鍵中所有字段 值

8. HKEYS:返回hash表key中的所有的field
  語(yǔ)法: `HKEYS key`
  ```
hkeys h2
說(shuō)明:查看所有鍵
  1. HVALS:返回hash表key中所有的field的對(duì)應(yīng)值
    語(yǔ)法: HVALS key
  hvals h2
說(shuō)明:查看所有值
  1. HDEL:刪除hash中key的指定field,可刪除一個(gè)或多個(gè)
    語(yǔ)法: HDEL key field field .....
hdel h2 username
  hgetall h2
  ```

11. HINCRBY :給hash表key中的field做增量操作
  語(yǔ)法: `HINCRBY key field increment`
  ```
hset h3 age 20
  hincrby h3 age 5 #age遞增5

注意: 沒(méi)有遞減,如果 field不存在則添加這個(gè)字段,然后incrby

  1. HINCRBYFLOAT:給hash表key中的field做增量浮點(diǎn)操作
    語(yǔ)法: HINCRBYFLOAT key field increment
hset h3 aaa '12.2'
hincrbyfloat h3 aaa 2.5
  1. HEXISTS:檢測(cè)hash中key的field是否存在
    語(yǔ)法: HEXISTS key field
hexists h2 username
  hexists h2 aaa

說(shuō)明:有返回1;沒(méi)有返回0;

  1. list(雙向列表) 類型

list 是一個(gè)鏈表結(jié)構(gòu),主要功能是 push、pop、獲取一個(gè)范圍的所有值等等,操作中 key 理
解為鏈表的名字。
Redis 的 list 類型其實(shí)就是一個(gè)每個(gè)子元素都是 string 類型的雙向鏈表。鏈表的最大長(zhǎng)度是(2
的 32 次方)。我們可以通過(guò) push,pop 操作從鏈表的頭部或者尾部添加刪除元素。這使得 list
既可以用作棧,也可以用作隊(duì)列。
有意思的是 list 的 pop 操作還有阻塞版本的,當(dāng)我們[lr]pop 一個(gè) list 對(duì)象時(shí),如果 list 是空,
或者不存在,會(huì)立即返回 nil。但是阻塞版本的 b[lr]pop 可以則可以阻塞,當(dāng)然可以加超時(shí)時(shí)
間,超時(shí)后也會(huì)返回 nil。為什么要阻塞版本的 pop 呢,主要是為了避免輪詢。舉個(gè)簡(jiǎn)單的
例子如果我們用 list 來(lái)實(shí)現(xiàn)一個(gè)工作隊(duì)列。執(zhí)行任務(wù)的 thread 可以調(diào)用阻塞版本的 pop 去獲
取任務(wù)這樣就可以避免輪詢?nèi)z查是否有任務(wù)存在。當(dāng)任務(wù)來(lái)時(shí)候工作線程可以立即返回,
也可以避免輪詢帶來(lái)的延遲。

  1. LPUSH:向列表左端添加元素
    語(yǔ)法: LPUSH key value value ....
    說(shuō)明:lpush 鍵 值1 值2 ...
lpush list1 a b c
注意:值從右往左插入
  1. LPUSHX:向列表頭部添加元素,只有key存在才添加
    語(yǔ)法: LPUSHX key value
lpushx list1 a
  1. RPUSH:向列表右端添加元素
    語(yǔ)法: RPUSH key value ....
rpush list1 d e
說(shuō)明:值從左到右插入
  1. RPUSHX:向列表尾部添加元素,只有key存在才添加
    語(yǔ)法: RPUSHX key value
rpushx list1 b
  1. LRANGE:獲取列表片段
    語(yǔ)法: LRANGE key start stop
lrange list1 0 -1 #查看列表中所有值
#列表中的下標(biāo),索引。從左到右。0 1 2 3 4。從右到左。-1 -2 -3 -4 -5
  1. LINDEX:獲取指定索引元素上的值
    語(yǔ)法: LIDEX key index
```

lindex list1 -1


7. LINSERT 向列表中插入元素
  語(yǔ)法: `LINSERT key BEFORE|AFTER pivot value`
lpush list1 a b c d
linsert list1 before 2(值) 5(值)。說(shuō)明:在某個(gè)值的前面插入
linsert list1 after 2(值) 5(值)。說(shuō)明:在某個(gè)值的后面插入
注意:如果檢索值有重復(fù),則只對(duì)第一個(gè)生效!

8. LSET:設(shè)置指定元素的值
  語(yǔ)法: `LSET key index value`
lset list1 2 7 #下標(biāo)為2,修改后的值為7

9. LREM:刪除列表中的指定值
  語(yǔ)法:`LREM key count value`
  > count >0 :從列表頭部開(kāi)始,向尾部搜索,移除與value相等的元素,移除count個(gè)
  count <0 :從列表的尾部開(kāi)始,向頭部搜索,,移除與value相等的元素,移除count個(gè)
  count = 0:移除列表中所有與value相等的元素

    ```
  lpush list3 a b c d a e b d c b e d
  lrem list3 2 a
  lrem list3 -2 b
  lrem list3 0 d
    ```

10. LTRIM:只保留列表片段
  語(yǔ)法:`LTRIM key start stop`
ltrim list3 0 3
說(shuō)明:保留start-stop(下標(biāo))的值,其余刪除掉。

11. LPOP:將列表頭部的元素彈出
  語(yǔ)法: LPOP key

lpop list1


12. RPOP:彈出列表尾部元素
  語(yǔ)法: RPOP key

rpop list1


13. LLEN:獲取列表長(zhǎng)度
  語(yǔ)法:`LLEN key`

llen list1


14. RPOPLPUSH:將元素從一個(gè)列表轉(zhuǎn)移到另一個(gè)列表
  語(yǔ)法: `RPOPLPUSH  source destination`

lpush list5 a b c
lpush list6 x y z
rpoplpush list5 list6

注意:一次移動(dòng)一個(gè)元素

4. **set(無(wú)序集合)**
>  set 是集合,和我們數(shù)學(xué)中的集合概念相似,對(duì)集合的操作有添加刪除元素,有對(duì)多個(gè)集合
求交并差等操作,操作中 key 理解為集合的名字。
Redis 的 set 是 string 類型的無(wú)序集合。
注意:集合中不能有重復(fù)值!添加的時(shí)候會(huì)把重復(fù)的值刪除掉!

1. SADD:向集合中添加一個(gè)元素
  語(yǔ)法: `SADD key value [value2 ...]`

sadd s1 xdl
sadd s1 itxdl
sadd s1 1 2 3

  說(shuō)明:創(chuàng)建集合并添加數(shù)值

2. SMEMBERS:查看集合中所有的元素
  語(yǔ)法: `SMEMBERS key`

smembers set1


3. SRANDMEMBER:隨機(jī)返回集合中元素
  語(yǔ)法: `SRANDMEMBER key count`
  > 注意:
      count 為正數(shù),而且小于集合中的元素,返回一個(gè)隨機(jī)元素的集合數(shù)組,
      count 為正數(shù),而且大于集合中的個(gè)數(shù)的時(shí)候,返回整個(gè)集合
      count 為負(fù)數(shù),返回一個(gè)數(shù)組,數(shù)組中的成員可能出現(xiàn)重復(fù),數(shù)組的長(zhǎng)度是count的絕對(duì)值
  count 默認(rèn)為1

    ```
    srandmember set1 #隨機(jī)取出一個(gè)值
    srandmember set1 2 #隨機(jī)取出二個(gè)值
    srandmember set1 -2 #隨機(jī)取出二個(gè)值,可以重復(fù)出現(xiàn)
    ```

4. SPOP:刪除并返回集合中的隨機(jī)元素
  語(yǔ)法: `SPOP key`

spop set1

  說(shuō)明:隨機(jī)刪除一個(gè)值

5. SREM:刪除集合中一個(gè)或多個(gè)成員
  語(yǔ)法: `SREM key member [member ....]`
srem set1 xdl
  說(shuō)明:刪除指定的一個(gè)值

6. SCARD:返回集合中元素個(gè)數(shù)
  語(yǔ)法: `SCARD key`

scard set2


7. SINTER:返回集合的交集
  語(yǔ)法: `SINTER key key key ...`

sinter set2 set3
sadd set5 c
sinter set2 set3 set5


8. SINTERSTORE:將交集的結(jié)果保存到指定的集合當(dāng)中
  語(yǔ)法: `SINTERSTORE destination key key  ....`

sinterstore set7 set2 set3

  說(shuō)明:查看交集并保存到set7

9. SDIFF:返回集合的差集
  語(yǔ)法: `SDIFF key key ....`

sadd set2 a b c d
sadd set3 c d e f
sadd set4 a e
sdiff set3 set2 #求set3 與 set2 的差集,以set3為主數(shù)據(jù)
sdiff set3 set2 set4 #求set3 與 set2、set4 的差集,以set3為主數(shù)據(jù)

注意:返回的結(jié)果以第一個(gè)集合為主數(shù)據(jù)進(jìn)行匹配返回!

10. SDIFFSTORE:將差集的結(jié)果保存到指定的集合當(dāng)中
  語(yǔ)法: `SDIFFSTORE destination key key  ....`

sdiffstore set6 set2 set3

  說(shuō)明:查看差集并保存到set6

11. SUNION:返回集合中并集
  語(yǔ)法: `SUNION key key ...`

sunion set2 set3
sunion set2 set3 set4

說(shuō)明:將集合合并,如果有重復(fù)的數(shù)據(jù)只取一個(gè)

12. SUNIONSTORE:將并集的結(jié)果保存到指定的集合當(dāng)中
  語(yǔ)法: `SUNIONSTORE destination key key  ....`

sunionstore set8 set2 set3

  說(shuō)明:查看并集并保存到set8

13. SMOVE:將集合中的元素移動(dòng)另一個(gè)集合中
  語(yǔ)法: `SMOVE source destination member`
smove s1 s2 5
  說(shuō)明:移動(dòng)s1里的5到s2中

14. SISMEMBER:檢查member是否是集合中的成員
  語(yǔ)法: `SISMEMBER key member`
  ```
SISMEMBER set1 xdl

注意:在返回1;不在返回0;

  1. zset(有序集合)

    1. ZADD:將元素及其分?jǐn)?shù)添加到集合中
      語(yǔ)法:ZADD key score member [score member]
      說(shuō)明:zadd 鍵 分?jǐn)?shù) 值 分?jǐn)?shù) 值
ZADD zset 100 xdl
ZADD zset 98 zhangsan 98 list 80 test 78 test1 85 test2
ZADD zset  60 test2 67 test3 56 test4

注意:創(chuàng)建有序集合并添加元素。如果值重復(fù),則覆蓋,如果不重復(fù),則添加

2. ZRANGE:按照元素分?jǐn)?shù)從小到大的順序返回指定索引start到stop之間所有元素(包含兩端)

語(yǔ)法:ZRANGE key start stop [WITHSCORES]

ZRANGE zset 0 -1
ZRANGE zset  0 -1 WITHSCORES
ZRANGE zset  0 2 WITHSCORES
ZRANGE zset   0 2000 WITHSCORES
ZRANGE zset   1000 2000 WITHSCORES
ZADD zset   60 test6 60 test7 60 test8 60 test9

注意:當(dāng)兩個(gè)元素的分?jǐn)?shù)相同的時(shí)候,Redis在排序按照字典的順序(0<9<A<Z<a<z),如果使用的是UTF-8的編碼方式的中文同樣按照字典順序排列

3. ZREVRANGE:和ZRANGE相反,按照分?jǐn)?shù)從大到小的順序

語(yǔ)法:ZREVRANGE key start stop [WITHSCORES]

ZREVRANGE zset   0 -1 WITHSCORES
4. ZRANGEBYSCORE:獲得指定分?jǐn)?shù)范圍內(nèi)的元素,按照分?jǐn)?shù)從小到大的順序,返回的是分?jǐn)?shù)在指定的min到max的元素

語(yǔ)法:ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count]

#獲得分?jǐn)?shù)80~90之間的所有元素 包含80 90
ZRANGEBYSCORE zset   80 90
ZADD zset  81 test9 82 test10 83 test11 84 test12 84 test13 88 test14 89 test15 90 test16
ZRANGEBYSCORE zset  80 90 WITHSCORES
ZRANGEBYSCORE zset  80 (90 WITHSCORES
ZRANGEBYSCORE zset  (80 (90 WITHSCORES
RANGEBYSCORE zset  (80 (90 WITHSCORES  LIMIT 0 3

注意:通過(guò)(代表不包端點(diǎn)

5. ZREM:刪除一個(gè)或者多個(gè)元素,返回刪除元素的個(gè)數(shù)

語(yǔ)法:ZREM key member ...

ZREM zset   test16
6. ZINCRBY:操作某個(gè)元素的分?jǐn)?shù),返回操作之后的分?jǐn)?shù)

語(yǔ)法:ZINCRBY key increment member

ZINCRBY zset  5 test16
ZINCRBY zset   -15 test16
說(shuō)明:添加元素,如果不存在,添加成功,如果存在,添加不成功

7. ZRANK:獲得指定元素的排名,根據(jù)分?jǐn)?shù)從小到大的順序

語(yǔ)法:ZRANK key member

ZRANK zset xdl
ZRANGE zset    0 -1 WITHSCORES
  說(shuō)明:查看指定值的下標(biāo)。從0 開(kāi)始

8. ZSCORE:獲得指定元素的分?jǐn)?shù)

語(yǔ)法:ZSCORE key member

ZSCORE zset  xdl
ZADD zset 12.3 test5
9. ZREVRANK:獲得指定元素的排名,根據(jù)分?jǐn)?shù)從大到小的順序

語(yǔ)法:ZREVRANK key member

ZREVRANK zset xdl
ZREVRANGE zset  0 -1 WITHSCORES
zrevrank z1 lyx
說(shuō)明:查看指定元素的下標(biāo)。倒著從0開(kāi)始

10. ZREVRANGEBYSCORE :獲得指定分?jǐn)?shù)范圍內(nèi)的元素,按照元素的分?jǐn)?shù)從大到小的順序返回min和max之間的元素

語(yǔ)法:ZREVRANGEBYSCORE key max min [WITHSCORES] [LIMIT offset count]

ZREVRANGEBYSCORE zset  90 80 WITHSCORES
11. ZCARD:獲得集合中元素的數(shù)量

語(yǔ)法:ZCARD key

ZCARD zset
12. ZCONUT:獲得指定分?jǐn)?shù)內(nèi)的元素的數(shù)量

語(yǔ)法:ZCOUNT key min max

ZCOUNT zset   80 90
COUNT zset   (80 (90
13. ZREMRANGEBYRANK:按照排名范圍刪除元素,按照分?jǐn)?shù)從小到大的順序刪除所指定的排名范圍內(nèi)的所有元素

語(yǔ)法:ZREMRANGEBYRANK key start stop

ZADD testRem 1 a 2 b 3 c 4 d 5 e 6 f 7 g 8 h
ZREMRANGEBYRANK testRem 0 2
ZRANGE testRem  0 -1 WITHSCORES
說(shuō)明:根據(jù)下標(biāo)來(lái)刪除指定范圍內(nèi)的元素

14. ZREMRANGEBYSCORE:按照分?jǐn)?shù)范圍刪除元素

語(yǔ)法:ZREMRANGEBYSCORE key min max

ZADD testRem1 1 a 2 b 3 c 4 d 5 e 6 f 7 g 8 h
ZREMRANGEBYSCORE testRem1 3 7
ZRANGE testRem1   0 -1 WITHSCORES
說(shuō)明:根據(jù)分?jǐn)?shù)來(lái)刪除指定范圍內(nèi)的元素

15. ZINTERSTORE:計(jì)算有序集合的交集,并將結(jié)果保存起來(lái)

語(yǔ)法:ZINTERSTORE destination numkeys [WEIGHTS weight weight...] [AGGREGATE SUM | MIN | MAX]

ZADD zset2 1 a 2 b 3 c
ZADD zset3 10 a 20 b 30 c
ZINTERSTORE zset4 2  zset2  zset3
ZREVRANGE zset5   0 -1 WITHSCORES
ZINTERSTORE zset4 2  zset2  zset3  AGGREGATE SUM
ZINTERSTORE zset5 2  zset2  zset3  AGGREGATE MIN
ZINTERSTORE zset6 2  zset2  zset3 AGGREGATE MAX
ZINTERSTORE zset7 2  zset2  zset3  WEIGHTS 2 0.2
說(shuō)明:查看交集并保存到新的集合。zinterstore 新集合 集合數(shù)目 集合1 集合2 集合3

16. ZUNIONSTORE:計(jì)算有序集合并集,將結(jié)果保存起來(lái)

語(yǔ)法:ZUNIONSTORE destination numkeys key key ... [WEIGHTS weight weight...] [AGGREGATE SUM | MIN | MAX]

ZADD zset8 1 a 2 b 3 c
ZADD zset9 4 d 5 e 6 f 7 a
ZUNIONSTORE zset10 2   zset8 zset9
ZRANGE  zset10 0 -1 WITHSCORES
ZUNIONSTORE zset11 2 zset8 zset9 AGGREGATE SUM
ZRANGE  zset11 0 -1 WITHSCORES
ZUNIONSTORE zset12 2  zset8 zset9 AGGREGATE MIN
ZRANGE  zset12 0 -1 WITHSCORES
ZUNIONSTORE zset13 2  zset8 zset9 AGGREGATE MAX
ZRANGE  zset13 0 -1 WITHSCORES
ZUNIONSTORE zset14 2  zset8 zset9 WEIGHTS 2 2
ZRANGE  zset14 0 -1 WITHSCORES
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容