主頁 > 資料庫 > Redis學習筆記:命令

Redis學習筆記:命令

2021-02-01 06:31:32 資料庫

本文更新于2021-01-31,使用Redis 6.0.8,作業系統為Deepin 15.11,

目錄
  • 字串
    • APPEND
    • BITCOUNT
    • BITOP
    • DECR
    • DECRBY
    • GET
    • GETBIT
    • GETRANGE
    • INCR
    • INCRBY
    • INCRBYFLOAT
    • SET
    • SETBIT
    • SETNX
    • SETRANGE
  • 串列
    • BLPOP
    • BRPOP
    • BRPOPLPUSH
    • LINDEX
    • LPOP
    • LPUSH
    • LRANGE
    • LTRIM
    • RPOP
    • RPOPLPUSH
    • RPUSH
  • 無序集
    • SADD
    • SCARD
    • SDIFF
    • SDIFFSTORE
    • SINTER
    • SINTERSTORE
    • SISMEMBER
    • SMEMBERS
    • SMOVE
    • SPOP
    • SRANDMEMBER
    • SREM
    • SUNION
    • SUNIONSTORE
  • 有序集
    • ZADD
    • ZCARD
    • ZCOUNT
    • ZINCRBY
    • ZINTERSTORE
    • ZRANGE
    • ZRANK
    • ZRANGEBYSCORE
    • ZREM
    • ZREMRANGEBYRANK
    • ZREMRANGEBYSCORE
    • ZREVRANGE
    • ZREVRANGEBYSCORE
    • ZREVRANK
    • ZSCORE
    • ZUNIONSTORE
  • 無序散列
    • HDEL
    • HEXISTS
    • HGET
    • HGETALL
    • HINCRBY
    • HINCRBYFLOAT
    • HKEYS
    • HLEN
    • HMGET
    • HMSET
    • HSET
    • HVALS
  • 洗掉
    • DEL
  • 排序
    • SORT
  • 過期
    • EXPIRE
    • EXPIREAT
    • PERSIST
    • PEXPIRE
    • PEXPIREAT
    • PTTL
    • TTL
  • 事務
    • DISCARD
    • EXEC
    • MULTI
    • UNWATCH
    • WATCH
  • 發布/訂閱
    • PSUBSCRIBE
    • PUNSUBSCRIBE
    • PUBLISH
    • SUBSCRIBE
    • UNSUBSCRIBE
  • 持久化
    • BGREWRITEAOF
    • BGSAVE
    • SAVE
  • 復制
    • SLAVEOF
  • 管理
    • DEBUG OBJECT
    • INFO
    • SELECT
    • SHUTDOWN
  • 腳本
    • EVAL
    • EVALSHA
    • SCRIPT FLUSH
    • SCRIPT KILL
    • SCRIPT LOAD

說明:本文中,小寫為自定義變數,根據實際情況填寫,使用[]引起表示內容可選,|表示使用左側或右側內容,...表示重復之前內容,

官方檔案參看:https://redis.io/commands

字串

即位元組序列,也可視作整數、浮點數,

APPEND

字串追加內容,如鍵不存在則創建,

APPEND str value

回傳追加后的位元組長度:

(integer) 5

BITCOUNT

統計二進制位中為1的數量,可指定位元組區間[start, end],

BITCOUNT str [start, end]

回傳二進制位為1的數量:

(integer) 4

BITOP

執行位運算后將結果存盤于deststr,

BITOP AND|OR|XOR deststr str [...]
BITOP NOT deststr str

回傳結果字串deststr的位元組長度:

(integer) 1

DECR

自減1,只可用于視為整數的字串型別,如鍵不存在,則先以0值創建,

DECR str

回傳自減后的值:

"-1"

DECRBY

減少指定整數值,只可用于視為整數的字串型別,如鍵不存在,則先以0值創建,

DECRBY str decrement

回傳減少后的值:

"-1"

GET

獲取字串,

GET str

回傳字串:

"value"

或無此鍵時回傳:

(nil)

GETBIT

獲取第offset的二進制位,位元組的高位在前,第一位為0,不可使用負數,

GETBIT str offset

只會回傳0或1,如位不存在則回傳0:

(integer) 1

GETRANGE

獲取位元組區間[start, end]內的子串,第一個位元組下標為0,可使用負數,最后一個位元組下標為-1,

GETRANGE str start end

回傳子串:

"val"

或如不存在回傳:

""

INCR

自增1,只可用于視為整數的字串型別,如鍵不存在,則先以0值創建,

INCR str

回傳自增后的值:

(integer) 1

INCRBY

增加整數值,只可用于視為整數的字串型別,如鍵不存在,則先以0值創建,

INCRBY str increment

