欧美free性护士vide0shd,老熟女,一区二区三区,久久久久夜夜夜精品国产,久久久久久综合网天天,欧美成人护士h版

目錄

柚子快報(bào)邀請(qǐng)碼778899分享:數(shù)據(jù)庫(kù) 緩存 redis瘦身版

柚子快報(bào)邀請(qǐng)碼778899分享:數(shù)據(jù)庫(kù) 緩存 redis瘦身版

http://yzkb.51969.com/

線程模型

純內(nèi)存操作/非阻塞io多路復(fù)用/單線程避免多線程頻繁上下文切換

? ? ?基于Reactor模式開發(fā)了網(wǎng)絡(luò)事件處理器:文件事件處理器,單線程的 io多路監(jiān)聽多個(gè)socket,據(jù)socket事件類型選擇對(duì)應(yīng)的處理器,高性能網(wǎng)絡(luò)通信模型,可其他單線程對(duì)接 簡(jiǎn)單性

? ? 文件事件處理器:多個(gè)socket? io多路復(fù)用? 文件事件分派器? 事件處理器

? ? io多路復(fù)用監(jiān)聽多個(gè)socket,將socket放入隊(duì)列排隊(duì),每次從隊(duì)列中取出socket給事件分派器,給對(duì)應(yīng)事件處理器,處理完,io多路復(fù)用將隊(duì)列下一個(gè)socket給事件分派器

reactor

?synchronous event demultiplexer:同步事件分離器,監(jiān)聽各種事件,調(diào)用方調(diào)用監(jiān)聽方法的時(shí)候會(huì)被阻塞 直到有事件發(fā)生

handler:文件描述符,簡(jiǎn)單理解一個(gè)一個(gè)事件?

event handler:事件處理器,回調(diào)方法,事件發(fā)生 據(jù)handler調(diào)用對(duì)應(yīng)的回調(diào)方法? 自己實(shí)現(xiàn)方法

步驟:

高可用:

? 主從

? ? 哨兵:sentinel: 集群監(jiān)控 消息通知 故障轉(zhuǎn)移 配置中心

redis cluster :livu livechat中使用了

?人家有槽slot 16384個(gè)呢?請(qǐng)求發(fā)送任意節(jié)點(diǎn) 該節(jié)點(diǎn)會(huì)將請(qǐng)求發(fā)送到正確節(jié)點(diǎn)上-相親相愛

? ? 1.哈希的方式,將數(shù)據(jù)分片 每個(gè)節(jié)點(diǎn)均分存儲(chǔ)一定哈希槽區(qū)間的數(shù)據(jù)

? ? 2.每份數(shù)據(jù)分片會(huì)存儲(chǔ)在多個(gè)互為主從的多節(jié)點(diǎn)上

? ? 3.先寫主節(jié)點(diǎn)再同步從節(jié)點(diǎn)

? ? 4.讀取數(shù)據(jù),當(dāng)客戶端操作的key沒(méi)有分配在該節(jié)點(diǎn),返回轉(zhuǎn)向指令,指向正確節(jié)點(diǎn)

? ? 5.擴(kuò)容時(shí)需要把舊節(jié)點(diǎn)的數(shù)據(jù)遷移一部分到新節(jié)點(diǎn)

? ? 6.每個(gè)redis放開兩個(gè)端口,6379 16379,16379節(jié)點(diǎn)間通信,cluster bus,故障檢測(cè)/轉(zhuǎn)移

? ? 7.cluster bus用gossip二進(jìn)制協(xié)議,節(jié)點(diǎn)間高效數(shù)據(jù)交換,占用更少的網(wǎng)絡(luò)帶寬和處理時(shí)間

優(yōu)缺點(diǎn):誰(shuí)還能沒(méi)點(diǎn)缺

無(wú)中心架構(gòu),支持動(dòng)態(tài)擴(kuò)容,對(duì)業(yè)務(wù)透明

自備sentinel監(jiān)控和自動(dòng)failover故障轉(zhuǎn)移能力

高性能,直連redis服務(wù) 免去proxy損耗

有點(diǎn)缺:人無(wú)完人 redis無(wú)完美? 怎么說(shuō):反正有缺點(diǎn)但是值得

? ? 運(yùn)維復(fù)雜 數(shù)據(jù)遷移需要人工 只能使用0號(hào)數(shù)據(jù)庫(kù) 不支持批量操作 分布式邏輯和存儲(chǔ)模塊耦合

redis sharding:你可以不看? 讓我自己卷

多redis實(shí)例集群,采用哈希算法將redis的key進(jìn)行散列,映射到特定的redis節(jié)點(diǎn)

? ?簡(jiǎn)單,服務(wù)端redis實(shí)例彼此獨(dú)立,相互無(wú)關(guān)聯(lián),每個(gè)redis實(shí)例像單服務(wù)器一樣 線性擴(kuò)展

