本備忘(wang)單(dan)旨(zhi)在快速理解 所涉及的主要(yao)概念,提供了(le)最常用的SQL語(yu)句(ju),供您參考(kao)。
Redis 是一個 key-value
存儲系統類似 Memcached
啟動 Redis
$ redis-server &
使用 CLI 登陸 redis
$ redis-cli
使(shi)用 Telnet 的登陸 redis
$ telnet 127.0.0.1 6379
redis> PING
PONG
redis> SET mykey "Hello world"
OK
redis> GET mykey
"Hello world"
Redis 支持以上(shang) 5 種數據(ju)類型
COMMAND
redis> COMMAND
1) 1) "georadius_ro"
2) (integer) -6
3) 1) "readonly"
2) "movablekeys"
4) (integer) 1
5) (integer) 1
6) (integer) 1
7) 1) "@read"
2) "@geo"
3) "@slow"
2) 1) "zpopmin"
2) (integer) -2
3) 1) "write"
2) "fast"
........
獲取 Redis 命令(ling)詳細信息的數組
:- | -- |
---|---|
從配置的 ACL 文件重新加載 ACL | |
將當前的 ACL 規則保存在配置的 ACL 文件中 | |
以 ACL 配置文件格式列出當前的 ACL 規則 | |
列出所有配置的ACL規則的用戶名 | |
獲取特定 ACL 用戶的規則 | |
修改或創建特定 ACL 用戶的規則 | |
刪除指定的 ACL 用戶和關聯的規則 | |
列出 ACL 類別或類別內的命令 | |
生成用于 ACL 用戶的偽隨機安全密碼 | |
返回關聯到當前連接的用戶的名稱 | |
列出由于 ACL 到位而被拒絕的最新事件 | |
顯示有關ACL訪問控制的幫助信息 | |
異步重寫 append-only 文件 | |
將數據集異步保存到磁盤 | |
獲取配置參數的值 | |
用內存中的配置重寫配置文件 | |
將配置參數設置為給定值 | |
重置 INFO 返回的統計數據 | |
返回所選數據庫中的鍵數 | |
獲取某個key的調試信息 | |
使服務器崩潰 | |
從所有數據庫中刪除所有密鑰 | |
從當前數據庫中刪除所有鍵 | |
顯示一些計算機信息和 Redis 版本 | |
獲取上次成功保存到磁盤的 UNIX 時間戳 | |
輸出內存問題報告 | |
顯示有關內存的使用幫助 | |
顯示分配器內部統計 | |
要求分配器釋放內存 | |
顯示內存使用詳情(該死,運維的我經常用到) | |
估計一個鍵的內存使用 | |
列出服務器加載的所有模塊 | |
加載模塊 | |
卸載模塊 | |
實時監聽服務器收到的所有請求 | |
將數據集同步保存到磁盤 | |
將數據集同步保存到磁盤,然后關閉服務器 | |
使服務器成為另一個實例的副本,或將其提升為主服務器 (從Redis 5開始 REPLICAOF 了) | |
使服務器成為另一個實例的副本,或將其提升為主服務器 | |
管理 Redis 慢查詢日志 | |
交換兩個Redis數據庫 | |
用于復制的內部命令(主) | |
用于復制的內部命令(備) | |
返回人類可讀的延遲分析報告 | |
返回事件的延遲圖 | |
返回事件的時間戳延遲樣本 | |
返回所有事件的最新延遲樣本 | |
重置一個或多個事件的延遲數據 | |
顯示有關不同子命令的有用文本 |
COMMAND COUNT
redis> COMMAND COUNT
(integer) 217
獲(huo)取 Redis 命令總數
COMMAND GETKEYS
redis> COMMAND GETKEYS MSET a b c d e f
1) "a"
2) "c"
3) "e"
redis> COMMAND GETKEYS EVAL "not consulted" 3 key1 key2 key3 arg1 arg2 arg3 argN
1) "key1"
2) "key2"
3) "key3"
redis> COMMAND GETKEYS SORT mylist ALPHA STORE outlist
1) "mylist"
2) "outlist"
給定完整(zheng)的 Redis 命令提取密鑰
COMMAND INFO command-name [command-name ...]
redis> COMMAND INFO get set eval
1) 1) "get"
2) (integer) 2
3) 1) "readonly"
2) "fast"
4) (integer) 1
5) (integer) 1
6) (integer) 1
7) 1) "@read"
2) "@string"
3) "@fast"
2) 1) "set"
2) (integer) -3
3) 1) "write"
2) "denyoom"
4) (integer) 1
5) (integer) 1
6) (integer) 1
7) 1) "@write"
2) "@string"
3) "@slow"
3) 1) "eval"
2) (integer) -3
3) 1) "noscript"
2) "movablekeys"
4) (integer) 0
5) (integer) 0
6) (integer) 0
7) 1) "@slow"
2) "@scripting"
獲(huo)取特定 Redis 命令(ling)詳細(xi)信息的數(shu)組
INFO [section]
redis> INFO
# Server
redis_version:6.1.240
redis_git_sha1:00000000
redis_git_dirty:0
redis_build_id:a26db646ea64a07c
redis_mode:standalone
os:Linux 5.4.0-1017-aws x86_64
......
獲取有關服務(wu)器(qi)的(de)信(xin)息(xi)和統計信(xin)息(xi)
ROLE
redis> ROLE
1) "master"
2) (integer) 0
3) (empty list or set)
返回實(shi)例在復(fu)制上下文中的(de)角(jiao)色
TIME
redis> TIME
1) "1609040690"
2) "558952"
redis> TIME
1) "1609040690"
2) "559206"
返回當前服務器時間
:- | -- |
---|---|
復制鍵值對 | |
以原子方式將鍵值對從 Redis 實例傳輸到另一個實例 | |
將鍵值對移動到另一個數據庫 | |
檢查 Redis 對象的內部結構 | |
使用提供的序列化值創建鍵值對,之前使用 DUMP 獲得 | |
對列表、集合或有序集合中的元素進行排序 | |
等待在當前連接的上下文中發送的所有寫命令的同步復制 | |
增量迭代鍵空間 |
DEL key [key ...]
redis> SET key1 "Hello"
"OK"
redis> SET key2 "World"
"OK"
redis> DEL key1 key2 key3
(integer) 2
刪除鍵值對
DUMP key
redis> SET mykey 10
"OK"
redis> DUMP mykey
"\u0000\xC0\n\t\u0000\xBEm\u0006\x89Z(\u0000\n"
返回存儲(chu)在指定鍵(jian)中(zhong)的值的序(xu)列(lie)化版(ban)本
EXISTS key [key ...]
redis> SET key1 "Hello"
"OK"
redis> EXISTS key1
(integer) 1
redis> EXISTS nosuchkey
(integer) 0
redis> SET key2 "World"
"OK"
redis> EXISTS key1 key2 nosuchkey
(integer) 2
判斷鍵值對是否存在
EXPIRE key seconds
redis> SET mykey "Hello"
"OK"
redis> EXPIRE mykey 10
(integer) 1
redis> TTL mykey
(integer) 10
redis> SET mykey "Hello World"
"OK"
redis> TTL mykey
(integer) -1
設置鍵值對的(de)生存(cun)時間(以秒為(wei)單(dan)位)
EXPIREAT key timestamp
redis> SET mykey "Hello"
"OK"
redis> EXISTS mykey
(integer) 1
redis> EXPIREAT mykey 1293840000
(integer) 1
redis> EXISTS mykey
(integer) 0
將(jiang)鍵(jian)值對(dui)的到期時間(jian)設置為 UNIX 時間(jian)戳(chuo)
KEYS pattern
redis> MSET firstname Jack lastname Stuntman age 35
"OK"
redis> KEYS *name*
1) "firstname"
2) "lastname"
redis> KEYS a??
1) "age"
redis> KEYS *
1) "firstname"
2) "age"
3) "lastname"
查找(zhao)與給定模式匹配的(de)所有(you)鍵
PERSIST key
redis> SET mykey "Hello"
"OK"
redis> EXPIRE mykey 10
(integer) 1
redis> TTL mykey
(integer) 10
redis> PERSIST mykey
(integer) 1
redis> TTL mykey
(integer) -1
從鍵值對中(zhong)刪除過期時間
PEXPIRE key milliseconds
redis> SET mykey "Hello"
"OK"
redis> PEXPIRE mykey 1500
(integer) 1
redis> TTL mykey
(integer) 1
redis> PTTL mykey
(integer) 1499
設置鍵的生存(cun)時間(以(yi)毫(hao)秒為單位)
PEXPIREAT key milliseconds-timestamp
redis> SET mykey "Hello"
"OK"
redis> PEXPIREAT mykey 1555555555005
(integer) 1
redis> TTL mykey
(integer) -2
redis> PTTL mykey
(integer) -2
將鍵值對的到期時(shi)間設置為以毫秒為單(dan)位指定的 UNIX 時(shi)間戳
PTTL key
redis> SET mykey "Hello"
"OK"
redis> EXPIRE mykey 1
(integer) 1
redis> PTTL mykey
(integer) 1000
以(yi)毫秒為單位(wei)獲取鍵值對的生存時間
RENAME key newkey
redis> SET mykey "Hello"
"OK"
redis> RENAME mykey myotherkey
"OK"
redis> GET myotherkey
"Hello"
重命名鍵值對
RENAMENX key newkey
redis> SET mykey "Hello"
"OK"
redis> SET myotherkey "World"
"OK"
redis> RENAMENX mykey myotherkey
(integer) 0
redis> GET myotherkey
"World"
重命名鍵值(zhi)對,僅(jin)當新(xin)鍵值(zhi)對不(bu)存在時(shi)
TOUCH key [key ...]
redis> SET key1 "Hello"
"OK"
redis> SET key2 "World"
"OK"
redis> TOUCH key1 key2
(integer) 2
更改(gai)鍵(jian)值對的(de)(de)最后(hou)訪問(wen)時間。返(fan)回指定的(de)(de)現有鍵(jian)的(de)(de)數量
TTL key
redis> SET mykey "Hello"
"OK"
redis> EXPIRE mykey 10
(integer) 1
redis> TTL mykey
(integer) 10
獲(huo)得(de)一(yi)個鍵的(de)(de)值(zhi)的(de)(de)時間(有點繞口,但意思是對的(de)(de))
TYPE key
redis> SET key1 "value"
"OK"
redis> LPUSH key2 "value"
(integer) 1
redis> SADD key3 "value"
(integer) 1
redis> TYPE key1
"string"
redis> TYPE key2
"list"
redis> TYPE key3
"set"
確定存儲在鍵中的類型
UNLINK key [key ...]
redis> SET key1 "Hello"
"OK"
redis> SET key2 "World"
"OK"
redis> UNLINK key1 key2 key3
(integer) 2
在另一(yi)個(ge)線程(cheng)中異(yi)步刪除(chu)一(yi)個(ge)鍵。否則它就(jiu)像 DEL,但(dan)不是阻塞的(de)
:- | -- |
---|---|
向服務器進行身份驗證 | |
指示服務器在下一個請求中是否跟蹤鍵 | |
終止客戶端的連接 | |
獲取客戶端連接列表 | |
獲取當前連接名稱 | |
獲取跟蹤通知重定向客戶端 ID(如果有) | |
停止處理來自客戶端的命令一段時間 | |
指示服務器是否回復命令 | |
設置當前連接名稱 | |
啟用或禁用服務器輔助客戶端緩存支持 | |
取消阻止來自不同連接的阻塞命令中阻塞的客戶端 | |
切換Redis協議 | |
關閉連接 | |
重置連接 | |
更改為當前連接選擇的數據庫 |
CLIENT ID
redis> CLIENT ID
ERR Unknown or disabled command 'CLIENT'
返回當前連接的客戶(hu)端 ID
CLIENT INFO
redis> CLIENT INFO
"id=55542 addr=127.0.0.1:58710 laddr=127.0.0.1:6379 fd=8 name= age=114920 idle=0 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=26 qbuf-free=40928 argv-mem=10 obl=0 oll=0 omem=0 tot-mem=61466 events=r cmd=client user=default redir=-1\n"
返回有關當前客戶端(duan)連接的(de)信息(xi)。
ECHO message
redis> ECHO "Hello World!"
"Hello World!"
回顯給定的字符串
PING [message]
redis> PING
"PONG"
redis> PING "hello world"
"hello world"
ping 服務器
APPEND key value
redis> EXISTS mykey
(integer) 0
redis> APPEND mykey "Hello"
(integer) 5
redis> APPEND mykey " World"
(integer) 11
redis> GET mykey
"Hello World"
將(jiang)值附加到鍵,可以(yi)理(li)解為追加作用
BITCOUNT key [start end]
redis> SET mykey "foobar"
"OK"
redis> BITCOUNT mykey
(integer) 26
redis> BITCOUNT mykey 0 0
(integer) 4
redis> BITCOUNT mykey 1 1
(integer) 6
計算字符串中的集合位
BITFIELD key [GET type offset] [SET type offset value]
[INCRBY type offset increment] [OVERFLOW WRAP|SAT|FAIL]
redis> BITFIELD mykey INCRBY i5 100 1 GET u4 0
1) (integer) 1
2) (integer) 0
對(dui)字符(fu)串執行任意位域整(zheng)數運(yun)算
BITOP operation destkey key [key ...]
redis> SET key1 "foobar"
"OK"
redis> SET key2 "abcdef"
"OK"
redis> BITOP AND dest key1 key2
(integer) 6
redis> GET dest
"`bc`ab"
在(zai)字(zi)符串之間執(zhi)行(xing)按位(wei)運算
BITPOS key bit [start] [end]
redis> SET mykey "\xff\xf0\x00"
"OK"
redis> BITPOS mykey 0
(integer) 12
redis> SET mykey "\x00\xff\xf0"
"OK"
redis> BITPOS mykey 1 0
(integer) 8
redis> BITPOS mykey 1 2
(integer) 16
redis> set mykey "\x00\x00\x00"
"OK"
redis> BITPOS mykey 1
(integer) -1
查找字符串中設置或清除的第一位
DECR key
redis> SET mykey "10"
"OK"
redis> DECR mykey
(integer) 9
redis> SET mykey "234293482390480948029348230948"
"OK"
redis> DECR mykey
ERR ERR value is not an integer or out of range
將鍵的整數值減一
DECRBY key decrement
redis> SET mykey "10"
"OK"
redis> DECRBY mykey 3
(integer) 7
將鍵的整數值(zhi)減去(qu)給定的數字
GET key
redis> GET nonexisting
(nil)
redis> SET mykey "Hello"
"OK"
redis> GET mykey
"Hello"
獲取key的值
GETBIT key offset
redis> SETBIT mykey 7 1
(integer) 0
redis> GETBIT mykey 0
(integer) 0
redis> GETBIT mykey 7
(integer) 1
redis> GETBIT mykey 100
(integer) 0
返回存儲在 key
處的字符串值中 offset
處的位值
GETRANGE key start end
redis> SET mykey "This is a string"
"OK"
redis> GETRANGE mykey 0 3
"This"
redis> GETRANGE mykey -3 -1
"ing"
redis> GETRANGE mykey 0 -1
"This is a string"
redis> GETRANGE mykey 10 100
"string"
獲取存儲在鍵中的字符(fu)串的子(zi)字符(fu)串
GETSET key value
redis> INCR mycounter
(integer) 1
redis> GETSET mycounter "0"
"1"
redis> GET mycounter
"0"
設置(zhi)鍵的字符串值并返回(hui)其舊(jiu)值
INCR key
redis> SET mykey "10"
"OK"
redis> INCR mykey
(integer) 11
redis> GET mykey
"11"
將鍵的整數值加一
MSETNX key value [key value ...]
redis> MSETNX key1 "Hello" key2 "there"
(integer) 1
redis> MSETNX key2 "new" key3 "world"
(integer) 0
redis> MGET key1 key2 key3
1) "Hello"
2) "there"
3) (nil)
僅當不(bu)存在任何鍵時,將多個鍵設置為多個值
INCRBYFLOAT key increment
redis> SET mykey 10.50
"OK"
redis> INCRBYFLOAT mykey 0.1
"10.6"
redis> INCRBYFLOAT mykey -5
"5.6"
redis> SET mykey 5.0e3
"OK"
redis> INCRBYFLOAT mykey 2.0e2
"5200"
將鍵的(de)(de)浮點值增加給定的(de)(de)數量
MGET key [key ...]
redis> SET key1 "Hello"
"OK"
redis> SET key2 "World"
"OK"
redis> MGET key1 key2 nonexisting
1) "Hello"
2) "World"
3) (nil)
獲取所有給定鍵的值
MSET key value [key value ...]
redis> MSET key1 "Hello" key2 "World"
"OK"
redis> GET key1
"Hello"
redis> GET key2
"World"
將多(duo)(duo)個(ge)(ge)鍵設(she)置為多(duo)(duo)個(ge)(ge)值
INCRBY key increment
redis> SET mykey "10"
"OK"
redis> INCRBY mykey 5
(integer) 15
將鍵的整數值增(zeng)加(jia)給定的數量
PSETEX key milliseconds value
redis> PSETEX mykey 1000 "Hello"
"OK"
redis> PTTL mykey
(integer) 1000
redis> GET mykey
"Hello"
設置鍵的值和(he)過期時間(jian)(以毫(hao)秒(miao)為單(dan)位)
SET key value [EX seconds|PX milliseconds|KEEPTTL] [NX|XX]
[GET]
redis> SET mykey "Hello"
"OK"
redis> GET mykey
"Hello"
redis> SET anotherkey "will expire in a minute" EX 60
"OK"
設置鍵的(de)字(zi)符串(chuan)值,可以理解為創建、設置、重設的(de)作用
SETBIT key offset value
redis> SETBIT mykey 7 1
(integer) 0
redis> SETBIT mykey 7 0
(integer) 1
redis> GET mykey
"\u0000"
設置(zhi)或清除存儲在鍵中的(de)字符串值中偏移(yi)量(liang)處的(de)位
SETEX key seconds value
redis> SETEX mykey 10 "Hello"
"OK"
redis> TTL mykey
(integer) 10
redis> GET mykey
"Hello"
設(she)置(zhi)密鑰的值和(he)過期時間
SETNX key value
redis> SETNX mykey "Hello"
(integer) 1
redis> SETNX mykey "World"
(integer) 0
redis> GET mykey
"Hello"
設置(zhi)鍵的值,僅當鍵不存在時(shi)
SETRANGE key offset value
redis> SET key1 "Hello World"
"OK"
redis> SETRANGE key1 6 "Redis"
(integer) 11
redis> GET key1
"Hello Redis"
覆蓋從指定偏移量開始的(de)鍵處的(de)字符(fu)串的(de)一部分
STRLEN key
redis> SET mykey "Hello world"
"OK"
redis> STRLEN mykey
(integer) 11
redis> STRLEN nonexisting
(integer) 0
獲取存儲在鍵中的值(zhi)的長度
STRALGO LCS algo-specific-argument [algo-specific-argument
...]
redis> STRALGO LCS KEYS key1 key2 IDX
1) "matches"
2) 1) 1) 1) (integer) 4
2) (integer) 7
2) 1) (integer) 5
2) (integer) 8
2) 1) 1) (integer) 2
2) (integer) 3
2) 1) (integer) 0
2) (integer) 1
3) "len"
4) (integer) 6
針對字(zi)符串運(yun)行算法(目前為 LCS)
SADD key member [member ...]
redis> SADD myset "Hello"
(integer) 1
redis> SADD myset "World"
(integer) 1
redis> SADD myset "World"
(integer) 0
redis> SMEMBERS myset
1) "Hello"
2) "World"
將一個(ge)或多(duo)個(ge)成員添加到集合
SCARD key
redis> SADD myset "Hello"
(integer) 1
redis> SADD myset "World"
(integer) 1
redis> SCARD myset
(integer) 2
獲取集合中的成員數
SDIFF key [key ...]
redis> SADD key1 "a"
(integer) 1
redis> SADD key1 "b"
(integer) 1
redis> SADD key1 "c"
(integer) 1
redis> SADD key2 "c"
(integer) 1
redis> SADD key2 "d"
(integer) 1
redis> SADD key2 "e"
(integer) 1
redis> SDIFF key1 key2
1) "a"
2) "b"
減去多組
SDIFFSTORE destination key [key ...]
redis> SADD key1 "a"
(integer) 1
redis> SADD key1 "b"
(integer) 1
redis> SADD key1 "c"
(integer) 1
redis> SADD key2 "c"
(integer) 1
redis> SADD key2 "d"
(integer) 1
redis> SADD key2 "e"
(integer) 1
redis> SDIFFSTORE key key1 key2
(integer) 2
redis> SMEMBERS key
1) "a"
2) "b"
減去多個集合并將結果集合存儲在一個鍵中
SINTER key [key ...]
redis> SADD key1 "a"
(integer) 1
redis> SADD key1 "b"
(integer) 1
redis> SADD key1 "c"
(integer) 1
redis> SADD key2 "c"
(integer) 1
redis> SADD key2 "d"
(integer) 1
redis> SADD key2 "e"
(integer) 1
redis> SINTER key1 key2
1) "c"
交叉多個集合
SINTERSTORE destination key [key ...]
redis> SADD key1 "a"
(integer) 1
redis> SADD key1 "b"
(integer) 1
redis> SADD key1 "c"
(integer) 1
redis> SADD key2 "c"
(integer) 1
redis> SADD key2 "d"
(integer) 1
redis> SADD key2 "e"
(integer) 1
redis> SINTERSTORE key key1 key2
(integer) 1
redis> SMEMBERS key
1) "c"
將多個集合相交并(bing)將結果(guo)集合存儲在(zai)一個鍵中
SISMEMBER key member
redis> SADD myset "one"
(integer) 1
redis> SISMEMBER myset "one"
(integer) 1
redis> SISMEMBER myset "two"
(integer) 0
確定給定值是(shi)否是(shi)集(ji)合的成員
SMISMEMBER key member [member ...]
redis> SADD myset "one"
(integer) 1
redis> SADD myset "one"
(integer) 0
redis> SMISMEMBER myset "one" "notamember"
1) (integer) 1
2) (integer) 0
返回與集合的給定元(yuan)素關聯的成員資格
SMEMBERS key
redis> SADD myset "Hello"
(integer) 1
redis> SADD myset "World"
(integer) 1
redis> SMEMBERS myset
1) "Hello"
2) "World"
獲取集合中的所有成員
SMOVE source destination member
redis> SADD myset "one"
(integer) 1
redis> SADD myset "two"
(integer) 1
redis> SADD myotherset "three"
(integer) 1
redis> SMOVE myset myotherset "two"
(integer) 1
redis> SMEMBERS myset
1) "one"
redis> SMEMBERS myotherset
1) "two"
2) "three"
將(jiang)成員從一組(zu)移(yi)到另(ling)一組(zu)
SPOP key [count]
redis> SADD myset "one"
(integer) 1
redis> SADD myset "two"
(integer) 1
redis> SADD myset "three"
(integer) 1
redis> SPOP myset
"two"
redis> SMEMBERS myset
1) "one"
2) "three"
redis> SADD myset "four"
(integer) 1
redis> SADD myset "five"
(integer) 1
redis> SPOP myset 3
1) "four"
2) "five"
3) "three"
redis> SMEMBERS myset
1) "one"
從集(ji)合中刪除并返回一個或多個隨機(ji)成員
SRANDMEMBER key [count]
redis> SADD myset one two three
(integer) 3
redis> SRANDMEMBER myset
"three"
redis> SRANDMEMBER myset 2
1) "two"
2) "three"
redis> SRANDMEMBER myset -5
1) "one"
2) "two"
3) "three"
4) "three"
5) "one"
從(cong)一(yi)組中獲取(qu)一(yi)個(ge)或(huo)多個(ge)隨機(ji)成員(yuan)
SREM key member [member ...]
redis> SADD myset "one"
(integer) 1
redis> SADD myset "two"
(integer) 1
redis> SADD myset "three"
(integer) 1
redis> SREM myset "one"
(integer) 1
redis> SREM myset "four"
(integer) 0
redis> SMEMBERS myset
1) "two"
2) "three"
從集合中刪除一個或(huo)多個成員
SUNION key [key ...]
redis> SADD key1 "a"
(integer) 1
redis> SADD key1 "b"
(integer) 1
redis> SADD key1 "c"
(integer) 1
redis> SADD key2 "c"
(integer) 1
redis> SADD key2 "d"
(integer) 1
redis> SADD key2 "e"
(integer) 1
redis> SUNION key1 key2
1) "a"
2) "c"
3) "e"
4) "b"
5) "d"
添加多組
SUNIONSTORE destination key [key ...]
redis> SADD key1 "a"
(integer) 1
redis> SADD key1 "b"
(integer) 1
redis> SADD key1 "c"
(integer) 1
redis> SADD key2 "c"
(integer) 1
redis> SADD key2 "d"
(integer) 1
redis> SADD key2 "e"
(integer) 1
redis> SUNIONSTORE key key1 key2
(integer) 5
redis> SMEMBERS key
1) "a"
2) "c"
3) "e"
4) "b"
5) "d"
添加多個(ge)集合并將結果集合存儲在一(yi)個(ge)鍵中
:- | -- |
---|---|
從列表中彈出一個元素,將其推入另一個列表并返回;或阻塞直到有一個可用 | |
從列表中彈出一個元素,將其推入另一個列表并返回;或阻塞直到有一個可用 |
BLPOP key [key ...] timeout
redis> DEL list1 list2
(integer) 0
redis> RPUSH list1 a b c
(integer) 3
redis> BLPOP list1 list2 0
1) "list1"
2) "a"
刪除并獲取(qu)列表中的(de)第一個(ge)元素(su),或者阻塞直到(dao)有一個(ge)元素(su)可用
BRPOP key [key ...] timeout
redis> DEL list1 list2
(integer) 0
redis> RPUSH list1 a b c
(integer) 3
redis> BRPOP list1 list2 0
1) "list1"
2) "c"
刪(shan)除并獲取列(lie)表中的(de)最(zui)后一個(ge)元素,或者阻塞直到有一個(ge)可用
LINDEX key index
redis> LPUSH mylist "World"
(integer) 1
redis> LPUSH mylist "Hello"
(integer) 2
redis> LINDEX mylist 0
"Hello"
redis> LINDEX mylist -1
"World"
redis> LINDEX mylist 3
(nil)
通過(guo)索引從列表中獲取元素
LINSERT key BEFORE|AFTER pivot element
redis> RPUSH mylist "Hello"
(integer) 1
redis> RPUSH mylist "World"
(integer) 2
redis> LINSERT mylist BEFORE "World" "There"
(integer) 3
redis> LRANGE mylist 0 -1
1) "Hello"
2) "There"
3) "World"
在列表(biao)中的另一個(ge)元(yuan)素之前或(huo)之后插入一個(ge)元(yuan)素
LLEN key
redis> LPUSH mylist "World"
(integer) 1
redis> LPUSH mylist "Hello"
(integer) 2
redis> LLEN mylist
(integer) 2
獲取列表的長度
LPOP key [count]
redis> RPUSH mylist "one"
(integer) 1
redis> RPUSH mylist "two"
(integer) 2
redis> RPUSH mylist "three"
(integer) 3
redis> LPOP mylist
"one"
redis> LRANGE mylist 0 -1
1) "two"
2) "three"
刪(shan)除(chu)并獲取(qu)列表中的(de)第一個元素
LPOS key element [RANK rank] [COUNT num-matches] [MAXLEN len]
redis> RPUSH mylist a b c d 1 2 3 4 3 3 3
(integer) 11
redis> LPOS mylist 3
(integer) 6
redis> LPOS mylist 3 COUNT 0 RANK 2
1) (integer) 8
2) (integer) 9
3) (integer) 10
返(fan)回(hui)列表中匹(pi)配元素的索引
LPUSH key element [element ...]
redis> LPUSH mylist "world"
(integer) 1
redis> LPUSH mylist "hello"
(integer) 2
redis> LRANGE mylist 0 -1
1) "hello"
2) "world"
將(jiang)一個或(huo)多個元素(su)添加到列表(biao)中
LPUSHX key element [element ...]
redis> LPUSH mylist "World"
(integer) 1
redis> LPUSHX mylist "Hello"
(integer) 2
redis> LPUSHX myotherlist "Hello"
(integer) 0
redis> LRANGE mylist 0 -1
1) "Hello"
2) "World"
redis> LRANGE myotherlist 0 -1
(empty list or set)
僅當列(lie)(lie)表存在(zai)時才將(jiang)元素(su)添加到列(lie)(lie)表中
LRANGE key start stop
redis> RPUSH mylist "one"
(integer) 1
redis> RPUSH mylist "two"
(integer) 2
redis> RPUSH mylist "three"
(integer) 3
redis> LRANGE mylist 0 0
1) "one"
redis> LRANGE mylist -3 2
1) "one"
2) "two"
3) "three"
redis> LRANGE mylist -100 100
1) "one"
2) "two"
3) "three"
redis> LRANGE mylist 5 10
(empty list or set)
從列(lie)表中獲取一(yi)系列(lie)元素(su)
LREM key count element
redis> RPUSH mylist "hello"
(integer) 1
redis> RPUSH mylist "hello"
(integer) 2
redis> RPUSH mylist "foo"
(integer) 3
redis> RPUSH mylist "hello"
(integer) 4
redis> LREM mylist -2 "hello"
(integer) 2
redis> LRANGE mylist 0 -1
1) "hello"
2) "foo"
從列表中刪除元素
LSET key index element
redis> RPUSH mylist "one"
(integer) 1
redis> RPUSH mylist "two"
(integer) 2
redis> RPUSH mylist "three"
(integer) 3
redis> LSET mylist 0 "four"
"OK"
redis> LSET mylist -2 "five"
"OK"
redis> LRANGE mylist 0 -1
1) "four"
2) "five"
3) "three"
通過索引(yin)設置列表中元素(su)的值
LTRIM key start stop
redis> RPUSH mylist "one"
(integer) 1
redis> RPUSH mylist "two"
(integer) 2
redis> RPUSH mylist "three"
(integer) 3
redis> LTRIM mylist 1 -1
"OK"
redis> LRANGE mylist 0 -1
1) "two"
2) "three"
將列表(biao)修剪到指定范圍
RPOP key [count]
redis> RPUSH mylist "one"
(integer) 1
redis> RPUSH mylist "two"
(integer) 2
redis> RPUSH mylist "three"
(integer) 3
redis> RPOP mylist
"three"
redis> LRANGE mylist 0 -1
1) "one"
2) "two"
刪(shan)除并獲取列表(biao)中的最后一個(ge)元素
RPOPLPUSH source destination
redis> RPUSH mylist "one"
(integer) 1
redis> RPUSH mylist "two"
(integer) 2
redis> RPUSH mylist "three"
(integer) 3
redis> RPOPLPUSH mylist myotherlist
"three"
redis> LRANGE mylist 0 -1
1) "one"
2) "two"
redis> LRANGE myotherlist 0 -1
1) "three"
刪(shan)除列表(biao)中的最后一(yi)個元素,將其添加到另一(yi)個列表(biao)中并(bing)返回
LMOVE source destination LEFT|RIGHT LEFT|RIGHT
redis> RPUSH mylist "one"
(integer) 1
redis> RPUSH mylist "two"
(integer) 2
redis> RPUSH mylist "three"
(integer) 3
redis> LMOVE mylist myotherlist RIGHT LEFT
"three"
redis> LMOVE mylist myotherlist LEFT RIGHT
"one"
redis> LRANGE mylist 0 -1
1) "two"
redis> LRANGE myotherlist 0 -1
1) "three"
2) "one"
從列表中(zhong)彈出一個元素,將其推入(ru)另一個列表并返(fan)回
RPUSH key element [element ...]
redis> RPUSH mylist "hello"
(integer) 1
redis> RPUSH mylist "world"
(integer) 2
redis> LRANGE mylist 0 -1
1) "hello"
2) "world"
將一(yi)個或多個元素附加到(dao)列表
RPUSHX key element [element ...]
redis> RPUSH mylist "Hello"
(integer) 1
redis> RPUSHX mylist "World"
(integer) 2
redis> RPUSHX myotherlist "World"
(integer) 0
redis> LRANGE mylist 0 -1
1) "Hello"
2) "World"
redis> LRANGE myotherlist 0 -1
(empty list or set)
僅當列(lie)表(biao)存在時(shi)才將元素附加到列(lie)表(biao)
HDEL key field [field ...]
redis> HSET myhash field1 "foo"
(integer) 1
redis> HDEL myhash field1
(integer) 1
redis> HDEL myhash field2
(integer) 0
刪除一個或多(duo)個哈希(xi)字段
HEXISTS key field
redis> HSET myhash field1 "foo"
(integer) 1
redis> HEXISTS myhash field1
(integer) 1
redis> HEXISTS myhash field2
(integer) 0
判斷哈希(xi)字段(duan)是否(fou)存(cun)在
HGET key field
redis> HSET myhash field1 "foo"
(integer) 1
redis> HGET myhash field1
"foo"
redis> HGET myhash field2
(nil)
獲取哈希字段的值
HGETALL key
redis> HSET myhash field1 "Hello"
(integer) 1
redis> HSET myhash field2 "World"
(integer) 1
redis> HGETALL myhash
1) "field1"
2) "Hello"
3) "field2"
4) "World"
獲(huo)取哈希(xi)中的所(suo)有字段和值
HINCRBY key field increment
redis> HSET myhash field 5
(integer) 1
redis> HINCRBY myhash field 1
(integer) 6
redis> HINCRBY myhash field -1
(integer) 5
redis> HINCRBY myhash field -10
(integer) -5
將哈希字(zi)段的整數值增加給(gei)定的數字(zi)
HINCRBYFLOAT key field increment
redis> HSET mykey field 10.50
(integer) 1
redis> HINCRBYFLOAT mykey field 0.1
"10.6"
redis> HINCRBYFLOAT mykey field -5
"5.6"
redis> HSET mykey field 5.0e3
(integer) 0
redis> HINCRBYFLOAT mykey field 2.0e2
"5200"
將哈(ha)希字段的(de)浮點(dian)值增(zeng)加給(gei)定(ding)的(de)數量
HKEYS key
redis> HSET myhash field1 "Hello"
(integer) 1
redis> HSET myhash field2 "World"
(integer) 1
redis> HKEYS myhash
1) "field1"
2) "field2"
獲取哈希中(zhong)的所有字段
HLEN key
redis> HSET myhash field1 "Hello"
(integer) 1
redis> HSET myhash field2 "World"
(integer) 1
redis> HLEN myhash
(integer) 2
獲取哈希中的字段數
HMGET key field [field ...]
redis> HSET myhash field1 "Hello"
(integer) 1
redis> HSET myhash field2 "World"
(integer) 1
redis> HMGET myhash field1 field2 nofield
1) "Hello"
2) "World"
3) (nil)
獲取所有給(gei)定哈(ha)希字段的值
HMSET key field value [field value ...]
redis> HMSET myhash field1 "Hello" field2 "World"
"OK"
redis> HGET myhash field1
"Hello"
redis> HGET myhash field2
"World"
將多個哈希字段(duan)設(she)置(zhi)為多個值
HSET key field value [field value ...]
redis> HSET myhash field1 "Hello"
(integer) 1
redis> HGET myhash field1
"Hello"
設置哈希字(zi)段的字(zi)符串(chuan)值
HSETNX key field value
redis> HSETNX myhash field "Hello"
(integer) 1
redis> HSETNX myhash field "World"
(integer) 0
redis> HGET myhash field
"Hello"
設置哈希(xi)字段的值,僅當該字段不存在時
HSTRLEN key field
redis> HMSET myhash f1 HelloWorld f2 99 f3 -256
"OK"
redis> HSTRLEN myhash f1
(integer) 10
redis> HSTRLEN myhash f2
(integer) 2
redis> HSTRLEN myhash f3
(integer) 4
獲取哈希字段值的長(chang)度(du)
HVALS key
redis> HSET myhash field1 "Hello"
(integer) 1
redis> HSET myhash field2 "World"
(integer) 1
redis> HVALS myhash
1) "Hello"
2) "World"
獲取哈希中的所有值
BZPOPMIN key [key ...] timeout
redis> DEL zset1 zset2
(integer) 0
redis> ZADD zset1 0 a 1 b 2 c
(integer) 3
redis> BZPOPMIN zset1 zset2 0
1) "zset1"
2) "a"
3) "0"
從一(yi)個(ge)或(huo)多個(ge)排序集合中刪除并返回(hui)得分最低的成員,或(huo)者阻塞直到一(yi)個(ge)可用
BZPOPMAX key [key ...] timeout
redis> DEL zset1 zset2
(integer) 0
redis> ZADD zset1 0 a 1 b 2 c
(integer) 3
redis> BZPOPMAX zset1 zset2 0
1) "zset1"
2) "c"
3) "2"
從一個或(huo)多個排序集合中(zhong)刪(shan)除并返回得分最(zui)高(gao)的成員,或(huo)者阻(zu)塞直到一個可(ke)用
ZADD key [NX|XX] [GT|LT] [CH] [INCR] score member [score
member ...]
redis> ZADD myzset 1 "one"
(integer) 1
redis> ZADD myzset 1 "uno"
(integer) 1
redis> ZADD myzset 2 "two" 3 "three"
(integer) 2
redis> ZRANGE myzset 0 -1 WITHSCORES
1) "one"
2) "1"
3) "uno"
4) "1"
5) "two"
6) "2"
7) "three"
8) "3"
將一個或(huo)多個成員(yuan)添加(jia)到有序(xu)集合中,或(huo)者更新其分數(如果它已經存在)
ZCARD key
redis> ZADD myzset 1 "one"
(integer) 1
redis> ZADD myzset 2 "two"
(integer) 1
redis> ZCARD myzset
(integer) 2
獲取有(you)序集合中的(de)成員數
ZSCORE key member
redis> ZADD myzset 1 "one"
(integer) 1
redis> ZSCORE myzset "one"
"1"
獲取(qu)與排序集中給定成(cheng)員關(guan)聯的分(fen)數
ZCOUNT key min max
redis> ZADD myzset 1 "one"
(integer) 1
redis> ZADD myzset 2 "two"
(integer) 1
redis> ZADD myzset 3 "three"
(integer) 1
redis> ZCOUNT myzset -inf +inf
(integer) 3
redis> ZCOUNT myzset (1 3
(integer) 2
計算(suan)得分(fen)在給定值內的(de)排(pai)序集中的(de)成員
ZDIFF numkeys key [key ...] [WITHSCORES]
redis> ZADD zset1 1 "one"
(integer) 1
redis> ZADD zset1 2 "two"
(integer) 1
redis> ZADD zset1 3 "three"
(integer) 1
redis> ZADD zset2 1 "one"
(integer) 1
redis> ZADD zset2 2 "two"
(integer) 1
redis> ZDIFF 2 zset1 zset2
1) "three"
redis> ZDIFF 2 zset1 zset2 WITHSCORES
1) "three"
2) "3"
減去多個排序集
ZDIFFSTORE destination numkeys key [key ...]
redis> ZADD zset1 1 "one"
(integer) 1
redis> ZADD zset1 2 "two"
(integer) 1
redis> ZADD zset1 3 "three"
(integer) 1
redis> ZADD zset2 1 "one"
(integer) 1
redis> ZADD zset2 2 "two"
(integer) 1
redis> ZDIFFSTORE out 2 zset1 zset2
(integer) 1
redis> ZRANGE out 0 -1 WITHSCORES
1) "three"
2) "3"
減(jian)去多個(ge)排序集(ji)并將(jiang)生成的排序集(ji)存(cun)儲在新(xin)鍵中
ZINCRBY key increment member
redis> ZADD myzset 1 "one"
(integer) 1
redis> ZADD myzset 2 "two"
(integer) 1
redis> ZINCRBY myzset 2 "one"
"3"
redis> ZRANGE myzset 0 -1 WITHSCORES
1) "two"
2) "2"
3) "one"
4) "3"
增加排序集中成(cheng)員的(de)分數
ZINTER numkeys key [key ...] [WEIGHTS weight [weight ...]]
[AGGREGATE SUM|MIN|MAX] [WITHSCORES]
redis> ZADD zset1 1 "one"
(integer) 1
redis> ZADD zset1 2 "two"
(integer) 1
redis> ZADD zset2 1 "one"
(integer) 1
redis> ZADD zset2 2 "two"
(integer) 1
redis> ZADD zset2 3 "three"
(integer) 1
redis> ZINTER 2 zset1 zset2
1) "one"
2) "two"
redis> ZINTER 2 zset1 zset2 WITHSCORES
1) "one"
2) "2"
3) "two"
4) "4"
與多個排序集相交
ZINTERSTORE destination numkeys key [key ...] [WEIGHTS weight
[weight ...]] [AGGREGATE SUM|MIN|MAX]
redis> ZADD zset1 1 "one"
(integer) 1
redis> ZADD zset1 2 "two"
(integer) 1
redis> ZADD zset2 1 "one"
(integer) 1
redis> ZADD zset2 2 "two"
(integer) 1
redis> ZADD zset2 3 "three"
(integer) 1
redis> ZINTERSTORE out 2 zset1 zset2 WEIGHTS 2 3
(integer) 2
redis> ZRANGE out 0 -1 WITHSCORES
1) "one"
2) "5"
3) "two"
4) "10"
將(jiang)多(duo)個排序集相(xiang)交并將(jiang)生(sheng)成的排序集存儲在(zai)新鍵中(zhong)
ZLEXCOUNT key min max
redis> ZADD myzset 0 a 0 b 0 c 0 d 0 e
(integer) 5
redis> ZADD myzset 0 f 0 g
(integer) 2
redis> ZLEXCOUNT myzset - +
(integer) 7
redis> ZLEXCOUNT myzset [b [f
(integer) 5
計(ji)算(suan)給定詞(ci)典范(fan)圍之間的有序(xu)集合中的成員數
ZPOPMAX key [count]
redis> ZADD myzset 1 "one"
(integer) 1
redis> ZADD myzset 2 "two"
(integer) 1
redis> ZADD myzset 3 "three"
(integer) 1
redis> ZPOPMAX myzset
1) "three"
2) "3"
刪除(chu)并返回排序(xu)集中得分(fen)最高的成員
ZPOPMIN key [count]
redis> ZADD myzset 1 "one"
(integer) 1
redis> ZADD myzset 2 "two"
(integer) 1
redis> ZADD myzset 3 "three"
(integer) 1
redis> ZPOPMIN myzset
1) "one"
2) "1"
刪除并(bing)返回排序(xu)集中得分(fen)最低的成員(yuan)
ZRANGE key start stop [WITHSCORES]
redis> ZADD myzset 1 "one"
(integer) 1
redis> ZADD myzset 2 "two"
(integer) 1
redis> ZADD myzset 3 "three"
(integer) 1
redis> ZRANGE myzset 0 -1
1) "one"
2) "two"
3) "three"
redis> ZRANGE myzset 2 3
1) "three"
redis> ZRANGE myzset -2 -1
1) "two"
2) "three"
按索引返(fan)回排(pai)序集中的一(yi)系列成員
ZRANGEBYLEX key min max [LIMIT offset count]
redis> ZADD myzset 0 a 0 b 0 c 0 d 0 e 0 f 0 g
(integer) 7
redis> ZRANGEBYLEX myzset - [c
1) "a"
2) "b"
3) "c"
redis> ZRANGEBYLEX myzset - (c
1) "a"
2) "b"
redis> ZRANGEBYLEX myzset [aaa (g
1) "b"
2) "c"
3) "d"
4) "e"
5) "f"
按詞(ci)典(dian)順序(xu)返回排(pai)序(xu)集(ji)中的一系列成(cheng)員
ZREVRANGEBYLEX key max min [LIMIT offset count]
redis> ZADD myzset 0 a 0 b 0 c 0 d 0 e 0 f 0 g
(integer) 7
redis> ZREVRANGEBYLEX myzset [c -
1) "c"
2) "b"
3) "a"
redis> ZREVRANGEBYLEX myzset (c -
1) "b"
2) "a"
redis> ZREVRANGEBYLEX myzset (g [aaa
1) "f"
2) "e"
3) "d"
4) "c"
5) "b"
返(fan)回排(pai)序集中的一系列成員,按字典范(fan)圍,從高到低的字符串排(pai)序。
ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count]
redis> ZADD myzset 1 "one"
(integer) 1
redis> ZADD myzset 2 "two"
(integer) 1
redis> ZADD myzset 3 "three"
(integer) 1
redis> ZRANGEBYSCORE myzset -inf +inf
1) "one"
2) "two"
3) "three"
redis> ZRANGEBYSCORE myzset 1 2
1) "one"
2) "two"
redis> ZRANGEBYSCORE myzset (1 2
1) "two"
redis> ZRANGEBYSCORE myzset (1 (2
(empty list or set)
按(an)分數(shu)返回排(pai)序集(ji)中的一系列成員
ZRANK key member
redis> ZADD myzset 1 "one"
(integer) 1
redis> ZADD myzset 2 "two"
(integer) 1
redis> ZADD myzset 3 "three"
(integer) 1
redis> ZRANK myzset "three"
(integer) 2
redis> ZRANK myzset "four"
(nil)
確(que)定有序集合(he)中成員的索引(yin)
ZREM key member [member ...]
redis> ZADD myzset 1 "one"
(integer) 1
redis> ZADD myzset 2 "two"
(integer) 1
redis> ZADD myzset 3 "three"
(integer) 1
redis> ZREM myzset "two"
(integer) 1
redis> ZRANGE myzset 0 -1 WITHSCORES
1) "one"
2) "1"
3) "three"
4) "3"
從(cong)有序集(ji)合中(zhong)移(yi)除一個或多個成員
ZREMRANGEBYLEX key min max
redis> ZADD myzset 0 aaaa 0 b 0 c 0 d 0 e
(integer) 5
redis> ZADD myzset 0 foo 0 zap 0 zip 0 ALPHA 0 alpha
(integer) 5
redis> ZRANGE myzset 0 -1
1) "ALPHA"
2) "aaaa"
3) "alpha"
4) "b"
5) "c"
6) "d"
7) "e"
8) "foo"
9) "zap"
10) "zip"
redis> ZREMRANGEBYLEX myzset [alpha [omega
(integer) 6
redis> ZRANGE myzset 0 -1
1) "ALPHA"
2) "aaaa"
3) "zap"
4) "zip"
刪除(chu)給定詞典范圍之間的(de)排序集中的(de)所有成(cheng)員
ZREMRANGEBYRANK key start stop
redis> ZADD myzset 1 "one"
(integer) 1
redis> ZADD myzset 2 "two"
(integer) 1
redis> ZADD myzset 3 "three"
(integer) 1
redis> ZREMRANGEBYRANK myzset 0 1
(integer) 2
redis> ZRANGE myzset 0 -1 WITHSCORES
1) "three"
2) "3"
刪除給定索引(yin)內排序集中的(de)所(suo)有成員
ZREMRANGEBYSCORE key min max
redis> ZADD myzset 1 "one"
(integer) 1
redis> ZADD myzset 2 "two"
(integer) 1
redis> ZADD myzset 3 "three"
(integer) 1
redis> ZREMRANGEBYSCORE myzset -inf (2
(integer) 1
redis> ZRANGE myzset 0 -1 WITHSCORES
1) "two"
2) "2"
3) "three"
4) "3"
刪除給定分數內(nei)排序(xu)集中的(de)所有成員
ZREVRANGE key start stop [WITHSCORES]
redis> ZADD myzset 1 "one"
(integer) 1
redis> ZADD myzset 2 "two"
(integer) 1
redis> ZADD myzset 3 "three"
(integer) 1
redis> ZREVRANGE myzset 0 -1
1) "three"
2) "two"
3) "one"
redis> ZREVRANGE myzset 2 3
1) "one"
redis> ZREVRANGE myzset -2 -1
1) "two"
2) "one"
按索引返回排(pai)序集中的(de)一系列成員,分數從(cong)高到低排(pai)序
ZREVRANGEBYSCORE key max min [WITHSCORES] [LIMIT offset count]
redis> ZADD myzset 1 "one"
(integer) 1
redis> ZADD myzset 2 "two"
(integer) 1
redis> ZADD myzset 3 "three"
(integer) 1
redis> ZREVRANGEBYSCORE myzset +inf -inf
1) "three"
2) "two"
3) "one"
redis> ZREVRANGEBYSCORE myzset 2 1
1) "two"
2) "one"
redis> ZREVRANGEBYSCORE myzset 2 (1
1) "two"
redis> ZREVRANGEBYSCORE myzset (2 (1
(empty list or set)
按分數(shu)返回排序集(ji)中的(de)一系列成員,分數(shu)從高(gao)到低排序
ZREVRANK key member
redis> ZADD myzset 1 "one"
(integer) 1
redis> ZADD myzset 2 "two"
(integer) 1
redis> ZADD myzset 3 "three"
(integer) 1
redis> ZREVRANK myzset "one"
(integer) 2
redis> ZREVRANK myzset "four"
(nil)
確定(ding)一個成(cheng)員在有(you)序集(ji)合中的索(suo)引(yin),分數從高(gao)到低排序
ZUNION numkeys key [key ...] [WEIGHTS weight [weight ...]]
[AGGREGATE SUM|MIN|MAX] [WITHSCORES]
redis> ZADD zset1 1 "one"
(integer) 1
redis> ZADD zset1 2 "two"
(integer) 1
redis> ZADD zset2 1 "one"
(integer) 1
redis> ZADD zset2 2 "two"
(integer) 1
redis> ZADD zset2 3 "three"
(integer) 1
redis> ZUNION 2 zset1 zset2
1) "one"
2) "three"
3) "two"
redis> ZUNION 2 zset1 zset2 WITHSCORES
1) "one"
2) "2"
3) "three"
4) "3"
5) "two"
6) "4"
添加多個排序集
ZMSCORE key member [member ...]
redis> ZADD myzset 1 "one"
(integer) 1
redis> ZADD myzset 2 "two"
(integer) 1
redis> ZMSCORE myzset "one" "two" "nofield"
1) "1"
2) "2"
3) (nil)
獲取與排序集中給定成員(yuan)關聯的分數(shu)
ZUNIONSTORE destination numkeys key [key ...] [WEIGHTS weight
[weight ...]] [AGGREGATE SUM|MIN|MAX]
redis> ZADD zset1 1 "one"
(integer) 1
redis> ZADD zset1 2 "two"
(integer) 1
redis> ZADD zset2 1 "one"
(integer) 1
redis> ZADD zset2 2 "two"
(integer) 1
redis> ZADD zset2 3 "three"
(integer) 1
redis> ZUNIONSTORE out 2 zset1 zset2 WEIGHTS 2 3
(integer) 3
redis> ZRANGE out 0 -1 WITHSCORES
1) "one"
2) "5"
3) "three"
4) "9"
5) "two"
6) "10"
添(tian)加多個(ge)排序集(ji)并將生成的排序集(ji)存儲在新鍵中
GEOADD key longitude latitude member [longitude latitude member ...]
redis> GEOADD Sicily 13.361389 38.115556 "Palermo" 15.087269 37.502669 "Catania"
(integer) 2
redis> GEODIST Sicily Palermo Catania
"166274.1516"
redis> GEORADIUS Sicily 15 37 100 km
1) "Catania"
redis> GEORADIUS Sicily 15 37 200 km
1) "Palermo"
2) "Catania"
在使用(yong)排序集表示的地(di)理(li)空(kong)間索引中添加一個或(huo)多個地(di)理(li)空(kong)間項
GEOHASH key member [member ...]
redis> GEOADD Sicily 13.361389 38.115556 "Palermo" 15.087269 37.502669 "Catania"
(integer) 2
redis> GEOHASH Sicily Palermo Catania
1) "sqc8b49rny0"
2) "sqdtr74hyu0"
將地理空間索引的成員作為標準 geohash 字符(fu)串返回
GEOPOS key member [member ...]
redis> GEOADD Sicily 13.361389 38.115556 "Palermo" 15.087269 37.502669 "Catania"
(integer) 2
redis> GEOPOS Sicily Palermo Catania NonExisting
1) 1) "13.36138933897018433"
2) "38.11555639549629859"
2) 1) "15.08726745843887329"
2) "37.50266842333162032"
3) (nil)
返(fan)回地(di)理(li)空間索引(yin)成員的經度和緯度
GEODIST key member1 member2 [m|km|ft|mi]
redis> GEOADD Sicily 13.361389 38.115556 "Palermo" 15.087269 37.502669 "Catania"
(integer) 2
redis> GEODIST Sicily Palermo Catania
"166274.1516"
redis> GEODIST Sicily Palermo Catania km
"166.2742"
redis> GEODIST Sicily Palermo Catania mi
"103.3182"
redis> GEODIST Sicily Foo Bar
(nil)
返回地理空(kong)間索引的(de)兩個成員之間的(de)距(ju)離
GEORADIUS key longitude latitude radius m|km|ft|mi [WITHCOORD] [WITHDIST] [WITHHASH] [COUNT
count] [ASC|DESC] [STORE key] [STOREDIST key]
redis> GEOADD Sicily 13.361389 38.115556 "Palermo" 15.087269 37.502669 "Catania"
(integer) 2
redis> GEORADIUS Sicily 15 37 200 km WITHDIST
1) 1) "Palermo"
2) "190.4424"
2) 1) "Catania"
2) "56.4413"
redis> GEORADIUS Sicily 15 37 200 km WITHCOORD
1) 1) "Palermo"
2) 1) "13.36138933897018433"
2) "38.11555639549629859"
2) 1) "Catania"
2) 1) "15.08726745843887329"
2) "37.50266842333162032"
redis> GEORADIUS Sicily 15 37 200 km WITHDIST WITHCOORD
1) 1) "Palermo"
2) "190.4424"
3) 1) "13.36138933897018433"
2) "38.11555639549629859"
2) 1) "Catania"
2) "56.4413"
3) 1) "15.08726745843887329"
2) "37.50266842333162032"
查詢表示地理空(kong)間(jian)索引的排序集,以獲取與某個(ge)點的給定(ding)最大距離匹配的成(cheng)員
GEORADIUSBYMEMBER key member radius m|km|ft|mi [WITHCOORD] [WITHDIST] [WITHHASH] [COUNT count]
[ASC|DESC] [STORE key] [STOREDIST key]
redis> GEOADD Sicily 13.583333 37.316667 "Agrigento"
(integer) 1
redis> GEOADD Sicily 13.361389 38.115556 "Palermo" 15.087269 37.502669 "Catania"
(integer) 2
redis> GEORADIUSBYMEMBER Sicily Agrigento 100 km
1) "Agrigento"
2) "Palermo"
查詢表示地理空間索引(yin)的(de)排序(xu)集,以獲取與成員的(de)給(gei)定(ding)最大距離相匹(pi)配的(de)成員
GEOSEARCH key [FROMMEMBER member] [FROMLONLAT longitude latitude] [BYRADIUS radius m|km|ft|mi]
[BYBOX width height m|km|ft|mi] [ASC|DESC] [COUNT count] [WITHCOORD] [WITHDIST] [WITHHASH]
redis> GEOADD Sicily 13.361389 38.115556 "Palermo" 15.087269 37.502669 "Catania"
(integer) 2
redis> GEOADD Sicily 12.758489 38.788135 "edge1" 17.241510 38.788135 "edge2"
(integer) 2
redis> GEOSEARCH Sicily FROMLONLAT 15 37 BYRADIUS 200 km ASC
1) "Catania"
2) "Palermo"
redis> GEOSEARCH Sicily FROMLONLAT 15 37 BYBOX 400 400 km ASC
1) "Catania"
2) "Palermo"
3) "edge2"
4) "edge1"
查詢表示地(di)理空(kong)間索引的排序集,以(yi)獲(huo)取框或圓區(qu)域(yu)內的成(cheng)員。
:- | -- |
---|---|
查詢表示地理空間索引的排序集以獲取框或圓區域內的成員,并將結果存儲在另一個鍵中 |
PFADD key element [element ...]
redis> PFADD hll a b c d e f g
(integer) 1
redis> PFCOUNT hll
(integer) 7
將指(zhi)定(ding)的元素添加到指(zhi)定(ding)的HyperLogLog。
PFCOUNT key [key ...]
redis> PFADD hll foo bar zap
(integer) 1
redis> PFADD hll zap zap zap
(integer) 0
redis> PFADD hll foo bar
(integer) 0
redis> PFCOUNT hll
(integer) 3
redis> PFADD some-other-hll 1 2 3
(integer) 1
redis> PFCOUNT hll some-other-hll
(integer) 6
返(fan)回HyperLogLog在(zai)鍵處觀察到(dao)的集合(he)的近似基數。
PFMERGE destkey sourcekey [sourcekey ...]
redis> PFADD hll1 foo bar zap a
(integer) 1
redis> PFADD hll2 a b c foo
(integer) 1
redis> PFMERGE hll3 hll1 hll2
"OK"
redis> PFCOUNT hll3
(integer) 6
將N個不同的HyperLogLogs合并成(cheng)一個。
:- | -- |
---|---|
獲取有關流和消費者組的信息 | |
從流中刪除指定的條目。返回實際刪除的項目數,如果某些 ID 不存在,則可能與傳遞的 ID 數不同 | |
返回多個流中從未見過的元素,其 ID 大于調用者為每個流報告的 ID | |
創建、銷毀和管理消費者組 | |
使用消費者組從流中返回新條目,或訪問給定消費者的待處理條目的歷史記錄 | |
更改(或獲取)消費者組中消息的所有權,就好像消息已傳遞給指定的消費者一樣 | |
從流消費者組待定條目列表中返回信息和條目,這些信息是已獲取但從未確認的消息 |
XADD key [MAXLEN [=|~] length] [NOMKSTREAM] *|ID field value [field value ...]
redis> XADD mystream * name Sara surname OConnor
"1609040574632-0"
redis> XADD mystream * field1 value1 field2 value2 field3 value3
"1609040574632-1"
redis> XLEN mystream
(integer) 2
redis> XRANGE mystream - +
1) 1) "1609040574632-0"
2) 1) "name"
2) "Sara"
3) "surname"
4) "OConnor"
2) 1) "1609040574632-1"
2) 1) "field1"
2) "value1"
3) "field2"
4) "value2"
5) "field3"
6) "value3"
將新條目附加到流
XTRIM key MAXLEN [=|~] length
redis> XADD mystream * field1 A field2 B field3 C field4 D
"1609040575750-0"
redis> XTRIM mystream MAXLEN 2
(integer) 0
redis> XRANGE mystream - +
1) 1) "1609040575750-0"
2) 1) "field1"
2) "A"
3) "field2"
4) "B"
5) "field3"
6) "C"
7) "field4"
8) "D"
將流修剪為(wei)(大約如果傳遞了“~”)特定大小
XRANGE key start end [COUNT count]
redis> XADD writers * name Virginia surname Woolf
"1609040578002-0"
redis> XADD writers * name Jane surname Austen
"1609040578002-1"
redis> XADD writers * name Toni surname Morrison
"1609040578003-0"
redis> XADD writers * name Agatha surname Christie
"1609040578003-1"
redis> XADD writers * name Ngozi surname Adichie
"1609040578003-2"
redis> XLEN writers
(integer) 5
redis> XRANGE writers - + COUNT 2
1) 1) "1609040578002-0"
2) 1) "name"
2) "Virginia"
3) "surname"
4) "Woolf"
2) 1) "1609040578002-1"
2) 1) "name"
2) "Jane"
3) "surname"
4) "Austen"
返回流中的(de)一系列元素(su),其 ID 與指定的(de) ID 間隔(ge)相匹配(pei)
XREVRANGE key end start [COUNT count]
redis> XADD writers * name Virginia surname Woolf
"1609040579130-0"
redis> XADD writers * name Jane surname Austen
"1609040579130-1"
redis> XADD writers * name Toni surname Morrison
"1609040579130-2"
redis> XADD writers * name Agatha surname Christie
"1609040579131-0"
redis> XADD writers * name Ngozi surname Adichie
"1609040579131-1"
redis> XLEN writers
(integer) 5
redis> XREVRANGE writers + - COUNT 1
1) 1) "1609040579131-1"
2) 1) "name"
2) "Ngozi"
3) "surname"
4) "Adichie"
返回流(liu)中的(de)一系列元(yuan)素(su),ID 與指定(ding)的(de) ID 間隔相匹配,與 XRANGE 相比(bi),順序相反(fan)(從(cong)大到小的(de) ID)
XLEN key
redis> XADD mystream * item 1
"1609040580250-0"
redis> XADD mystream * item 2
"1609040580250-1"
redis> XADD mystream * item 3
"1609040580251-0"
redis> XLEN mystream
(integer) 3
返回流中的條目數
XACK key group ID [ID ...]
redis> XACK mystream mygroup 1526569495631-0
ERR Unknown or disabled command 'XACK'
將待處理消息標記為已正確處理,有效地將其從消費者組的待處理條目列表中刪除,該命令的返回值是成功確認的消息數,即我們實際能夠在 PEL
中解析的 ID
:- | -- |
---|---|
為接收節點分配新的哈希槽 | |
提前集群配置紀元 | |
返回給定節點的活動故障報告數 | |
返回指定哈希槽中本地鍵的個數 | |
在接收節點中將哈希槽設置為未綁定 | |
強制副本對其主副本執行手動故障轉移 | |
刪除節點自身的slot信息 | |
從節點表中刪除一個節點 | |
返回指定哈希槽中的本地鍵名 | |
提供有關 Redis 集群節點狀態的信息 | |
返回指定鍵的哈希槽 | |
強制節點集群與另一個節點握手 | |
返回節點id | |
獲取節點的集群配置 | |
將節點重新配置為指定主節點的副本 | |
重置 Redis 集群節點 | |
強制節點將集群狀態保存在磁盤上 | |
在新節點中設置配置紀元 | |
將哈希槽綁定到特定節點 | |
列出指定主節點的副本節點 | |
列出指定主節點的副本節點 | |
獲取集群插槽數組到節點映射 | |
為到集群副本節點的連接啟用讀取查詢 | |
禁用對集群副本節點連接的讀取查詢 |
:- | -- |
---|---|
丟棄 MULTI 之后發出的所有命令 | |
執行 MULTI 之后發出的所有命令 | |
標記事務塊的開始 | |
忘記所有監視的鍵 | |
觀察給定的鍵以確定MULTI/EXEC塊的執行 |
:- | -- |
---|---|
執行 Lua 腳本服務器端 | |
執行 Lua 腳本服務器端 | |
為執行的腳本設置調試模式 | |
檢查腳本緩存中是否存在腳本 | |
從腳本緩存中刪除所有腳本 | |
終止當前正在執行的腳本 | |
將指定的 Lua 腳本加載到腳本緩存中 |
:- | -- |
---|---|
偵聽發布到與給定模式匹配的頻道的消息 | |
檢查 Pub/Sub 子系統的狀態 | |
向頻道發布消息 | |
停止監聽發布到與給定模式匹配的頻道的消息 | |
收聽發布到給定頻道的消息 | |
停止收聽發布到給定頻道的消息 |