回傳增加后的值:

(integer) 1

INCRBYFLOAT

增加浮點數值,只可用于視為整數或浮點數的字串型別,如鍵不存在,則先以0值創建,

INCRBYFLOAT str increment

回傳增加后的值:

"0.1"

SET

設定字串,

SET str value

成功回傳:

OK

SETBIT

設定第offset的二進制位,只能設定為0或1,如鍵不存在則創建,位元組的高位在前,第一位為0,不可使用負數,如字串長度不足,則使用0值位元組填充,

SETBIT str offset bit

回傳二進制位原來的值:

(integer) 1

SETNX

只當鍵不存在時設定字串,

SETNX str value

成功設定回傳1,未成功設定回傳0:

(integer) 1

SETRANGE

設定從offset(含)位元組起的內容,如鍵不存在則創建,第一個位元組下標為0,不可使用負數,如字串長度不足,則使用0值位元組填充,

SETRANGE str offset value

回傳設定后的字串位元組長度:

(integer) 5

串列

元素為字串,左側為開頭,右側為結尾,

BLPOP

阻塞地從第一個非空串列彈出最左側元素,

BLPOP list [...] timeoutseconds

如無阻塞彈出,則回傳彈出的串列、元素:

1) "list"
2) "element"

如有阻塞彈出,則回傳彈出的串列、元素和阻塞時間:

1) "list"
2) "element"
(1.01s)

如阻塞超時未彈出,則回傳nil和阻塞時間:

(nil)
(3.01s)

BRPOP

阻塞地從第一個非空串列彈出最右側元素,

BRPOP list [...] timeoutseconds

如無阻塞,則回傳彈出的串列、元素:

1) "list"
2) "element"

如有阻塞,則回傳彈出的串列、元素和阻塞時間:

1) "list"
2) "element"
(1.01s)

如阻塞超時,則回傳nil和阻塞時間:

(nil)
(3.01s)

BRPOPLPUSH

阻塞地從srclist彈出最右側元素,并把元素推入destlist最左側,如destlist不存在則創建,

BRPOPLPUSH srclist destlist timeoutseconds

如無阻塞,則回傳該元素:

"element"

如有阻塞,則回傳該元素和阻塞時間:

"element"
(1.01s)

如阻塞超時,則回傳nil和阻塞時間:

(nil)
(3.01s)

LINDEX

回傳左側指定下標的元素,第一個元素下標為0,可使用負數,最后一個元素下標為-1,

LINDEX list n

回傳該下標處的元素:

"element"

或無此元素時回傳:

(nil)

LPOP

彈出最左側元素,

LPOP list

回傳彈出的元素:

"element"

或串列為空時回傳:

(nil)

LPUSH

將元素依次推入串列最左側,如串列不存在則創建,引數中最后的元素位于串列最左側,

LPUSH list element [...]

回傳串列的長度:

(integer) 1

LRANGE

從左側起查找區間[start, end]內的元素,第一個元素下標為0,可使用負數,最后一個元素下標為-1,

LRANGE list start end

回傳元素串列:

1) "element0"
2) "element1"

或串列為空時回傳:

(empty array)

LTRIM

從左側起裁剪串列,只保留區間[start, end]內的元素,第一個元素下標為0,可使用負數,最后一個元素下標為-1,

LTRIM list start end

成功回傳:

OK

RPOP

彈出最右側元素,

RPOP list

回傳彈出的元素:

"element"

或串列為空時回傳:

(nil)

RPOPLPUSH

從srclist彈出最右側元素,并把元素推入destlist最左側,如destlist不存在則創建,

RPOPLPUSH srclist destlist

回傳該元素:

"element"

或當srclist為空時回傳:

(nil)

RPUSH

將元素依次推入串列右側,如串列不存在則創建,引數中最后的元素位于串列最右側,

RPUSH list element [...]

回傳串列的長度:

(integer) 1

無序集

元素為字串,

SADD

添加元素至集合中,如集合不存在則創建,

SADD set element [...]

回傳實際添加的元素個數,如元素已存在則不計入個數:

(integer) 1

SCARD

回傳集合的元素數量,

SCARD set

回傳元素數量:

(integer) 1

SDIFF

差集運算,

SDIFF set excludeset [...]

回傳結果集合的元素:

1) "element0"
2) "element1"

或當結果集合為空時回傳:

(empty array)

SDIFFSTORE

差集運算,并將結果存盤至destset,如destset不存在則創建,如已存在則清空,

SDIFFSTORE destset set excludeset [...]

回傳結果集合的元素個數:

(integer) 2

SINTER

交集運算,

SINTER set [...]

回傳結果集合的元素:

1) "element0"
2) "element1"

或當結果集合為空時回傳:

