連接控制
QUIT
關閉連接
AUTH
(僅限啟用時)簡單的密碼驗證
適合全體類型的命令
EXISTS
key 判斷一個鍵是否存在;存在返回 1;否則返回0;
DEL
key 刪除某個key,或是一系列key;DEL key1 key2 key3 key4
TYPE
key 返回某個key元素的數據類型 ( none:不存在,string:字符,list,set,zset,hash)
KEYS
pattern 返回匹配的key列表 (KEYS foo*:查找foo開頭的keys)
RANDOMKEY
隨機獲得一個已經存在的key,如果當前數據庫為空,則返回空字符串
RENAME
oldname newname更改key的名字,新鍵如果存在將被覆蓋
RENAMENX
oldname newname 更改key的名字,如果名字存在則更改失敗
DBSIZE
返回當前數據庫的key的總數
EXPIRE
設置某個key的過期時間(秒),(EXPIRE bruce 1000:設置bruce這個key1000秒后系統自動刪除)注意:如果在還沒有過期的時候,對值進行了改變,那么那個值會被清除。
TTL
查找某個key還有多長時間過期,返回時間秒
SELECT
index 選擇數據庫
MOVE
key dbindex 將指定鍵從當前數據庫移到目標數據庫 dbindex。成功返回 1;否則返回0(源數據庫不存在key或目標數據庫已存在同名key);
FLUSHDB
清空當前數據庫中的所有鍵
FLUSHALL
清空所有數據庫中的所有鍵
處理字符串的命令
SET
key value 給一個鍵設置字符串值。SET keyname datalength data (SET bruce 10 paitoubing:保存key為burce,字符串長度為10的一個字符串paitoubing到數據庫),data最大不可超過1G。
GET
key獲取某個key 的value值。如key不存在,則返回字符串“nil”;如key的值不為字符串類型,則返回一個錯誤。
GETSET
key value可以理解成獲得的key的值然后SET這個值,更加方便的操作 (SET bruce 10 paitoubing,這個時候需要修改bruce變成1234567890并獲取這個以前的數據paitoubing,GETSET bruce 10 1234567890)
MGET
key1 key2 … keyN 一次性返回多個鍵的值
SETNX
key value SETNX與SET的區別是SET可以創建與更新key的value,而SETNX是如果key不存在,則創建key與value數據
MSET
key1 value1 key2 value2 … keyN valueN 在一次原子操作下一次性設置多個鍵和值
MSETNX
key1 value1 key2 value2 … keyN valueN 在一次原子操作下一次性設置多個鍵和值(目標鍵不存在情況下,如果有一個以上的key已存在,則失?。?
INCR
key 自增鍵值
INCRBY
key integer 令鍵值自增指定數值
DECR
key 自減鍵值
DECRBY
key integer 令鍵值自減指定數值
處理 lists 的命令
RPUSH
key value 從 List 尾部添加一個元素(如序列不存在,則先創建,如已存在同名Key而非序列,則返回錯誤)
LPUSH
key value 從 List 頭部添加一個元素
LLEN
key 返回一個 List 的長度
LRANGE
key start end從自定的范圍內返回序列的元素 (LRANGE testlist 0 2;返回序列testlist前0 1 2元素)
LTRIM
key start end修剪某個范圍之外的數據 (LTRIM testlist 0 2;保留0 1 2元素,其余的刪除)
LINDEX
key index返回某個位置的序列值(LINDEX testlist 0;返回序列testlist位置為0的元素)
LSET
key index value更新某個位置元素的值
LREM
key count value 從 List 的頭部(count正數)或尾部(count負數)刪除一定數量(count)匹配value的元素,返回刪除的元素數量。
LPOP
key 彈出 List 的第一個元素
RPOP
key 彈出 List 的最后一個元素
RPOPLPUSH
srckey dstkey 彈出 _srckey_ 中最后一個元素并將其壓入 _dstkey_頭部,key不存在或序列為空則返回“nil”
處理集合(sets)的命令(有索引無序序列)
SADD
key member增加元素到SETS序列,如果元素(membe)不存在則添加成功 1,否則失敗 0;(SADD testlist 3 \n one)
SREM
key member 刪除SETS序列的某個元素,如果元素不存在則失敗0,否則成功 1(SREM testlist 3 \N one)
SPOP
key 從集合中隨機彈出一個成員
SMOVE
srckey dstkey member 把一個SETS序列的某個元素 移動到 另外一個SETS序列 (SMOVE testlist test 3\n two;從序列testlist移動元素two到 test中,testlist中將不存在two元素)
SCARD
key 統計某個SETS的序列的元素數量
SISMEMBER
key member 獲知指定成員是否存在于集合中
SINTER key1 key2 … keyN 返回 key1, key2, …, keyN 中的交集
SINTERSTORE
dstkey key1 key2 … keyN 將 key1, key2, …, keyN 中的交集存入 dstkey
SUNION
key1 key2 … keyN 返回 key1, key2, …, keyN 的并集
SUNIONSTORE
dstkey key1 key2 … keyN 將 key1, key2, …, keyN 的并集存入 dstkey
SDIFF
key1 key2 … keyN 依據 key2, …, keyN 求 key1 的差集。官方例子:
key1 = x,a,b,c
key2 = c
key3 = a,d
SDIFF
key1,key2,key3 => x,b
SDIFFSTORE
dstkey key1 key2 … keyN 依據 key2, …, keyN 求 key1 的差集并存入 dstkey
SMEMBERS
key 返回某個序列的所有元素
SRANDMEMBER
key 隨機返回某個序列的元素
處理有序集合(sorted sets)的命令 (zsets)
ZADD
key score member 添加指定成員到有序集合中,如果目標存在則更新score(分值,排序用)
ZREM
key member 從有序集合刪除指定成員
ZINCRBY
key increment member 如果成員存在則將其增加_increment_,否則將設置一個score為_increment_的成員
ZRANGE
key start end 返回升序排序后的指定范圍的成員
ZREVRANGE
key start end 返回降序排序后的指定范圍的成員
ZRANGEBYSCORE
key min max 返回所有符合score >= min和score <= max的成員 ZCARD key 返回有序集合的元素數量 ZSCORE key element 返回指定成員的SCORE值 ZREMRANGEBYSCORE key min max 刪除符合 score >= min 和 score <= max 條件的所有成員
排序(List, Set, Sorted Set)
SORT
key BY pattern LIMIT start end GET pattern ASC|DESC ALPHA 按照指定模式排序集合或List
SORT mylist
默認升序 ASC
SORT mylist DESC
SORT mylist LIMIT 0 10
從序號0開始,取10條
SORT mylist LIMIT 0 10 ALPHA DESC
按首字符排序
SORT mylist BY weight_*
SORT mylist BY weight_* GET object_*
SORT mylist BY weight_* GET object_* GET #
SORT mylist BY weight_* STORE resultkey
將返回的結果存放于resultkey序列(List)
持久控制
SAVE
同步保存數據到磁盤
BGSAVE
異步保存數據到磁盤
LASTSAVE
返回上次成功保存到磁盤的Unix時間戳
SHUTDOWN
同步保存到服務器并關閉 Redis 服務器(SAVE+QUIT)
BGREWRITEAOF
當日志文件過長時重寫日志文件
遠程控制命令
INFO
提供服務器的信息和統計信息
MONITOR
實時輸出所有收到的請求
SLAVEOF
修改復制選項
redis目前提供四種數據類型:string,list,set及zset(sorted set)。
* string是最簡單的類型,你可以理解成與Memcached一模一個的類型,一個key對應一個value,其上支持的操作與Memcached的操 作類似。但它的功能更豐富。
* list是一個鏈表結構,主要功能是push、pop、獲取一個范圍的所有值等等。操作中key理解為鏈表的名字。
* set是集合,和我們數學中的集合概念相似,對集合的操作有添加刪除元素,有對多個集合求交并差等操作。操作中key理解為集合的名字。
* zset是set的一個升級版本,他在set的基礎上增加了一個順序屬性,這一屬性在添加修改元素的時候可以指定,每次指定后,zset會自動重新按新的 值調整順序??梢岳斫饬擞袃闪械膍ysql表,一列存value,一列存順序。操作中key理解為zset的名字。
協議
redis目前只有基于TCP的文本協議,與memcache類似,有一些改進。
客戶端通常發送
命令 參數… 值字節數\r\n
值\r\n
服務端的返回,根據第一個字節,可以判斷:
- 錯誤信息
+ 普通文本信息
$ 變長字節數,$6表示CRLF之后有6個字節的字符
: 返回一個整數
* 返回組數,即*6表示CRLF之后將返回6組變長字符
注意事項:
Key不可包含空格或者回車符
Key不要過長或過短,應使其有意義,如”comment:1234:reply.to”
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
