歡迎您光臨本站 註冊首頁

redis操作學習記錄

←手機掃碼閱讀     f2h0b53ohn @ 2020-05-03 , reply:0

本文例項總結了redis操作。分享給大家供大家參考,具體如下:
相關內容:
雖然有參考文件,而且記憶太多也是耗腦,但學習的時候還是想要有個系統劃分開知識點的文件,即使不要求去細緻記憶,但劃分開知識塊後腦子裡的印象才會更清晰,所以就有了這個博文。
主要是將各種命令進行劃分成不同的功能歸屬
redis的介紹:
客戶端連線操作
服務端操作
string操作
hash操作
list操作
set操作
sort set操作
key操作
釋出訂閱
事務
參考:w3school
首發時間: 2018-03-10 15:36
Redis的介紹:
Redis是一種非關係型資料庫 , 是一個高效能的 key-value 資料庫 ,設定的值也是以鍵值對存在的
Redis支援資料的持久化,可以將記憶體中的資料儲存在磁碟中,重啟的時候可以再次載入進行使用
Redis不僅僅支援簡單的key-value型別的資料,同時還提供list,set,zset,hash等資料結構的儲存。
Redis還支援資料備份
Redis的所有操作都是原子性的
Redis支援五種資料型別:string(字串),hash(雜湊),list(列表),set(集合)及zset(sorted
set:有序集合)。
客戶端連線操作:
啟動redis客戶端連線: redis-cli [-h host] [-p port] [-a password ] host是服務端IP port是服務端埠 password是連線密碼 埠port 預設是6379
斷開連線: quit
客戶端連線測試: auth :如果設定了密碼,但連線的時候沒有使用-a password,那麼可以在連線完成後使用auth password來解鎖,解鎖之後才能使用其他 Redis 命令 echo message :列印一個特定的資訊 message ,測試時使用。 ping [message]: 使用客戶端向 Redis 伺服器傳送一個 PING ,如果伺服器運作正常的話,會返回一個 PONG 。通常用於測試與伺服器的連線是否仍然生效,或者用於測量延遲值。如果設定了message,那麼返回值為message。
切換資料庫 select index :切換到指定的資料庫,資料庫索引號 index 用數字值指定,以 0 作為起始索引值。預設使用 0 號資料庫。可以從標識看出當前是哪個資料庫。 :

服務端操作:
資料持久化: snapshot快照持久化:儲存的是所有資料,預設情況下,自動執行快照持久化,儲存檔案為.rbd 如何開啟snapshot記錄功能: 預設開啟的 如何使用: 使用save:SAVE 命令執行一個同步儲存操作,將當前 Redis 例項的所有資料快照(snapshot)以 RDB 檔案的形式儲存到硬碟。一般來說,在生產環境很少執行 SAVE 操作,因為它會阻塞所有客戶端,儲存資料庫的任務通常由BGSAVE 命令非同步地執行。然而,如果負責儲存資料的後臺子程序不幸出現問題時, SAVE 可以作為儲存資料的最後手段來使用。 使用bgsave:與save不同的是會在後臺進行備份,不會堵塞當前所有客戶端。 如何恢復資料: 使用snapshot方式儲存會有一個.rbd檔案(config get dbfilename可獲知是哪個檔案),儲存完畢後將這個檔案複製到外面一份,當需要恢復的時候,關閉redis服務,將.rbd複製回來覆蓋,重啟redis服務即可

AOF日誌記錄型持久化:儲存的是操作日誌 如何開啟aof記錄功能: config set appendonly 「yes」 如何使用: 開啟aof功能後,會自動記錄執行的命令 如何恢復:與rdb恢復資料方式相同,會有一個.aof檔案(config get appendfilename可獲知是哪個檔案,如果不行就看配置檔案),儲存完畢後將這個檔案複製到外面一份,當需要恢復的時候,關閉redis服務,將.aof複製回來覆蓋,重啟redis服務即可

如果rdb檔案,和aof檔案都存在,優先用「AOF"來恢復資料【這個要謹慎使用,有可能因為這個而發生」刪庫「】