(empty array)

SINTERSTORE

交集運算,并將結果存盤至destset,如destset不存在則創建,如已存在則清空,

SINTERSTORE destset set [...]

回傳結果集合的元素個數:

(integer) 2

SISMEMBER

檢查是否包含元素,

SISMEMBER set element

包含回傳1,不包含回傳0:

(integer) 1

SMEMBERS

回傳集合的所有元素,

SMEMBERS set

回傳所有元素:

1) "element0"
2) "element1"

或集合為空時回傳:

(empty array)

SMOVE

如元素在srcset中,則將其洗掉并移入destset,如destset不存在則創建,

SMOVE srcset destset element

如移動則回傳1,如未移動則回傳0:

(integer) 1

SPOP

隨機彈出元素,

SPOP set [count]

回傳彈出的元素串列:

"element0"
"element1"

或無元素彈出時回傳:

(empty array)

SRANDMEMBER

隨機回傳元素,當count為正數時,元素不會重復,因此個數可能不足;當count為負數時,元素可能重復,

SRANDMEMBER set [count]

回傳元素串列:

"element0"
"element1"

或count為0時回傳:

(empty array)

SREM

洗掉集合中的元素,

SREM set element [...]

回傳實際洗掉的元素個數,如元素不存在則不計入個數:

(integer) 1

SUNION

并集運算,

SUNION set [...]

回傳結果集合的元素:

1) "element0"
2) "element1"

或當結果集合為空時回傳:

(empty array)

SUNIONSTORE

并集運算,并將結果存盤至destset,如destset不存在則創建,如已存在則清空,

SUNIONSTORE destset set [...]

回傳結果集合的元素個數:

(integer) 2

有序集

字串與浮點數分值映射,

ZADD

添加元素及分值至有序集合中,如有序集合不存在則創建,

ZADD zset score element [score element ...]

回傳實際添加的元素個數,如元素已存在且分值相同則不計入個數:

(integer) 1

ZCARD

回傳有序集合的元素數量,

ZCARD zset

回傳元素數量:

(integer) 1

ZCOUNT

回傳有序集合分值在區間[min, max]的元素數量,

ZCOUNT zset min max

回傳元素數量:

(integer) 1

ZINCRBY

增加元素的分值,如元素不存在,則先以0分值添加,

ZINCRBY zset increment element

回傳增加后的分值:

"0.1"

ZINTERSTORE

類似交集運算,并將結果存盤至destzset,如destset不存在則創建,如已存在則清空,

ZINTERSTORE destzset nzset zset [...] [WEIGHTS weight [...]] [AGGREGATE SUM|MIN|MAX]

zset引數可使用集合,被當作分值為1的有序集合,AGGREGATE默認為SUM,

回傳結果有序集合的元素個數:

(integer) 2

ZRANGE

分值從小到大查找排名在區間[start, end]內的元素,第一個元素下標為0,可使用負數,最后一個元素下標為-1,

ZRANGE zset start end [WITHSCORES]

回傳元素串列:

1) "element0"
2) "element1"

如指定WITHSCORES則同時回傳分值:

1) "element0"
2) "1"
3) "element1"
4) "2"

或串列為空時回傳:

(empty array)

ZRANK

查找元素在有序集合中從小到大的排名,第一為0,

ZRANK zset element

回傳元素的排名:

(integer) 0

或當元素不存在時回傳:

(nil)

ZRANGEBYSCORE

分值從小到大查找分值在區間[min, max]的元素,

ZRANGEBYSCORE zset min max [WITHSCORES] [LIMIT offset count]

回傳元素串列:

1) "element0"
2) "element1"

如指定WITHSCORES則同時回傳分值:

1) "element0"
2) "1"
3) "element1"
4) "2"

或串列為空時回傳:

(empty array)

ZREM

洗掉有序集合中的元素,

ZREM zset elment [...]

回傳實際洗掉的元素個數,如元素不存在則不計入個數:

(integer) 1

ZREMRANGEBYRANK

洗掉有序集合中分值從小到大排名在區間[start, end]內的元素,第一個元素下標為0,可使用負數,最后一個元素下標為-1,

ZREMRANGEBYRANK zset start end

回傳被洗掉的元素個數:

(integer) 1

ZREMRANGEBYSCORE

洗掉有序集合中分值在區間[min, max]內的元素,

ZREMRANGEBYSCORE zset min max

回傳被洗掉的元素個數:

(integer) 1

ZREVRANGE

分值從大到小查找排名在區間[start, end]內的元素,第一個元素下標為0,可使用負數,最后一個元素下標為-1,

ZREVRANGE zset start end [WITHSCORES]

回傳元素串列:

1) "element0"
2) "element1"

