認(rèn)證實(shí)現(xiàn)方法
兩種方法實(shí)現(xiàn):
- 修改'redis.conf'文件
requirepass [password] - 使用redis-cli
AUTH [password]
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
- 服務(wù)器自身初始化,運(yùn)行redis-server中專用于sentinel功能的代碼;
- 初始化sentinel狀態(tài), 根據(jù)給定的配置jin文件,初始化監(jiān)控的master服務(wù)器列表;
- 創(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ù)
常用的分布式軟件
- Twemproxy(Twitter) 代理分片機(jī)制
- codis(豌豆莢) 代理分片機(jī)制
- redis cluster(官方) 無中心的p2p Gossip分散式模式
- Cerberus(芒果TV) 數(shù)據(jù)自動(dòng)平衡,支持讀寫分離