恢復時rdb和aof,rdb恢復的快
客戶端管理: 斷開客戶端:CLIENT KILL ip:port 【關閉地址為 ip:port 的客戶端。】 設定客戶端名稱:CLIENT SETNAME connection-name 【為當前連線分配一個名字。】 獲取客戶端名稱:CLIENT GETNAME 【返回 CLIENT SETNAME 命令為連線設定的名字。建立的連線預設是沒有名字的】 獲取客戶端連線資訊:CLIENT LIST 【返回所有連線到伺服器的客戶端資訊和統計資料。】
服務端配置管理: 獲取配置:config get config_setting_name【config_setting_name是配置項名】 設定新配置:config set config_setting_name new_config_value 【new_config_value是新的配置值】
資料管理: 清空所有資料:flushall 清空當前資料庫中的所有 key:flushdb
其他: 獲取時間:time 【返回當前伺服器時間。第一個字串是當前時間(以 UNIX 時間戳格式表示),而第二個字串是當前這一秒鐘已經逝去的微秒數。】

String操作:
String是字串的意思,在redis中就是表示「設定變數的值為一個字串」
設定string: set key value [EX seconds] [PX milliseconds] [NX| XX] :設定鍵值對,無論key是否存在,存在則覆蓋 key:就是設定的鍵名 value:對應的鍵的值,預設為字串,可以加雙引號,也可以不加 ex:設定鍵的過期時間為 seconds 秒 px:與ex不同的是代表多少毫秒失效 nx:只在鍵不存在時,才對鍵進行設定操作 【當使用setnx設定值時預設有nx】 xx:只在鍵已經存在時,才對鍵進行設定操作 setnx key value : 只有在 key 不存在時設定 鍵值對 setex key seconds value: 設定鍵值對的過期時間為seconds 秒 setbit key offset value: 設定對應二進位制的offset位為value【每個字元佔八位,從高位到低位為0-7】 setrange key offset value : 用 value 引數覆蓋給定 key 所儲存的字串值,從偏移量 offset 開始。 mset key value [key value ...]: 同時設定一個或多個 key�value 對。 msetnx key value [key value ...]: 當所有鍵都不存在時,同時設定一個或多個 key�value 對。 只要一個給定 key 已存在, 全部設定操作都會取消(原子性) append key value: 如果 key 已經存在並且是一個字串, append命令將 value 追加到 key 原來的值的末尾。 如果 key 不存在, append就簡單地將給定 key 設為 value ,就像執行 SET key value 一樣 。 如果key不是一個字串,將報錯。

獲取string: get key : 獲取對應鍵的鍵值 mget key [key ...]: 獲取多個鍵的值 getrange key start end :返回 key 中字串值的子字串,字串的擷取範圍為[start , end] getset key newvalue: 返回key的值,並設定key的值為newvalue getbit key offset: 獲取字串所代表的二進位制位的offset數值 strlen key : 獲取key對應字串的長度 bitcount key [start end]: 對應對應字串的二進制中為1的數量

其他操作: decr key: 當字串為數字時,將 key 中儲存的數字值減一,其餘時報錯。如果 key 不存在,那麼 key 的值會先被初始化為 0 ,然後再執行 decr 操作。 decrby key decrement: 與decr key不同的是指定減少數量為decrement。如果 key 不存在,那麼 key 的值會先被初始化為 0 ,然後再執行 decrby 操作。 incr key :當字串為數字時,將 key 中儲存的數字值增一,其餘時報錯。如果 key 不存在,那麼 key 的值會先被初始化為 0 ,然後再執行 incr操作。 incrby key increment :當字串為數字時,將 key 所儲存的值加上增量 increment 。如果 key 不存在,那麼 key 的值會先被初始化為 0 ,然後再執行incrby 命令。 incrbyfloat key increment: 與incrby key increment不同的是,增長的值為浮點數。 bitop operation destkey key [key ...]: 對 一個或多個儲存二進位制位的字串或十六進位制字串或普通字串 key 進行位元操作,並將結果儲存到 destkey 上。 operation可以是and,or,not,xor(異或) 當 bitop 處理不同長度的字串時,較短的那個字串所缺少的部分會被看作 0 。空的 key 也被看作是包含 0 的字串序列

補充: m字首的操作是具有原子性的,只有一個失敗就報錯,比如mset設定多個值,只要一個設定失敗,那麼就會報錯,並全部設定失敗。 並且redis是有資料型別的,操作會檢測資料型別,除去一些能「覆蓋」原變數,忽略原變數型別的操作,其他操作遇到不符合的型別都會報錯

