Redis其餘知識

Redis發佈訂閱(pub/sub)是一種消息通訊模式:發送者(pub)發送消息,訂閱者(sub)接收消息redis

Redis客戶端能夠訂閱任意數量的頻道數據庫

發佈訂閱(PUB/SUB)命令數組

PSUBSCRIBE  pattern緩存

訂閱一個或多個符合給定模式的頻道安全

PUBSUB  subcommand服務器

查看訂閱與發佈系統狀態網絡

PUBLISH  channel  message併發

將消息發送到指定的頻道異步

PUNSUBSCRIBE  patternsocket

退訂全部給定模式的頻道

SUBSCRIBE  channel

訂閱給定的一個或多個頻道的信息

UNSUBSCRIBE  channel

指退訂給定的頻道

Redis事務

Redis事務一次能夠執行多個命令,而且帶有如下三個保證:

           一、批量操做在發送EXEC命令前被放入隊列緩存

            二、收到EXEC命令後進入事務執行,事務中任意命令執行失敗,其他的命令依賴被執行

            三、在事務執行過程,其餘客戶端提交的命令請求不會插入到事務執行命令序列中

一個事務從開始到執行會經歷:一、開始事務,二、命令入隊,三、執行事務。

Redis事務的執行並非原子性的。

事務可理解爲一個打包的批量執行腳本,但批量指令並不是原子化的操做,中間某條指令的失敗不會致使前面已作指令的回滾,也不會形成後續的指令不作。

Redis事務

DISCARD

取消事務,放棄執行事務塊內的全部命令

EXEC

執行全部事務塊內的命令

MULTI

標記一個事務塊的開始

UNWATCH

取消watch命令對全部能夠的監視

WATCH key

監視一個或多個key

Redis腳本

Redis腳本使用Lua解釋器來執行腳本。執行腳本的經常使用命令爲EVAL

Redis腳本

EVAL  script  numkeys key

執行Lua腳本

EVALSHA  sha1 numkeys key

執行Lua腳本

SCRIPT  EXISTS script

查看指定的腳本是否已經被保存在緩存當中

SCRIPT  FLUSH

從腳本緩存中移除全部腳本

SCRIPT  KILL

殺死當前正在運行的Lua腳本

SCRIPT  LOAD script

將腳本script添加到腳本緩存中,但並不當即執行這個腳本

Redis鏈接命令主要用於鏈接redis服務

Redis鏈接命令

AUTH password

驗證密碼是否正確

ECHO message

打印字符串

PING

查看服務是否運行

QUIT

關閉當前鏈接

SELECT index

切換到指定的數據庫

Redis服務器

Redis服務器主要用於管理redis服務

Redis服務器命令

BGREWIRTEAOF

異步執行一個AOF文件重寫操做

BGSAVE

在後臺異步保存當前數據庫的數據到磁盤

CLIENT KILL

關閉客戶端鏈接

CLIENT LIST

獲取鏈接到服務器的客戶端鏈接列表

CLIENT GETNAME

獲取鏈接的名稱

CLIENT PAUSE  timeout

在指定時間內終止運行來自客戶端的命令

CLIENT SETNAME connection-name

設置當前鏈接的名稱

CLUSTER SLOTS

獲取集羣節點的映射數據

COMMAND

獲取redis命令詳情數組

COMMAND COUNT

獲取redis命令總數

COMMAND GETKEYS

獲取給定命令的全部鍵

TIME

返回當前服務器的時間

CONFIG GET parameter

獲取指定配置參數的值

CONFIG REWRITE

對啓動Redis服務器時所指定的redis.conf配置文件進行改寫

CONFIG SET parameter value

修改redis配置參數,無需重啓

CONFIG  RESETSTAT

重置INFO命令中的某些統計數據

DBSIZE

返回當前數據庫的key的數量

DEBUG  OBJECT KEY

獲取key的調試信息

DEBUG  SEGFAULT

讓Redis服務崩潰

FLUSHALL

刪除全部數據庫的全部key