? ?不支持動(dòng)態(tài)刪增節(jié)點(diǎn),服務(wù)器redis實(shí)例群拓?fù)浣Y(jié)構(gòu)變化,每個(gè)客戶更新調(diào)整 連接不共享?

三大熱門問(wèn)題:

還行 咱家項(xiàng)目設(shè)計(jì)穩(wěn)穩(wěn)當(dāng)當(dāng) 上學(xué)的時(shí)候遇到過(guò)一次

緩存穿透:緩存 數(shù)據(jù)庫(kù)都沒(méi)有的數(shù)據(jù),庫(kù)短時(shí)間內(nèi)承受大量請(qǐng)求

? ? 接口層校驗(yàn),緩存取不到庫(kù)中也沒(méi)有,可key-null 短的過(guò)期時(shí)間,布隆過(guò)濾器bitmap中

緩存擊穿:緩存中沒(méi)有庫(kù)中有,并發(fā)查同一條數(shù)據(jù)

? ? 熱點(diǎn)永不過(guò)期,互斥鎖

緩存雪崩:一瞬間大面積失效

? ? 設(shè)置隨機(jī)過(guò)期時(shí)間/新增緩存標(biāo)記是否失效/緩存預(yù)熱/互斥鎖

一致性:

寫不太頻繁:

1,操作緩存 設(shè)置過(guò)期標(biāo)識(shí) 客戶端讀緩存過(guò)期則休眠再查redis

2,先刪緩存,看他不順眼直接刪了!再寫數(shù)據(jù)庫(kù),休眠 再刪緩存

主從同步

1 從節(jié)點(diǎn)slaveof masterip port 保存主節(jié)點(diǎn)信息

2 從節(jié)點(diǎn)定時(shí)任務(wù)發(fā)現(xiàn)主節(jié)點(diǎn),建立和主節(jié)點(diǎn)socket連接

3 從發(fā)送信號(hào) 主返回 互相私通 呸 互相私信,連接建立 主all數(shù)據(jù)發(fā)送給從

runid:每個(gè)redis節(jié)點(diǎn)啟動(dòng)生成唯一標(biāo)識(shí)uuid

offset:主從各自維護(hù)自己的復(fù)制偏移量,主也寫offset=offset+命令字節(jié)長(zhǎng)度,從收到主發(fā)送命令后,增加自己的offset,把自己的offset發(fā)送給主節(jié)點(diǎn),主節(jié)點(diǎn)同時(shí)保存自己的offset和從的,對(duì)比判斷主從一致性數(shù)據(jù)

原理

?

repl_backlog_size:主節(jié)點(diǎn)上固定長(zhǎng)度的先進(jìn)先出隊(duì)列1M

復(fù)制

全量復(fù)制:主節(jié)點(diǎn)bgsave命令fork子進(jìn)程 rdb,消耗cpu 內(nèi)存 硬盤id,主節(jié)點(diǎn)通網(wǎng)絡(luò)rdb給從,從清空老數(shù)據(jù) 載入rdb(阻塞)?

部分復(fù)制:執(zhí)行復(fù)制的雙方,分別維護(hù)offset,主內(nèi)部維護(hù)固長(zhǎng) fifo復(fù)制積壓緩存區(qū)隊(duì)列,主offset差距大過(guò)緩存區(qū)長(zhǎng)度,全量復(fù)制;服務(wù)器runid 主把自己的runid發(fā)送給從 從存 從重連時(shí) 據(jù)runid判斷同步進(jìn)度

? ?runid同之前同步過(guò) 主嘗試部分復(fù)制 ;不同全量復(fù)制

事務(wù)ACISD

單線程? watch監(jiān)控key的情況

1,multi命令的執(zhí)行(事務(wù)的開始),multi將客戶端狀態(tài)的flags=redis_multi

2,命令multi/exec/watch/discard會(huì)立即執(zhí)行,否則將命令放入事務(wù)隊(duì)列 客戶端返回queue

? 其他命令 先檢查格式 如果說(shuō)來(lái)?yè)v亂 服務(wù)器把客戶端狀態(tài)flags關(guān)閉redis_multi 返回錯(cuò)誤 小黑屋了

? ?隊(duì)列說(shuō)FIFO 先進(jìn)先出講規(guī)矩的隊(duì)列

3,執(zhí)行:

不支持回滾;

watch樂(lè)觀鎖為redis提供check-and-set(cas)監(jiān)控多個(gè)鍵,有一個(gè)被修改則后面的事務(wù)不執(zhí)行 監(jiān)控持續(xù)到exec命令

multi開啟事務(wù),執(zhí)行后客戶端可持續(xù)向服務(wù)器發(fā)送任意多條命令,放入隊(duì)列 exec被調(diào) all命令執(zhí)行

exec 執(zhí)行事務(wù)塊內(nèi)命令,按命令執(zhí)行先后順序排列,操作被打斷 返回空值null

調(diào)用discard客戶端可清空事務(wù)隊(duì)列,放棄執(zhí)行事務(wù)