如指定WITHSCORES則同時回傳分值:

1) "element0"
2) "2"
3) "element1"
4) "1"

或串列為空時回傳:

(empty array)

ZREVRANGEBYSCORE

分值從大到小查找分值在區間[min, max]的元素,

ZRANGEBYSCORE zset max min [WITHSCORES] [LIMIT offset count]

回傳元素串列:

1) "element0"
2) "element1"

如指定WITHSCORES則同時回傳分值:

1) "element0"
2) "2"
3) "element1"
4) "1"

或串列為空時回傳:

(empty array)

ZREVRANK

查找元素在有序集合中從大到小的排名,第一為0,

ZREVRANK zset element

回傳元素的排名:

(integer) 0

或當元素不存在時回傳:

(nil)

ZSCORE

回傳元素的分值,

ZSCORE zset element

回傳分值:

"1"

或當元素不存在時回傳:

(nil)

ZUNIONSTORE

類似并集運算,并將結果存盤至destzset,如destset不存在則創建,如已存在則清空,

ZUNIONSTORE destzset nzset zset [...] [WEIGHTS weight [...]] [AGGREGATE SUM|MIN|MAX]

zset引數可使用集合,被當作分值為1的有序集合,AGGREGATE默認為SUM,

回傳結果有序集合的元素個數:

(integer) 2

無序散列

鍵值均為字串,值也可視作整數、浮點數,

HDEL

洗掉散列的鍵,

HDEL hash field [...]

回傳實際洗掉的鍵個數,如鍵不存在則不計入個數:

(integer) 1

HEXISTS

檢查鍵是否存在,

HEXISTS hash field

存在回傳1,不存在回傳0:

(integer) 1

HGET

獲取單個鍵對應的值,

HGET hash field

回傳鍵對應的值:

"value"

或當無此鍵時回傳:

(nil)

HGETALL

回傳所有鍵值對,

HGETALL hash

鍵值間隔依次回傳:

1) "field1"
2) "value1"
3) "field2"
4) "value2"

或散列為空時回傳:

(empty array)

HINCRBY

增加鍵的值,只可用于視為整數的字串型別,如散列鍵不存在則創建,如鍵不存在則先以0值創建,

HINCRBY hash field increment

回傳增加后的值:

(integer) 1

HINCRBYFLOAT

增加鍵的浮點數值,只可用于視為整數或浮點數的字串型別,如散列鍵不存在則創建,如鍵不存在則先以0值創建,

HINCRBYFLOAT hash field increment

回傳增加后的值:

"0.1"

HKEYS

回傳所有鍵,

HKEYS hash

回傳鍵的串列:

1) "field1"
2) "field2"

或散列為空時回傳:

(empty array)

HLEN

回傳鍵值對數量,

HLEN hash

回傳數量:

(integer) 1

HMGET

獲取多個鍵對應的值,

HMGET hash field [...]

依次回傳鍵對應的值,如鍵不存在則值為nil:

1) "value1"
2) (nil)

HMSET

設定散列的鍵值對,如散列不存在則創建,

HMSET hash field value [field value ...]

回傳實際添加的鍵個數,如鍵已存在則不計入個數:

(integer) 1

HSET

設定散列的鍵值對,如散列不存在則創建,

HSET hash field value [field value ...]

回傳實際添加的鍵個數,如鍵已存在則不計入個數:

(integer) 1

HVALS

回傳所有值,值可能重復,

HVALS hash

回傳值的串列:

1) "value1"
2) "value2"

或散列為空時回傳:

(empty array)

洗掉

DEL

洗掉鍵,可用于所有型別,

DEL key [...]

回傳洗掉的鍵數量,如鍵不存在則不計入個數:

(integer) 1

排序

SORT

排序,可對串列、集合、有序集(忽略分值)進行排序,

SORT key [BY by_pattern] [LIMIT offset count] [GET get_pattern [GET get_pattern ...]] [ASC|DESC] [ALPHA] [STORE destlist]

BY指定使用外部鍵進行排序,以key中的元素替換by_pattern中的號,以此作為鍵查找字串,再使用此字串作為排序的依據(如:user),或以key中的元素替換by_pattern中的號,以此作為鍵查找無序散列,再使用->取無序散列中鍵的值作為排序的依據(如:user->name),如by_pattern不存在,則跳過排序,

LIMIT限制回傳的結果跳過的數量和回傳的總數量,

GET指定外部鍵作為回傳結果,以key中的元素替換get_pattern中的號,以此作為鍵查找字串,再使用此字串作為回傳結果(如:user),或以key中的元素替換by_pattern中的號,以此作為鍵查找無序散列,再使用->取無序散列中鍵的值作為回傳結果(如:user->name),get_pattern為#表示key中的元素,