Hash操作:
redis中的hash相當於key只是一個索引值,指向一個雜湊表,它的值是一個域值對(field-value)區域
設定hash: hset key field value: 將雜湊表 key 中的域 field 的值設為 value 。如果 key 不存在,一個新的雜湊表被建立並進行hset操作。如果域 field 已經存在於雜湊表中,舊值將被覆蓋。 hsetnx key field value: 將雜湊表 key 中的域 field 的值設定為 value , 當且僅當域 field 不存在。 hmset key field value [field value ...]: 同時將多個 field�value (域-值)對設定到雜湊表 key 中。
獲取hash: hget key field: 獲取雜湊表中的field的值,只返回值value hgetall key: 獲取雜湊表中的所有field的值,返回值中,奇數行為field,偶數行為value hmget key field [field…]: 返回雜湊表 key 中,一個或多個給定域的值,只返回值value hvals key: 獲取雜湊表中的所有field的值,只返回value hkeys key: 獲取雜湊表中的所有field,只返回field hscan key cursor [MATCH pattern] [COUNT count]: 用於增量地迭代hash cursor是 迭代的開始索引,第一次為0,迭代中第一行返回值為下一次繼續迭代的索引,如果為0代表迭代完畢 Match pattenrn是 匹配field的模式 ,不是value也不是key!! count count是此次迭代的數量 hlen key: 返回雜湊表 key 中域的數量。 hexists key field: 檢視雜湊表 key 中,給定域 field 是否存在。
其他操作: hdel key field [field ...]: 刪除雜湊表 key 中的一個或多個指定域,不存在的域將被忽略。 hincrby key field increment: 如果雜湊表中對應的field為數字,那麼為雜湊表 key 中的域 field 的值加上增量 increment 。如果 key 不存在,一個新的雜湊表被建立並執行 HINCRBY 命令。如果域 field 不存在,那麼在執行命令前,域的值被初始化為 0 。【注,increment可以為負數,所以沒有hdecr】 hincrbyfloat key field increment: 如果雜湊表中對應的field為數字,那麼為雜湊表 key 中的域 field 的值加上浮點數增量 increment 。如果 key 不存在,一個新的雜湊表被建立並執行 HINCRBY 命令。如果域 field 不存在,那麼在執行命令前,域的值被初始化為 0 。【注,值和增量可以為指數符號如5.0e3】

List操作:
代表key的值為一個列表,可以有多個元素
List中左邊為頭,右邊為尾
設定list: lpush key value [value ...] : 將一個或多個值 value 插入到列表 key 的表頭, 多個值插入時,後面插入的值在表頭,也就是說會從左邊把一個個值往右邊壓,最後面的值作為表頭。 rpush key value [value ...] : 將一個或多個值 value 插入到列表 key 的表尾(最右邊)。 多個值插入時,最後面的的值作為表尾。 rpushx key value : 將值 value 插入到列表 key 的表尾, 當且僅當 key 存在並且是一個列表 ,否則不執行任何操作。 lrange key start stop : 返回列表 key 中 指定區間[start,stop](這是一個[閉 區間]) 內的元素。可以用-1來代表最後一個元素 lset key index value : 將列表 key 下標為 index 的元素的值設定為 value 。 當 index 引數超出範圍,或對一個空列表( key 不存在)進行 LSET 時,返回一個錯誤。 linsert key before|after pivot value : 將值 value 插入到列表 key 當中,位於值 pivot (注意pivot是一個值value) 之前(before)或之後(after)。 當 pivot 不存在於列表 key 時,不執行任何操作。當 key 不存在時, key 被視為空列表,不執行任何操作。如果 key 不是列表型別,返回一個錯誤。