unwatch取消watch對(duì)所有key對(duì)監(jiān)控

分布式鎖

setnx+setex 設(shè)置超時(shí)時(shí)間失敗,死鎖

set(key,value,px)原子操作

? redisson解決任務(wù)超時(shí) 鎖自動(dòng)釋放 并發(fā)問(wèn)題

數(shù)據(jù)結(jié)構(gòu)

string

list

hash

set

sortedSet

bitmap

geohash:sortedSet?

hyperLogLog??

streams

緩存過(guò)期策略

定期過(guò)期:定時(shí)器清理 占大量CPU處理過(guò)期數(shù)據(jù) 緩存響應(yīng)時(shí)間和吞吐量

惰性過(guò)期:先判斷是否過(guò)期,過(guò)期刪除,節(jié)省CPU資源 消耗內(nèi)存?

定期過(guò)期:每隔一段時(shí)間,掃描一定數(shù)量的數(shù)據(jù)庫(kù)中expires字典中一定數(shù)量的key

淘汰算法

fifo:被存儲(chǔ)時(shí)間 最遠(yuǎn)的先淘汰

LRU:最近最少使用,最近被使用的時(shí)間

LFU:最不經(jīng)常使用,一段時(shí)間內(nèi) 緩存被使用次數(shù)最少

緩存方案:

客戶端緩存:頁(yè)面 瀏覽器緩存 app h5 localStorage sessionStorage

CND緩存:內(nèi)容存儲(chǔ)? 數(shù)據(jù)緩存? 內(nèi)容分發(fā) 負(fù)載均衡

nginx緩存:靜態(tài)資源

服務(wù)端緩存:本地緩存 外部緩存

數(shù)據(jù)庫(kù)緩存:持久層緩存 mybatis。hibernate多級(jí)緩存 mysql查詢

操作系統(tǒng)緩存:page cache。 buffer? cache

redis集群策略

主從:主可寫讀,和從數(shù)據(jù)同步,主從宕 客戶端手動(dòng)修改ip?

哨兵模式:主庫(kù)宕 哨兵從 從庫(kù)選主 哨兵也可以集群 高可用 容量上的限制

cluster:多主多從 按key進(jìn)行槽位分配 不同key分散不同主節(jié)點(diǎn)上?

持久化

save命令,redis阻塞 直到rdb完成

bgsave,fork子進(jìn)程 主進(jìn)程在fork過(guò)程中短暫阻塞,子進(jìn)程創(chuàng)建完主進(jìn)程響應(yīng)客戶端請(qǐng)求

save m n:m秒內(nèi)n隔鍵改變 自動(dòng)觸發(fā)持久化 bgsave進(jìn)行 設(shè)置多個(gè)滿足其一就觸發(fā)

flushall:清空redis所有數(shù)據(jù),flushdb清空當(dāng)前redis所在庫(kù)數(shù)據(jù)(0號(hào)庫(kù) rdb文件)

主動(dòng)同步:全量同步自動(dòng)觸發(fā)bgsave命令

?一個(gè)dump.rdb文件,方便持久化 容災(zāi)性好 方便備份 性能最大化 fork子進(jìn)程完成寫操作?

數(shù)據(jù)安全性低,rdb間隔一段時(shí)間進(jìn)行持久化,redis故障,數(shù)據(jù)丟失?

aof:親這邊建議優(yōu)先使用

? 日志形式記錄服務(wù)器處理的每一個(gè)寫 刪除操作

? ?aof緩存區(qū)據(jù)策略向硬盤同步操作,定期對(duì)aof文件重寫 壓縮的目的

? ?每秒同步:異步完成 效率高,一秒數(shù)據(jù)會(huì)被丟失宕機(jī)時(shí)

? ?每修改同步:同步持久化,每次發(fā)生數(shù)據(jù)變化 立即記錄到磁盤 最多丟一條

? ?不同步:操作系統(tǒng)控制 丟失更多數(shù)據(jù)

數(shù)據(jù)安全,redis-check-aof工具解決數(shù)據(jù)一致性問(wèn)題

aof文件大 恢復(fù)慢 ;數(shù)據(jù)集大 rdb啟動(dòng)效率低,運(yùn)行效率無(wú)rdb高

柚子快報(bào)邀請(qǐng)碼778899分享:數(shù)據(jù)庫(kù) 緩存 redis瘦身版

http://yzkb.51969.com/

精彩文章

評(píng)論可見,查看隱藏內(nèi)容

本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點(diǎn)和立場(chǎng)。

轉(zhuǎn)載請(qǐng)注明,如有侵權(quán),聯(lián)系刪除。

本文鏈接:http://gantiao.com.cn/post/19170649.html

發(fā)布評(píng)論

您暫未設(shè)置收款碼

請(qǐng)?jiān)谥黝}配置——文章設(shè)置里上傳

掃描二維碼手機(jī)訪問(wèn)

文章目錄