本文實例總結了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 號數據庫??梢詮臉俗R看出當前是哪個數據庫。

:
服務端操作:
-
數據持久化:
-
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 的客戶端?!?/p>
-
設置客戶端名稱:CLIENT SETNAME connection-name 【為當前連接分配一個名字?!?/p>
-
獲取客戶端名稱:CLIENT GETNAME 【返回 CLIENT SETNAME 命令為連接設置的名字。創建的連接默認是沒有名字的】
-
獲取客戶端連接信息:CLIENT LIST 【返回所有連接到服務器的客戶端信息和統計數據?!?/p>
-
服務端配置管理:
-
數據管理:
-
清空所有數據:flushall
-
清空當前數據庫中的所有 key:flushdb
-
其他:
String操作:
String是字符串的意思,在redis中就是表示“設置變量的值為一個字符串”