獲取list: lpop key : 移除並返回列表 key 的頭元素 rpop key : 移除並返回列表 key 的尾元素。 blpop : 是 LPOP 命令的阻塞版本,當給定列表內沒有任何元素可供彈出的時候,連線將被 BLPOP 命令阻塞,直到等待超時或發現可彈出元素為止(可以使用另外一個客戶端來新增元素)。 當給定多個 key 引數時,按引數 key 的先後順序依次檢查各個列表,彈出第一個非空列表的頭元素。 brpop : 是 RPOP 命令的阻塞版本,當給定列表內沒有任何元素可供彈出的時候,連線將被 BRPOP 命令阻塞,直到等待超時或發現可彈出元素為止(可以使用另外一個客戶端來新增元素)。 當給定多個 key 引數時,按引數 key 的先後順序依次檢查各個列表,彈出第一個非空列表的尾元素。
rpoplpush source destination : 將source的尾元素取出來放到destination的表頭 lindex key index : 返回列表 key 中,下標為 index 的元素。如果 key 不是列表型別,返回一個錯誤。 llen key : 返回列表 key 的長度。如果 key 不存在,則 key 被解釋為一個空列表,返回 0 .如果 key 不是列表型別,返回一個錯誤。
其他操作: ltrim key start stop : 對一個列表進行修剪(trim),就是說,讓列表只保留指定區間內( 為閉區間 )的元素,不在指定區間之內的元素都將被刪除。

補充:
m字首的操作是具有原子性的,只有一個失敗就報錯,比如mset設定多個值,只要一個設定失敗,那麼就會報錯,並全部設定失敗。
並且redis是有資料型別的,操作會檢測資料型別,除去一些能「覆蓋」原變數,忽略原變數型別的操作,其他操作遇到不符合的型別都會報錯
Set操作:
代表key的值為一個集合,集合中元素不可以重複
設定set: sadd key member [member ...] : 將一個或多個 member 元素加入到集合 key 當中,已經存在於集合的 member 元素將被忽略。假如 key 不存在,則建立一個只包含 member 元素作成員的集合。 當 key 不是集合型別時,返回一個錯誤。

獲取set:
scard key : 返回集合的元素個數
: 返回集合的元素個數
spop key :移除並返回集合中的一個隨機元素。

smembers key :返回集合 key 中的所有成員。不存在的 key 被視為空集合。
:返回集合 key 中的所有成員。不存在的 key 被視為空集合。 srandmember key [count] : 如果命令執行時,只提供了 key 引數,那麼返回集合中的count個隨機元素。
: 如果命令執行時,只提供了 key 引數,那麼返回集合中的count個隨機元素。 如果 count 為正數,且小於集合基數,那麼命令返回一個包含 count 個元素的陣列,陣列中的元
素各不相同。如果 count 大於等於集合基數,那麼返回整個集合。
如果 count 為負數,那麼命令返回一個陣列,陣列中的元素可能會重複出現多次,而陣列的長度
為 count 的絕對值。
其他操作: sscan key cursor [MATCH pattern] [COUNT count] : 用於增量地迭代set cursor是 迭代的開始索引,第一次為0,迭代中第一行返回值為下一次繼續迭代的索引,如果為0代表迭代完畢 Match pattenrn是 匹配set中元素的模式 count count是此次迭代的數量 smove source destination member :將 member 元素從 source 集合移動到 destination 集合。如果 source 集合不存在或不包含指定的 member 元素,則 SMOVE 命令不執行任何操作,僅返回 0 。否則, member 元素從 source 集合中被移除,並新增到 destination 集合中去。 sdiff key [key ...]: 返回給定集合之間的差集 sdiffstore destination key [key ...]: 返回給定集合之間的差集,並儲存到destination中,如果 destination 集合已經存在,則將其覆蓋。destination 可以是 key 本身。 sinter key [key ...]: 返回所有給定集合的交集 sinter destination key [key ...]: 返回給定集合之間的交集,並儲存到destination中,如果 destination 集合已經存在,則將其覆蓋。destination 可以是 key 本身。 sismember key member: 判斷 member 元素是否集合 key 的成員。 srem key member [member ...]: 移除集合 key 中的一個或多個 member 元素,不存在的 member 元素會被忽略。當 key 不是集合型別,返回一個錯誤。 sunion key [key…] : 返回所有給定集合的並集。不存在的 key 被視為空集。 sunionstore destination key [key…] :返回所有給定集合的並集,不存在的 key 被視為空集,將返回的結果儲存到 destination 集合.如果 destination 已經存在,則將其覆蓋。destination 可以是 key 本身。