ASC為升序,DESC為降序,默認為升序,

ALPHA為作為字串排序,默認為作為數值排序,

STORE將結果保存至串列中,如destlist不存在則創建,如已存在則清空,

回傳排序后的元素:

"1"
"2"

或如回傳多個外部鍵:

"1"
"a"
"2"
"b"

或無元素時回傳:

(empty array)

如使用了STORE則回傳排序后的元素數量:

(integer) 1

過期

EXPIRE

設定鍵于若干秒后過期,

EXPIRE key seconds

鍵存在回傳1,不存在回傳0:

(integer) 1

EXPIREAT

設定鍵于秒級Unix時間戳過期:

EXPIREAT key unix_timestamp_second

鍵存在回傳1,不存在回傳0:

(integer) 1

PERSIST

將鍵設為永久,會移除過期時間,

PERSIST key

鍵原有過期時間回傳1,原是永久回傳0:

(integer) 1

PEXPIRE

設定鍵于若干毫秒后過期,

PEXPIRE key millseconds

鍵存在回傳1,不存在回傳0:

(integer) 1

PEXPIREAT

設定鍵于毫秒級Unix時間戳過期:

PEXPIREAT key unix_timestamp_millsecond

鍵存在回傳1,不存在回傳0:

(integer) 1

PTTL

查看鍵距離過期的毫秒數,

PTTL key

回傳毫秒數,永久回傳-1,不存在回傳-2:

(integer) 1

TTL

查看鍵距離過期的秒數,

TTL key

回傳秒數,永久回傳-1,不存在回傳-2:

(integer) 1

事務

命令的執行順序為:WATCHUNWATCH(不再繼續執行后面的命令)、MULTIDISCARD(不再繼續執行后面的命令)、EXEC

DISCARD

取消所有對鍵進行的監視并清空使用MULTI入隊的命令,在MULTI之后EXEC之前執行,

DISCARD

回傳:

OK

EXEC

執行事務,

EXEC

執行MULTIEXEC的所有命令,嵌套回傳各命令的執行結果:

1) "value"
2) 1) "element0"
   2) "element1"

執行失敗回傳:

(nil)

MULTI

開始事務,

MULTI

回傳:

OK

MULTIEXEC的所有命令會入隊并在EXEC后一起執行,期間所有命令均回傳:

QUEUED

UNWATCH

取消所有對鍵進行的監視,在WATCH之后MULTI之前執行,

UNWATCH

回傳:

OK

WATCH

對鍵進行監視,執行WATCHEXEC這段時間內,如其他連接對鍵進行修改,EXEC會執行失敗,

WATCH key [...]

回傳:

OK

發布/訂閱

訊息為字串,

PSUBSCRIBE

訂閱匹配glob模式的頻道,

PSUBSCRIBE glob [...]

依次回傳各頻道的事件名(psubscribe)、glob模式、當前訂閱的頻道數量:

1) "psubscribe"
2) "glob1"
3) (integer) 1
1) "psubscribe"
2) "glob2"
3) (integer) 2

此后,當前連接被阻塞直至斷開,期間依次輸出訊息的事件名(pmessage)、glob模式、頻道名、訊息值:

1) "pmessage"
2) "glob1"
3) "channel"
4) "msg"

PUNSUBSCRIBE

在redis-cli,因訂閱后連接被阻塞,不能使用此命令,

退訂匹配glob模式的頻道,如不指定glob則退訂所有頻道,

PUNSUBSCRIBE [glob [...]]

依次回傳各glob模式的事件名(punsubscribe)、glob模式、當前訂閱的頻道數量,如當前訂閱的頻道數量已為0,則不繼續回傳后續事件,但事件仍存在連接的佇列中:

1) "punsubscribe"
2) "glob1"
3) (integer) 1
1) "punsubscribe"
2) "glob2"
3) (integer) 0

當不指定channel且沒有訂閱頻道時回傳:

1) "punsubscribe"
2) (nil)
3) (integer) 0

PUBLISH

向頻道發送訊息,

PUBLISH channel msg

回傳接收到訊息的連接數:

(integer) 1

SUBSCRIBE

訂閱頻道,

SUBSCRIBE channel [...]

依次回傳各頻道的事件名(subscribe)、頻道名、當前訂閱的頻道數量:

1) "subscribe"
2) "channel1"
3) (integer) 1
1) "subscribe"
2) "channel2"
3) (integer) 2

此后,當前連接被阻塞直至斷開,期間依次輸出訊息的事件名(message)、頻道名、訊息值:

1) "message"
2) "channel1"
3) "msg"

UNSUBSCRIBE

在redis-cli,因訂閱后連接被阻塞,不能使用此命令,

