redis高級應(yīng)用

認(rèn)證實(shí)現(xiàn)方法

兩種方法實(shí)現(xiàn):

  1. 修改'redis.conf'文件
    requirepass [password]
  2. 使用redis-cli
    AUTH [password]

redis命令手冊

redis命令手冊

事務(wù)的實(shí)現(xiàn)

通過MULTI, EXEC, WATCH命令來實(shí)現(xiàn):將一個(gè)或者多個(gè)命令并為一個(gè)操作請求服務(wù)器順序執(zhí)行的的機(jī)制;
不支持回滾操作;

MULTI: 啟動(dòng)一個(gè)事務(wù)
EXEC: 執(zhí)行事務(wù): 一次性將事務(wù)中的所有操作執(zhí)行完成后返回給客戶端.
WATCH:樂觀鎖,在exec命令執(zhí)行之前,用于見識指定數(shù)量鍵,如果見識中的某任意鍵數(shù)據(jù)被修改,則服務(wù)器拒絕執(zhí)行事務(wù);

Connection相關(guān)命令

AUTH
ECHO
PING
QUIT
SELECT

Sever相關(guān)命令

CLIENT SETNAME
CLIENT GETNAME
CLIENT kill ip:port
CONFIG GET
INFO
CONFIG INFO

發(fā)布與訂閱(publish/subscribe)

頻道; 消息隊(duì)列

subscribe: 訂閱一個(gè)或多個(gè)頻道;
publish: 向頻道發(fā)布消息;
unsubscribe:退訂頻道;
psubscribe:模式訂閱

Redis的持久化

  • RDB snapshot, 二進(jìn)制格式; 按照實(shí)現(xiàn)定制的策略,周期性的將數(shù)據(jù)保存至磁盤,數(shù)據(jù)文件默認(rèn)為'dump.rdb';客戶端也可以顯示的使用save命令或者BGSAVE命令啟動(dòng)快照保存機(jī)制;
    SAVE: 同步,在主線程中保存快照; 此時(shí)回阻塞所有客戶端請求;
    BGSAVE: 異步

  • AOF Append Only File, 記錄每一次寫操作至指定的文件尾部試下持久化: 當(dāng)redis重啟時(shí), 可通過重新執(zhí)行文件中的命令在內(nèi)存重建數(shù)據(jù)庫;
    BGREWRITEAOF: AOF文件重寫; 不會(huì)讀取正在使用額AOF文件,而通過將內(nèi)存中的數(shù)據(jù)的方式保存到臨時(shí)文件中,完成后踢館原來的AOF文件;

主從復(fù)制

特點(diǎn):

  • 一個(gè)Master可以有多個(gè)Slave
  • 支持鏈?zhǔn)綇?fù)制
  • Master以非阻塞方式同步數(shù)據(jù)至Slave

復(fù)制過程:
啟動(dòng)一個(gè)slave以后,slave會(huì)向master發(fā)送一個(gè)sync command,請求同步數(shù)據(jù),master啟動(dòng)一個(gè)后臺子進(jìn)程將數(shù)據(jù)快照保存在數(shù)據(jù)文件中,將數(shù)據(jù)文件發(fā)送給slave,slave收到數(shù)據(jù)文件保存在本地,然后在將數(shù)據(jù)文件裝載到內(nèi)存中.

sentinel:

用于監(jiān)控多個(gè)redis服務(wù)實(shí)現(xiàn)HA: 監(jiān)控 通知 自動(dòng)故障轉(zhuǎn)移, 基于留言協(xié)議, 投票協(xié)議;

redis-setinel /path/to/file.conf
redis-server /path/to/file.conf --sentinel
  1. 服務(wù)器自身初始化,運(yùn)行redis-server中專用于sentinel功能的代碼;
  2. 初始化sentinel狀態(tài), 根據(jù)給定的配置jin文件,初始化監(jiān)控的master服務(wù)器列表;
  3. 創(chuàng)建連向master的鏈接;

主觀下線,客觀下線:
主觀下線: 一個(gè)sentinel實(shí)例判斷出某給節(jié)點(diǎn)下線
客觀下線: 多個(gè)sentinel節(jié)點(diǎn)協(xié)商后判斷出某個(gè)節(jié)點(diǎn)下線

Clustering

分布式數(shù)據(jù)庫, 通過分片機(jī)制進(jìn)行數(shù)據(jù)分布,clustering內(nèi)的每個(gè)幾點(diǎn)僅數(shù)據(jù)庫一部分的數(shù)據(jù);
每個(gè)節(jié)點(diǎn)持有全局元數(shù)據(jù),但僅持有部分?jǐn)?shù)據(jù)

常用的分布式軟件

  1. Twemproxy(Twitter) 代理分片機(jī)制
  2. codis(豌豆莢) 代理分片機(jī)制
  3. redis cluster(官方) 無中心的p2p Gossip分散式模式
  4. Cerberus(芒果TV) 數(shù)據(jù)自動(dòng)平衡,支持讀寫分離
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容