補充:
redis是有資料型別的,操作會檢測資料型別,除去一些能「覆蓋」原變數,忽略原變數型別的操作,其他操作遇到不符合的型別都會報錯
Sort Set操作:
Sort set代表是一個有序集合,score決定著元素的順序,一般score小的在前面
設定sort set: zadd key [NX|XX] [CH] [INCR] score member [score member ...] : 將一個或多個 member 元素及其 score 值加入到有序集 key 當中。 scrore是元素的權重,決定著元素的順序 nx:是member不存在才新增,已存在則不作操作 xx:是member已經存在才新增 ch:修改返回值為發生變化的成員總數,原始是返回新新增成員的總數 incr:當 ZADD 指定這個選項時,成員的操作就等同zincrby命令,可以對已有成員的分數進行增加操作。

獲取sort set: zrange key start stop [WITHSCORES] :返回有序集 key 中,指定區間內的成員。其中成員的位置按 score 值遞增(從小到大)來排序。 withscores代表是否同時返回score zrangebyscore key min max [WITHSCORES] [LIMIT offset count]: 返回有序集 key 中,所有 score 值介於 min 和 max 之間(包括等於 min 或 max )的成員。有序整合員按score 值遞增(從小到大)次序排列。 zrevrange key start stop [WITHSCORES]: 返回有序集 key 中,指定區間內的成員。 ZREVRANGEBYSCORE key max min [WITHSCORES] [LIMIT offset count]: 返回有序集 key 中, score 值介於 max 和 min 之間(預設包括等於 max 或 min )的所有的成員。有序整合員按 score 值遞減(從大到小)的次序排列。 zrank key member :返回有序集 key 中成員 member 的排名。 zcard key: 返回有序集合的元素個數 zscore key member : 返回有序集 key 中,成員 member 的 score 值。如果 member 元素不是有序集 key 的成員,或 key 不存在,返回 nil 。 zrevrank key member : 返回有序集 key 中成員 member 的排名。其中有序整合員按 score 值遞減(從大到小)排序。排名以 0 為底,也就是說, score 值最大的成員排名為 0 。 zcount key min max :返回有序集 key 中, score 值在[min,max]之間的成員的數量。

其他操作:
zrem key member [member ...] : 移除有序集 key 中的一個或多個成員,不存在的成員將被忽略。當 key 存在但不是有序集型別時,返回一個錯誤。
移除有序集 key 中的一個或多個成員,不存在的成員將被忽略。當 key 存在但不是有序集型別時,返回一個錯誤。
zincrby key increment member : 為有序集 key 的成員 member 的 score 值加上增量 increment 。可以透過傳遞一個負數值 increment ,讓 score 減去相應的值,比如 ZINCRBY key �5 member ,就是讓member 的 score 值減去 5 。當 key 不存在,或 member 不是 key 的成員時, ZINCRBY key increment member 等同於ZADD key increment member 。當 key 不是有序集型別時,返回一個錯誤。score 值可以是整數值或雙精度浮點數。
為有序集 key 的成員 member 的 score 值加上增量 increment 。可以透過傳遞一個負數值 increment ,讓 score 減去相應的值,比如 ZINCRBY key �5 member ,就是讓member 的 score 值減去 5 。當 key 不存在,或 member 不是 key 的成員時, ZINCRBY key increment member 等同於ZADD key increment member 。當 key 不是有序集型別時,返回一個錯誤。score 值可以是整數值或雙精度浮點數。
ZREMRANGEBYRANK key start stop: 移除有序集 key 中,指定排名(rank)區間內的所有成員。區間分別以下標引數 start 和 stop 指出,包含 start 和 stop 在內。下標引數 start 和 stop 都以 0 為底,也就是說,以 0 表示有序集第一個成員,以 1 表示有序集第二個成員,以此類推。你也可以使用負數下標,以 �1 表示最後一個成員, �2 表示倒數第二個成員,以此類推。
移除有序集 key 中,指定排名(rank)區間內的所有成員。區間分別以下標引數 start 和 stop 指出,包含 start 和 stop 在內。下標引數 start 和 stop 都以 0 為底,也就是說,以 0 表示有序集第一個成員,以 1 表示有序集第二個成員,以此類推。你也可以使用負數下標,以 �1 表示最後一個成員, �2 表示倒數第二個成員,以此類推。
ZREMRANGEBYSCORE key min max: 移除有序集 key 中,所有 score 值介於 min 和 max 之間(包括等於 min 或 max )的成員。
移除有序集 key 中,所有 score 值介於 min 和 max 之間(包括等於 min 或 max )的成員。
zunionstore destination numkeys key [key ...] [weights weight [weight ...]][AGGREGATE SUM|MIN|MAX]: 計算給定的一個或多個有序集的並集,其中給定 key 的數量必須以 numkeys 引數指定,並將該並集(結果集)儲存到 destination 。預設情況下,結果集中某個成員的 score 值是所有給定集下該成員 score 值之 和 。
計算給定的一個或多個有序集的並集,其中給定 key 的數量必須以 numkeys 引數指定,並將該並集(結果集)儲存到 destination 。預設情況下,結果集中某個成員的 score 值是所有給定集下該成員 score 值之 和 。
zinterstore destination numkeys key [key ...] [WEIGHTS weight [weight ...]] [AGGREGATE SUM|MIN|MAX]: 計算給定的一個或多個有序集的交集,其中給定 key 的數量必須以 numkeys 引數指定,並將該交集(結果集)儲存到 destination 。預設情況下,結果集中某個成員的 score 值是所有給定集下該成員 score 值之和.
計算給定的一個或多個有序集的交集,其中給定 key 的數量必須以 numkeys 引數指定,並將該交集(結果集)儲存到 destination 。預設情況下,結果集中某個成員的 score 值是所有給定集下該成員 score 值之和.
zscan key cursor [MATCH pattern] [COUNT count]: cursor是 迭代的開始索引,第一次為0,迭代中第一行返回值為下一次繼續迭代的索引,如果為0代表迭代完畢 Match pattenrn是 匹配sort set中元素的模式 count count是此次迭代的數量