退訂頻道,如不指定channel則退訂所有頻道,

UNSUBSCRIBE [channel [...]]

依次回傳各頻道的事件名(unsubscribe)、頻道名、當前訂閱的頻道數量,如當前訂閱的頻道數量已為0,則不繼續回傳后續事件,但事件仍存在連接的佇列中:

1) "unsubscribe"
2) "channel1"
3) (integer) 1
1) "unsubscribe"
2) "channel2"
3) (integer) 0

當不指定channel且沒有訂閱頻道時回傳:

1) "unsubscribe"
2) (nil)
3) (integer) 0

持久化

BGREWRITEAOF

重寫AOF檔案,子行程負責將AOF檔案寫入磁盤,父行程繼續處理命令請求,

BGREWRITEAOF

回傳:

Background append only file rewriting started

BGSAVE

后臺創建快照檔案,子行程負責將快照檔案寫入磁盤,父行程繼續處理命令請求,

BGSAVE

回傳:

Background saving started

SAVE

前臺創建快照檔案,快照檔案創建完畢之前都不再回應任何其他命令,

SAVE

回傳:

OK

復制

SLAVEOF

作為從服務器,指定主服務器,并丟棄已有資料,復制資料:

SLAVEOF host port

停止復制,使用已有資料,由從服務器切換為主服務器:

SLAVEOF NO ONE

回傳:

OK

管理

DEBUG OBJECT

回傳物件的除錯資訊,

DEBUG OBJECT key

回傳呼試資訊:

Value at:0x7f4500a77c80 refcount:1 encoding:ziplist serializedlength:17 lru:11272693 lru_seconds_idle:6559102

如鍵不存在回傳:

(error) ERR no such key

INFO

查看服務器狀態資訊,

INFO section

回傳的資訊包括幾個小節,每個小節由一行以“#”開頭的小節名開頭及一行空行結尾,小節中每條資訊一行并以“:”分隔名字和值:

# Modules

# Cluster
cluster_enabled:0

各名字的含義如下:

  • aof_pending_bio_fsync:AOF等待同步到磁盤的命令數,

SELECT

選擇切換至第n號庫,最大為15,默認為0,如非0,命令列提示符帶有“[n]”字樣,

SELECT n

回傳:

OK

SHUTDOWN

停止服務,

SHUTDOWN [NOSAVE|SAVE]

無回傳,連接斷開,

腳本

EVAL

執行Lua腳本代碼,

EVAL lua_code key_amount [key [...]] [arg [...]]

key為lua_code中使用到的鍵,在Lua腳本中依次以KEYS[1]等形式使用,arg為lua_code中使用到的附加引數,在Lua腳本中依次以ARGV[1]等形式使用,

回傳Lua腳本的回傳值,如有表格(table)則嵌套回傳:

1) "lua"
2) 1) (integer) 1
   2) (integer) 2

或當失敗回傳錯誤:

(error) ERR wrong number of arguments for 'eval' command

EVALSHA

執行已加載的Lua腳本代碼,

EVALSHA sha1 key_amount [key [...]] [arg [...]]

key為lua_code中使用到的鍵,在Lua腳本中依次以KEYS[1]等形式使用,arg為lua_code中使用到的附加引數,在Lua腳本中依次以ARGV[1]等形式使用,

回傳Lua腳本的回傳值,如有表格(table)則嵌套回傳:

1) "lua"
2) 1) (integer) 1
   2) (integer) 2

或當失敗回傳錯誤:

(error) ERR wrong number of arguments for 'evalsha' command

SCRIPT FLUSH

清除所有已加載的Lua腳本代碼,

SCRIPT FLUSH

回傳:

OK

SCRIPT KILL

殺死正在執行的Lua腳本,

SCRIPT KILL

回傳:

OK

如沒有正在執行的Lua腳本則回傳:

(error) NOTBUSY No scripts in execution right now.

SCRIPT LOAD

加載但不執行Lua腳本代碼:

SCRIPT LOAD lua_code

回傳腳本代碼的SHA1校驗和:

"e0e1f9fabfc9d4800c877a703b823ac0578ff8db"

或當失敗回傳錯誤:

(error) ERR Unknown subcommand or wrong number of arguments for 'load'. Try SCRIPT HELP.

轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/255111.html

標籤:NoSQL

上一篇:抖音資料采集教程,unidbg Ollvm 字串加密決議