FLUSHDB

刪除當前數據庫的全部key

INFO

獲取redis服務器的各類信息和統計數量

LASTSAVE

返回最近一次redis成功將數據保存到磁盤上的時間

MONITOR

實時打印出Redis服務器接收到的命令,調試用

ROLE

返回主從實例所屬的角色

SAVE

同步保存數據到硬盤

SHUTDOWN  [NOSAVE][SAVE]

異步保存數據到硬盤,並關閉服務器

SLAVEOF host port

將當前服務器變爲指定服務器的從屬服務器(slave server)

SLOWLO subcommand

管理redis的慢日誌

Redis數據備份與恢復

Redis SAVE 命令用於建立當前數據庫的備份:該命令將在redis安裝目錄中建立dump.rdb文件

恢復數據:只需將備份文件(dump.rdb)移動到redis安裝目錄並啓動服務便可    ,獲取redis目錄可使用CONFIG  GET 

建立redis備份文件也可使用命令BGSAVE,在後臺運行

Redis安全

redis的配置文件設置密碼參數,客戶端鏈接到redis服務就須要驗證,讓redis服務更安全

查看是否設置了密碼驗證:CONFIG  GET  requirepass(默認狀況requirepass參數是空的,能夠無需經過密碼驗證就能夠鏈接到redis服務)

設置密碼 :    CONFIG  SET  requirepass   "redis"

獲取密碼:CONFIG  GET  requirepass

設置密碼後,客戶端鏈接redis服務器就須要密碼驗證,不然沒法執行命令。

Redis性能測試

redis性能測試是經過同時執行多個命令實現的。

redis性能測試基本命令:redis-benchmark   [option]   [option  value]        (該命令是在redis目錄下執行,而不是redis客戶端的內部命令)

同時執行10000個請求來檢測性能:redis-benchmark   -n  -10000   -q

redis性能測試工具

-h

指定服務器主機名

127.0.0.1

-p

指定服務器端口

6379

-s

指定服務器socket

 

-c

指定併發鏈接數

50

-n

指定請求數

10000

-d

以字節的形式指定set/get值的數據大小

2

-k

1=keep  alive   0=reconnect

1

-r

Set/get/incr 使用隨機key

 

-p

經過管道傳輸

1

-q

強制退出redis,僅顯示query/sec值

 

-csv

以csv格式輸出

 

-l

生成循環,永久執行測試

 

Redis客戶端鏈接

Redis經過監聽一個TCP端口或者Unix socket的方式來接收來自客戶端的鏈接

Redis客戶端最大鏈接數maxclients的默認值是10000,也可在redis.conf進行修改      config     get   maxclients

Redis客戶端命令

CLIENT  LIST

返回鏈接到redis服務的客戶端列表

CLIENT SETNAME

設置當前鏈接的名稱

CLIENT GETNAME

獲取經過CLIENT SETNAME命令設置的服務名稱

CLIENT PAUSE

掛起客戶端鏈接,指定掛起的時間以毫秒計

CLIENT KILL

關閉客戶端鏈接

Redis管道技術

Redis是一種基於客戶端--服務端模型以及請求/響應協議的TCP服務

步驟:一、客戶端向服務端發送一個查詢請求,並監聽Socket返回,一般是以阻塞模式,等待服務端響應。

             二、服務端處理命令,並將結果返回給客戶端

Redis管道技術能夠在服務端未響應時,客戶端能夠繼續向服務端發送請求,並最終一次性讀取全部服務端的響應。

管道技術是最顯著的優點是提升了redis服務的性能。

Redis分區:分割數據到多個Redis實例的處理過程,所以每一個實例只保存key的一個子集

分區的優點:利用計算機內存的和值,容許咱們構造更大的數據庫。多核和多臺計算機,容許咱們擴展計算能力,經過多臺計算機和網絡適配器,容許擴展網絡帶寬。

分區類型:範圍分區:映射必定範圍的對象到特定的redis實例

哈希分區:對任何key都適用

相關文章
相關標籤/搜索