key操作:
查詢鍵: exists key: 檢測鍵是否存在 type key :檢測鍵對應的值的型別 keys pattern: 查詢所有符合給定模式 pattern 的 key 。比如 keys *代表獲取所有鍵 ttl key: 以秒為單位,返回給定 key 的剩餘生存時間 PTTL key: 以毫秒為單位返回 key 的剩餘生存時間 RANDOMKEY: 從當前資料庫中隨機返回(不刪除)一個 key 。

刪除鍵: del key :當鍵存在時,刪除鍵

鍵的排序: sort key [BY pattern] [LIMIT offset count] [GET pattern [GET pattern ...]] [ASC | DESC]
[ALPHA] [STORE destination]: 返回或儲存給定列表、集合、有序集合 key 中經過排序的元素。排序預設以數字作為物件,值被解釋為雙精度浮點數,然後進行比較。

鍵的設定: EXPIRE key seconds: 為給定 key 設定生存時間,當 key 過期時(生存時間為 0 ),它會被自動刪除。 EXPIREAT key timestamp: EXPIREAT 的作用和 EXPIRE 類似,都用於為 key 設定生存時間。不同在於 EXPIREAT 命令接受的時間引數是 UNIX 時間戳(unix timestamp)。 PEXPIREAT key milliseconds-timestamp: 它以毫秒為單位設定 key 的過期 unix 時間戳 RENAME key newkey: 將 key 改名為 newkey 。當 key 和 newkey 相同,或者 key 不存在時,返回一個錯誤。當 newkey 已經存在時, RENAME 命令將覆蓋舊值。 RENAMENX key newkey: 當且僅當 newkey 不存在時,將 key 改名為 newkey 。當 key 不存在時,返回一個錯誤。