下一篇:AOF寫入和AOF重寫對redis的阻塞以及解決方案

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • GPU虛擬機創建時間深度優化

    **?桔妹導讀:**GPU虛擬機實體創建速度慢是公有云面臨的普遍問題,由于通常情況下創建虛擬機屬于低頻操作而未引起業界的重視,實際生產中還是存在對GPU實體創建時間有苛刻要求的業務場景。本文將介紹滴滴云在解決該問題時的思路、方法、并展示最終的優化成果。 從公有云服務商那里購買過虛擬主機的資深用戶,一 ......

    uj5u.com 2020-09-10 06:09:13 more
  • 可編程網卡芯片在滴滴云網路的應用實踐

    **?桔妹導讀:**隨著云規模不斷擴大以及業務層面對延遲、帶寬的要求越來越高,采用DPDK 加速網路報文處理的方式在橫向縱向擴展都出現了局限性。可編程芯片成為業界熱點。本文主要講述了可編程網卡芯片在滴滴云網路中的應用實踐,遇到的問題、帶來的收益以及開源社區貢獻。 #1. 資料中心面臨的問題 隨著滴滴 ......

    uj5u.com 2020-09-10 06:10:21 more
  • 滴滴資料通道服務演進之路

    **?桔妹導讀:**滴滴資料通道引擎承載著全公司的資料同步,為下游實時和離線場景提供了必不可少的源資料。隨著任務量的不斷增加,資料通道的整體架構也隨之發生改變。本文介紹了滴滴資料通道的發展歷程,遇到的問題以及今后的規劃。 #1. 背景 資料,對于任何一家互聯網公司來說都是非常重要的資產,公司的大資料 ......

    uj5u.com 2020-09-10 06:11:05 more
  • 滴滴AI Labs斬獲國際機器翻譯大賽中譯英方向世界第三

    **桔妹導讀:**深耕人工智能領域,致力于探索AI讓出行更美好的滴滴AI Labs再次斬獲國際大獎,這次獲獎的專案是什么呢?一起來看看詳細報道吧! 近日,由國際計算語言學協會ACL(The Association for Computational Linguistics)舉辦的世界最具影響力的機器 ......

    uj5u.com 2020-09-10 06:11:29 more
  • MPP (Massively Parallel Processing)大規模并行處理

    1、什么是mpp? MPP (Massively Parallel Processing),即大規模并行處理,在資料庫非共享集群中,每個節點都有獨立的磁盤存盤系統和記憶體系統,業務資料根據資料庫模型和應用特點劃分到各個節點上,每臺資料節點通過專用網路或者商業通用網路互相連接,彼此協同計算,作為整體提供 ......

    uj5u.com 2020-09-10 06:11:41 more
  • 滴滴資料倉庫指標體系建設實踐

    **桔妹導讀:**指標體系是什么?如何使用OSM模型和AARRR模型搭建指標體系?如何統一流程、規范化、工具化管理指標體系?本文會對建設的方法論結合滴滴資料指標體系建設實踐進行解答分析。 #1. 什么是指標體系 ##1.1 指標體系定義 指標體系是將零散單點的具有相互聯系的指標,系統化的組織起來,通 ......

    uj5u.com 2020-09-10 06:12:52 more
  • 單表千萬行資料庫 LIKE 搜索優化手記

    我們經常在資料庫中使用 LIKE 運算子來完成對資料的模糊搜索,LIKE 運算子用于在 WHERE 子句中搜索列中的指定模式。 如果需要查找客戶表中所有姓氏是“張”的資料,可以使用下面的 SQL 陳述句: SELECT * FROM Customer WHERE Name LIKE '張%' 如果需要 ......

    uj5u.com 2020-09-10 06:13:25 more
  • 滴滴Ceph分布式存盤系統優化之鎖優化

    **桔妹導讀:**Ceph是國際知名的開源分布式存盤系統,在工業界和學術界都有著重要的影響。Ceph的架構和演算法設計發表在國際系統領域頂級會議OSDI、SOSP、SC等上。Ceph社區得到Red Hat、SUSE、Intel等大公司的大力支持。Ceph是國際云計算領域應用最廣泛的開源分布式存盤系統, ......

    uj5u.com 2020-09-10 06:14:51 more
  • es~通過ElasticsearchTemplate進行聚合~嵌套聚合

    之前寫過《es~通過ElasticsearchTemplate進行聚合操作》的文章,這一次主要寫一個嵌套的聚合,例如先對sex集合,再對desc聚合,最后再對age求和,共三層嵌套。 Aggregations的部分特性類似于SQL語言中的group by,avg,sum等函式,Aggregation ......

    uj5u.com 2020-09-10 06:14:59 more
  • 爬蟲日志監控 -- Elastc Stack(ELK)部署

    傻瓜式部署,只需替換IP與用戶 導讀: 現ELK四大組件分別為:Elasticsearch(核心)、logstash(處理)、filebeat(采集)、kibana(可視化) 下載均在https://www.elastic.co/cn/downloads/下tar包,各組件版本最好一致,配合fdm會 ......

    uj5u.com 2020-09-10 06:15:05 more
最新发布
  • day02-2-商鋪查詢快取

    功能02-商鋪查詢快取 3.商鋪詳情快取查詢 3.1什么是快取? 快取就是資料交換的緩沖區(稱作Cache),是存盤資料的臨時地方,一般讀寫性能較高。 快取的作用: 降低后端負載 提高讀寫效率,降低回應時間 快取的成本: 資料一致性成本 代碼維護成本 運維成本 3.2需求說明 如下,當我們點擊商店詳 ......

    uj5u.com 2023-04-20 08:33:24 more
  • MySQL中binlog備份腳本分享

    關于MySQL的二進制日志(binlog),我們都知道二進制日志(binlog)非常重要,尤其當你需要point to point災難恢復的時侯,所以我們要對其進行備份。關于二進制日志(binlog)的備份,可以基于flush logs方式先切換binlog,然后拷貝&壓縮到到遠程服務器或本地服務器 ......

    uj5u.com 2023-04-20 08:28:06 more
  • day02-短信登錄

    功能實作02 2.功能01-短信登錄 2.1基于Session實作登錄 2.1.1思路分析 2.1.2代碼實作 2.1.2.1發送短信驗證碼 發送短信驗證碼: 發送驗證碼的介面為:http://127.0.0.1:8080/api/user/code?phone=xxxxx<手機號> 請求方式:PO ......

    uj5u.com 2023-04-20 08:27:27 more
  • 快取與資料庫雙寫一致性幾種策略分析

    本文將對幾種快取與資料庫保證資料一致性的使用方式進行分析。為保證高并發性能,以下分析場景不考慮執行的原子性及加鎖等強一致性要求的場景,僅追求最終一致性。 ......

    uj5u.com 2023-04-20 08:26:48 more
  • sql陳述句優化

    問題查找及措施 問題查找 需要找到具體的代碼,對其進行一對一優化,而非一直把關注點放在服務器和sql平臺 降低簡化每個事務中處理的問題,盡量不要讓一個事務拖太長的時間 例如檔案上傳時,應將檔案上傳這一步放在事務外面 微軟建議 4.啟動sql定時執行計劃 怎么啟動sqlserver代理服務-百度經驗 ......

    uj5u.com 2023-04-20 08:26:35 more
  • 云時代,MySQL到ClickHouse資料同步產品對比推薦

    ClickHouse 在執行分析查詢時的速度優勢很好的彌補了MySQL的不足,但是對于很多開發者和DBA來說,如何將MySQL穩定、高效、簡單的同步到 ClickHouse 卻很困難。本文對比了 NineData、MaterializeMySQL(ClickHouse自帶)、Bifrost 三款產品... ......

    uj5u.com 2023-04-20 08:26:29 more
  • sql陳述句優化

    問題查找及措施 問題查找 需要找到具體的代碼,對其進行一對一優化,而非一直把關注點放在服務器和sql平臺 降低簡化每個事務中處理的問題,盡量不要讓一個事務拖太長的時間 例如檔案上傳時,應將檔案上傳這一步放在事務外面 微軟建議 4.啟動sql定時執行計劃 怎么啟動sqlserver代理服務-百度經驗 ......

    uj5u.com 2023-04-20 08:25:13 more
  • Redis 報”OutOfDirectMemoryError“(堆外記憶體溢位)

    Redis 報錯“OutOfDirectMemoryError(堆外記憶體溢位) ”問題如下: 一、報錯資訊: 使用 Redis 的業務介面 ,產生 OutOfDirectMemoryError(堆外記憶體溢位),如圖: 格式化后的報錯資訊: { "timestamp": "2023-04-17 22: ......

    uj5u.com 2023-04-20 08:24:54 more
  • day02-2-商鋪查詢快取

    功能02-商鋪查詢快取 3.商鋪詳情快取查詢 3.1什么是快取? 快取就是資料交換的緩沖區(稱作Cache),是存盤資料的臨時地方,一般讀寫性能較高。 快取的作用: 降低后端負載 提高讀寫效率,降低回應時間 快取的成本: 資料一致性成本 代碼維護成本 運維成本 3.2需求說明 如下,當我們點擊商店詳 ......

    uj5u.com 2023-04-20 08:24:03 more
  • day02-短信登錄

    功能實作02 2.功能01-短信登錄 2.1基于Session實作登錄 2.1.1思路分析 2.1.2代碼實作 2.1.2.1發送短信驗證碼 發送短信驗證碼: 發送驗證碼的介面為:http://127.0.0.1:8080/api/user/code?phone=xxxxx<手機號> 請求方式:PO ......

    uj5u.com 2023-04-20 08:23:11 more