DUMP key: 序列化給定 key ,並返回被序列化的值,使用 restore 命令可以將這個值反序列化為 Redis 鍵。序列化生成的值有以下幾個特點:它帶有 64 位的校驗和,用於檢測錯誤, RESTORE 在進行反序列化之前會先檢查校驗和。值的編碼格式和 RDB 檔案保持一致。RDB 版本會被編碼在序列化值當中,如果因為 Redis 的版本不同造成 RDB 格式不相容,那麼Redis 會拒絕對這個值進行反序列化操作。序列化的值不包括任何生存時間資訊。
序列化給定 key ,並返回被序列化的值,使用 restore 命令可以將這個值反序列化為 Redis 鍵。序列化生成的值有以下幾個特點:它帶有 64 位的校驗和,用於檢測錯誤, RESTORE 在進行反序列化之前會先檢查校驗和。值的編碼格式和 RDB 檔案保持一致。RDB 版本會被編碼在序列化值當中,如果因為 Redis 的版本不同造成 RDB 格式不相容,那麼Redis 會拒絕對這個值進行反序列化操作。序列化的值不包括任何生存時間資訊。
restore key ttl serialized-value [REPLACE]: 反序列化給定的序列化值,並將它和給定的 key 關聯。引數 ttl 以毫秒為單位為 key 設定生存時間;如果 ttl 為 0 ,那麼不設定生存時間。RESTORE 在執行反序列化之前會先對序列化值的 RDB 版本和資料校驗和進行檢查,如果 RDB 版本不相同或者資料不完整的話,那麼 RESTORE 會拒絕進行反序列化,並返回一個錯誤。如果鍵 key 已經存在, 並且給定了 REPLACE 選項, 那麼使用反序列化得出的值來代替鍵 key 原有的值; 相反地, 如果鍵 key 已經存在, 但是沒有給定 REPLACE 選項, 那麼命令返回一個錯誤。
反序列化給定的序列化值,並將它和給定的 key 關聯。引數 ttl 以毫秒為單位為 key 設定生存時間;如果 ttl 為 0 ,那麼不設定生存時間。RESTORE 在執行反序列化之前會先對序列化值的 RDB 版本和資料校驗和進行檢查,如果 RDB 版本不相同或者資料不完整的話,那麼 RESTORE 會拒絕進行反序列化,並返回一個錯誤。如果鍵 key 已經存在, 並且給定了 REPLACE 選項, 那麼使用反序列化得出的值來代替鍵 key 原有的值; 相反地, 如果鍵 key 已經存在, 但是沒有給定 REPLACE 選項, 那麼命令返回一個錯誤。
PERSIST key: 移除給定 key 的生存時間
鍵的移動: migrate host port key destination-db timeout [COPY] [REPLACE]: 將 key 原子性地從當前例項傳送到目標例項的指定資料庫上,一旦傳送成功, key 保證會出現在目標例項上,而當前例項上的 key 會被刪除。這個命令是一個原子操作,它在執行的時候會阻塞進行遷移的兩個例項,直到以下任意結果發生:遷移成功,遷移失敗,等到超時。 move key db: 將當前資料庫的 key 移動到給定的資料庫 db 當中。如果當前資料庫(源資料庫)和給定資料庫(目標資料庫)有相同名字的給定 key ,或者 key 不存在於當前資料庫,那麼 MOVE 沒有任何效果

釋出/訂閱:
訂閱可以使多個客戶端等待同一資訊,釋出可以使服務端向多個特定客戶端傳送資訊
就像收音機一樣,只要收音機調到指定的頻道channel,就可以收聽到電臺的資訊
而電臺可以向所有收聽它的收音機傳送資訊
新的使用者,不會收聽到之前的訊息
訂閱頻道: psubscirbe pattern [pattern ...]: 客戶端訂閱一個或多個符合給定模式的頻道 subscirbe channel [channel ...]: 訂閱給定的一個或多個頻道的資訊。 【上述兩個的區別就是pattern可以模式匹配】

傳送訊息: publish channel message: 將資訊 message 傳送到指定的頻道 channel 。返回值是收到message的訂閱者數量

退訂頻道: un psubscirbe [channel [channel ...]]: 指示客戶端退訂給定的頻道。 punsubscirbe [pattern [pattern ...]]: 指示客戶端退訂所有給定模式。 【上述兩個的區別就是pattern可以模式匹配】

頻道查詢: pubsub numpat: 客戶端訂閱的所有模式的數量總和。 pubsub channels [pattern]: 列出當前的活躍頻道。活躍頻道指的是那些至少有一個訂閱者的頻道, 訂閱模式的客戶端不計算在內。 pubsub numsub [channel-1 ... channel-N]: 返回給定頻道的訂閱者數量, 訂閱模式的客戶端不計算在內。

事務
開啟事務: multi :標記一個事務塊的開始。事務塊內的多條命令會按照先後順序被放進一個佇列當中,最後由 EXEC 命令原子性(atomic)地執行。

監控: watch key [key …]: 監視一個(或多個) key ,如果在事務執行exec之前這個(或這些) key 被其他命令所改動,那麼事務將被打斷。 unwatch :取消 WATCH 命令對所有 key 的監視。

執行事務塊: exec :執行所有事務塊內的命令。

取消事務: discard :取消事務,放棄執行事務塊內的所有命令。同時也會取消watch對所有key的監視


[f2h0b53ohn ] redis操作學習記錄已經有138次圍觀

http://coctec.com/docs/developer/show-post-232638.html