亚洲有码Av一区二区三区_国产高清啪啪免费视频_69色视频国产_国产成人人人爆出白浆_国产精品自在线拍国_一本久久伊人热热精品无码_午夜性刺激在线看免费带字幕_助力高品质欧美狂喷水_亚洲精品日韩无码_精品无码一区二区三区蜜臀_麻豆高清国产AV_熟妇人素无码中文字幕_亚洲a级片在线观看_国产欧美日韩三区_99国产成人高清在线观看

ARTICLE DETAIL

資訊詳情

深耕商務建站與企業(yè)官網(wǎng)運營的一線實戰(zhàn)洞察。

eladmin后臺系統(tǒng)Redis深度實踐:從緩存配置到分布式鎖與集群部署

eladmin后臺系統(tǒng)Redis深度實踐:從緩存配置到分布式鎖與集群部署 如果你問我后臺管理系統(tǒng)里最容易被低估的中間件是什么我會說Redis。很多團隊把Redis當成一個“放Token的緩存庫”就完事了但實際上在eladmin這種基于Spring Boot的后臺管理系統(tǒng)里Redis能承擔的角色遠比你想象得多。從用戶登錄態(tài)、驗證碼、在線用戶到字典緩存、分布式鎖、接口限流計數(shù)器再到集群部署后的Session協(xié)調它幾乎參與了業(yè)務鏈路的每一層。我最早接手團隊eladmin項目時Redis已經配好了但一查監(jiān)控全是問題——key亂碼、緩存不生效、分布式鎖偶爾失效、主從切換后計數(shù)器歸零。這篇文章我把這幾輪踩坑和重構的過程完整寫出來包含配置、序列化、緩存注解、分布式鎖、故障處理和部署升級路線適合正在用或準備用eladmin做二次開發(fā)的朋友參考。先說個結論eladmin本身自帶一套緩存機制很多基礎代碼里也預留了Redis的入口但默認狀態(tài)下的使用深度遠遠不夠。如果你只是把它當成“驗證碼臨時存儲”那你既沒發(fā)揮Redis的價值也遲早會在高并發(fā)或集群場景下栽跟頭。接下來我按實際項目推進的順序來講。1. eladmin為什么需要Redis從登錄態(tài)到緩存的架構動因1.1 eladmin原生架構下的存儲瓶頸eladmin的默認設計里用戶認證走的是JWT也就是服務端簽發(fā)一個Token前端每次請求都帶上后端通過攔截器解析鑒權。好處是服務端無狀態(tài)但問題也很明顯Token一旦簽發(fā)服務端沒法主動讓它失效。你改了用戶權限、禁用了賬號、踢了下線只要Token沒到期用戶依然能訪問接口。這是我在實際項目里最痛苦的體驗之一。解決思路很簡單把Token的狀態(tài)存到Redis里。用戶登錄后生成一個會話KeyJWT信息、用戶基本信息、權限快照都放進去鑒權時先查Redis里的“會話是否還在”。這樣賬號禁用、權限變動、強制下線都能實時生效。eladmin的登錄邏輯本身是基于在線用戶管理的如果配合Redis做會話存儲整個認證鏈路的可控性會提升一個檔次。1.2 Redis在eladmin里的四種典型角色我把Redis在一個成熟eladmin項目里承擔的工作分成四類緩存層字典數(shù)據(jù)、部門樹、角色權限、菜單、系統(tǒng)配置項這類讀多寫少的數(shù)據(jù)全部放進Redis降低數(shù)據(jù)庫壓力。會話與臨時數(shù)據(jù)登錄Token、驗證碼、短信驗證碼、文件上傳分片信息、導入導出的臨時文件索引。分布式協(xié)調定時任務防重執(zhí)行、庫存扣減、操作冪等、分布式鎖。計數(shù)器與限流登錄失敗次數(shù)統(tǒng)計、短信發(fā)送頻率控制、接口調用頻控依賴Redis的原子自增操作。這四類場景在eladmin里幾乎都能找到對應的業(yè)務入口。你會發(fā)現(xiàn)Redis在后臺系統(tǒng)里不是“可選項”而是“基礎設施”。1.3 引入Redis前后的一次對比我團隊當時做了一個很小的壓測同樣的字典查詢接口數(shù)據(jù)庫直連查詢平均12ms命中Redis緩存之后平均0.8msQPS從900左右升到接近7000。這個差距在單機環(huán)境不明顯但一旦上了集群、數(shù)據(jù)量上來緩存層的存在就是生死線。而且Redis本身是單線程模型IO多路復用性能非常穩(wěn)定配合Spring Boot Cache抽象層幾乎不用在業(yè)務代碼里寫很重的緩存邏輯。提示eladmin的依賴里其實已經引入了spring-boot-starter-data-redis但很多分支版本沒有把序列化器配好。第一步不是寫業(yè)務而是把RedisTemplate的序列化配置修正否則后面全是亂碼和ClassCastException。2. RedisTemplate序列化配置接入eladmin的第一個分水嶺2.1 默認JDK序列化帶來的亂碼問題我見過太多eladmin項目Redis里長這樣一堆以\xAC\xED\x00\x05t...開頭的keyvalue用Redis Desktop Manager打開全是亂碼。這是因為Spring Boot默認的RedisTemplate用的是JdkSerializationRedisSerializer它會把對象序列化成二進制字節(jié)不僅肉眼不可讀還會因為類結構變化導致反序列化失敗。另外JDK序列化會附帶大量類元信息一條簡單的用戶緩存可能膨脹到幾KB內存浪費嚴重。這在開發(fā)階段還能忍上了生產就是事故。比如你發(fā)版時改了實體類的字段舊緩存的二進制流反序列化直接拋異常緩存層級崩潰數(shù)據(jù)庫瞬間被打爆。2.2 用GenericJackson2JsonRedisSerializer做全局序列化eladmin的RedisConfig應該重寫兩個BeanRedisTemplate和StringRedisTemplate。核心思路是key序列化用StringRedisSerializer保證可讀性。value序列化用GenericJackson2JsonRedisSerializer把對象轉成JSON字符串存儲兼容性好且能通過class字段保存類型信息反序列化時不丟類型。hash的key和value也分別指定序列化器。一個我實際在用的配置如下Configuration public class RedisConfig { Bean public RedisTemplateString, Object redisTemplate(RedisConnectionFactory factory) { RedisTemplateString, Object template new RedisTemplate(); template.setConnectionFactory(factory); // key 使用 String 序列化 StringRedisSerializer stringSerializer new StringRedisSerializer(); GenericJackson2JsonRedisSerializer jsonSerializer new GenericJackson2JsonRedisSerializer(); template.setKeySerializer(stringSerializer); template.setHashKeySerializer(stringSerializer); template.setValueSerializer(jsonSerializer); template.setHashValueSerializer(jsonSerializer); template.afterPropertiesSet(); return template; } }這里有個細節(jié)GenericJackson2JsonRedisSerializer默認會把類型信息寫在JSON的class字段里。如果你緩存的對象里有接口類型、父類引用或者泛型反序列化時這一手非常關鍵。但它也不是萬能的遇到LocalDateTime這類Java 8時間類型時容易出問題一個常見的坑是序列化后變成數(shù)組格式。我在eladmin里處理這種場景時會在ObjectMapper里注冊JavaTimeModule并調整日期序列化的格式避免前后端解析不一致。2.3 緩存key的設計規(guī)范序列化只是第一步key的命名同樣重要。Redis是鍵值存儲沒有表結構約束key設計是否規(guī)范直接決定后續(xù)運維的體驗。我在eladmin里定的規(guī)范是業(yè)務域:模塊:唯一標識例如auth:token:{userId}用戶會話sys:dict:{dictName}字典緩存sys:dept:tree部門樹緩存lock:task:{taskName}定時任務的分布式鎖這樣用Redis Desktop Manager或者命令行SCAN匹配前綴時非常清晰也能通過命名空間做批量清理。另外key盡量短一些能用ID就不拼長字符串節(jié)省內存也提高查詢效率。2.4 配置完成后的最小驗證配置改完后不要急著寫業(yè)務先做一個最小驗證SpringBootTest public class RedisTest { Resource private RedisTemplateString, Object redisTemplate; Test public void test() { redisTemplate.opsForValue().set(auth:token:1, hello-redis); Object value redisTemplate.opsForValue().get(auth:token:1); System.out.println(value); } }跑通這一步再去Redis客戶端看key是否可讀、value是不是JSON字符串。如果看到類似hello-redis的文本內容就說明序列化配置生效了。提示不要用RedisTemplate直接存泛型對象比如ListUser如果JSON里只存了class到List內部元素類型容易丟失。穩(wěn)妥做法是自定義一個帶類型包裝的DTO或者用redisTemplate.opsForValue().set(key, JSON.toJSONString(list))配合反序列化手動指定類型。3. 緩存注解和RedisUtils兩種緩存方式的邊界3.1 Cacheable適合哪些業(yè)務eladmin里大量使用Spring Cache的注解緩存比如Cacheable、CacheEvict。注解方式的好處是侵入性小業(yè)務代碼里不用手寫存取邏輯。適合以下幾類字典類型列表按類型名緩存。部門樹、菜單樹按用戶ID緩存。系統(tǒng)配置項按配置鍵緩存。角色權限集合按角色ID緩存。一個典型例子Cacheable(value sys:dict, key #type, unless #result null) public ListDictDetail getDictDetails(String type) { // 數(shù)據(jù)庫查詢 }這樣第一次查詢后結果進入Redis后續(xù)請求直接命中緩存。但注解緩存有幾個隱藏問題我后面還會講失效時間不好精細控制、緩存擊穿場景下注解幫不上忙、更新時機容易亂。3.2 eladmin里的RedisUtils手動緩存eladmin原生的RedisUtils工具類是非常實用的封裝它把常用的set、get、delete、exists、expire都包了一遍并在設置值時自動指定過期時間。對于簡單的數(shù)據(jù)我建議直接用這個工具類而不是每個地方都寫redisTemplate.opsForValue().xxx()。手動緩存適合以下場景數(shù)據(jù)短生命周期比如登錄驗證碼5分鐘有效。需要精細控制過期時間。緩存數(shù)據(jù)需要在業(yè)務中頻繁更新比如在線用戶狀態(tài)。數(shù)據(jù)緩存與數(shù)據(jù)庫更新之間需要手動維護一致性注解方式很難表達“先改庫再刪緩存”的順序。舉個eladmin里的實際例子登錄成功之后把用戶信息塞進Redis設置30分鐘過期每次請求時刷新過期時間實現(xiàn)“滑動續(xù)期”。這個需求用Cacheable做不到因為注解緩存不支持動態(tài)刷新TTL但RedisUtils可以輕松完成。3.3 緩存更新機制優(yōu)先刪而不是更新這是我吃了虧才明白的道理。很多人寫完緩存后想當然地認為數(shù)據(jù)庫更新后把Redis值也更新就好了。但緩存更新的路數(shù)很多組合方式容易出錯。比如先更新數(shù)據(jù)庫還是先更新緩存、失敗了怎么辦、并發(fā)下會不會讀到舊值。eladmin業(yè)務里我統(tǒng)一采用“先更新數(shù)據(jù)庫再刪除緩存”的策略。下一請求發(fā)現(xiàn)緩存未命中再回源數(shù)據(jù)庫重建緩存。這個策略在大多數(shù)讀多寫少的后臺系統(tǒng)里足夠用而且天然避免了“寫緩存失敗導致數(shù)據(jù)不一致”的問題。刪除緩存這個動作本身也是冪等的就算刪晚了也只是多一次數(shù)據(jù)庫查詢。3.4 字典緩存的完整案例以eladmin的字典模塊為例它的查詢頻率很高但字典數(shù)據(jù)基本穩(wěn)定。如果每次查字典都走數(shù)據(jù)庫查詢接口響應會受DB性能影響。我的處理方式啟動時預熱項目啟動后調用一次字典查詢接口把常用字典寫進Redis。查詢時先查緩存命中直接返回。后臺編輯字典后調用刪除緩存接口保證下次查詢回源。這里有一個細節(jié)分頁查詢的字典列表不適合直接整體緩存因為分頁排序條件太多緩存命中率低還會造成緩存key爆炸。我只對“按字典名稱查詢所有明細”這種固定場景做緩存列表頁不緩存Excel導出也不緩存。緩存不是越多越好命中率低的緩存不僅浪費內存還增加了維護成本。4. 分布式鎖從緩存組件到協(xié)調組件4.1 為什么單機鎖不夠eladmin里的定時任務、庫存扣減類操作在單機部署時用Synchronized或ReentrantLock沒問題。但項目上了集群同樣的定時任務會在每個節(jié)點各執(zhí)行一遍造成重復數(shù)據(jù)。比如定時同步訂單狀態(tài)如果兩臺機器同時跑數(shù)據(jù)庫可能被更新兩次產生臟數(shù)據(jù)。單機鎖只對本進程生效這時就需要一個跨進程的鎖分布式鎖。Redis實現(xiàn)分布式鎖是最常見的方案因為它本身是共享存儲所有節(jié)點都能訪問且提供了原子操作。4.2 用Redis手寫一個可用的分布式鎖最簡單可靠的方案就是基于SET key value NX EX seconds這個命令能同時保證“key不存在才設置”和“過期時間自動設置”。用RedisTemplate實現(xiàn)如下public boolean tryLock(String key, String requestId, long expireSeconds) { // NX: 不存在才設置 EX: 設置過期時間 // 注意 SET_IF_ABSENT NX, SET_ABSENT_TIME EX Boolean result redisTemplate.opsForValue() .setIfAbsent(key, requestId, Duration.ofSeconds(expireSeconds)); return Boolean.TRUE.equals(result); } public boolean releaseLock(String key, String requestId) { // 使用Lua腳本保證“校驗持有者再刪除”是原子操作 String script if redis.call(get, KEYS[1]) ARGV[1] then return redis.call(del, KEYS[1]) else return 0 end; DefaultRedisScriptLong redisScript new DefaultRedisScript(script, Long.class); Long result redisTemplate.execute(redisScript, List.of(key), requestId); return Long.valueOf(1).equals(result); }這里有兩個關鍵點requestId可以是UUID是鎖持有者的唯一標識。釋放鎖時必須校驗這個標識防止“自己不持有的鎖被自己刪掉”。用Lua腳本包裹“檢查-刪除”操作保證原子性。如果拆成兩步可能在GET之后、DEL之前鎖到期被另一個線程搶走然后你把別人的鎖刪了。4.3 鎖的續(xù)期問題和Redisson選擇手寫鎖有個麻煩業(yè)務執(zhí)行時間超過鎖的過期時間怎么辦比如加鎖時設了30秒但業(yè)務跑了40秒鎖自動釋放另一個線程進來了。解決思路是續(xù)期——在鎖即將到期但業(yè)務還沒結束時自動延長過期時間。這個邏輯很煩不建議手寫。我在這塊直接引入了Redisson它內置了看門狗機制默認鎖續(xù)期到30秒每10秒檢查一次業(yè)務沒結束就自動續(xù)期業(yè)務結束就釋放鎖。代碼反而簡單很多RLock lock redissonClient.getLock(lock:task:syncOrder); boolean isLocked lock.tryLock(3, 10, TimeUnit.SECONDS); if (isLocked) { try { // 業(yè)務邏輯 } finally { lock.unlock(); } }引入Redisson的代價是加一個依賴和一點內存但省去了自己處理續(xù)期、重入、異常釋放的雜活。eladmin里如果已經有Redisson依賴優(yōu)先用它的tryLock如果沒有手寫一個簡單的也夠用。提示手寫鎖務必設置過期時間絕不能只用setIfAbsent(key, value)不帶過期時間。一旦分布式鎖的key沒有過期時間而持有鎖的服務宕機這個鎖就永遠解不開了下游業(yè)務全部卡死。4.4 鎖定在eladmin里的實際場景我在eladmin里落地分布式鎖最多的場景是定時任務。eladmin有定時任務管理模塊可以動態(tài)啟停任務但任務本身可能被多個節(jié)點同時觸發(fā)。處理方式任務執(zhí)行入口先嘗試獲取鎖。搶到鎖的節(jié)點執(zhí)行任務沒搶到的節(jié)點直接跳過。執(zhí)行完成后主動釋放鎖。另外批量導入導出、文件分片合并、訂單狀態(tài)機轉換這類場景也需要鎖。核心思路是凡是“多實例下同一時間只允許一個執(zhí)行”的操作都值得用分布式鎖。5. 緩存三大故障現(xiàn)場穿透、擊穿、雪崩的解決實錄5.1 緩存穿透不存在的key瘋狂打庫eladmin里權限校驗接口如果被惡意刷每次都會攜帶一個不存在的用戶ID查數(shù)據(jù)庫Redis里始終沒有緩存數(shù)據(jù)庫壓力直線上升。這種查詢一個“必然不存在的數(shù)據(jù)”的現(xiàn)象就是緩存穿透。最常用的兩個辦法緩存空值查詢結果為空也寫緩存設置一個較短的過期時間比如60秒這樣后續(xù)相同Key不會打到DB。但要注意空值過多會占用內存需要設置過期時間。布隆過濾器把所有合法的用戶ID加載到布隆過濾器查詢前先判斷ID是否存在不存在直接返回。適用于ID集合較小且相對固定的場景。我在eladmin里處理驗證碼校驗接口時用的就是緩存空值方案驗證碼錯誤就緩存一個錯誤標記過期時間比驗證碼本身還短。這樣既保護了數(shù)據(jù)庫又不會影響正常用戶的重新發(fā)送。5.2 緩存擊穿熱點key瞬間過期打崩DB緩存擊穿和穿透容易混淆擊穿指的是某個熱點key在過期瞬間大量并發(fā)請求同時回源數(shù)據(jù)庫。比如eladmin的系統(tǒng)配置緩存如果剛好在零點過期所有請求都去查數(shù)據(jù)庫一次就夠數(shù)據(jù)庫喝一壺。解決手段通常有兩種互斥重建用分布式鎖包住回源邏輯只允許一個線程回源數(shù)據(jù)庫寫緩存其他線程等待緩存重建完成。缺點是鎖等待會增加接口耗時。邏輯過期緩存中不設置物理過期時間而是存一個邏輯過期戳。查詢時發(fā)現(xiàn)戳已經過期就異步重建。優(yōu)點是接口永遠有數(shù)據(jù)可返回但實現(xiàn)稍復雜。在eladmin的字典緩存里我采用的是折中方案熱點key的物理過期時間拉長到小時級后端修改字典后通過ActiveMQ或者直接調用刪除緩存接口來維護一致性避免“自然過期”引發(fā)擊穿。這個方案簡單但依賴“刪除操作必須可靠”。5.3 緩存雪崩大量key同一時刻失效雪崩和擊穿的區(qū)別在于影響范圍。雪崩是大批key在同一時間過期或者Redis服務整體不可用導致數(shù)據(jù)庫瞬間被沖垮。解決辦法我總結三條過期時間加隨機抖動比如基礎過期時間300秒實際設置時加一個0到60秒的隨機數(shù)避免同一秒集體失效。eladmin里的緩存工具類我已經統(tǒng)一封裝了這個邏輯。多級緩存配合Redis之上加一層本地緩存Caffeine本地緩存失效再查RedisRedis失效再查DB。這樣即使Redis短時間不可用本地緩存還能扛一部分。Redis高可用部署主從加哨兵或者Redis Cluster避免單點故障。這個我放在第6節(jié)詳細講。5.4 曾經踩過的坑INCR在分布式環(huán)境下的“不準”熱詞里有一條“redis incr不準”我在eladmin里也遇到過。場景是短信驗證碼發(fā)送頻率限制Long count redisTemplate.opsForValue().increment(limit:sms: phone); redisTemplate.expire(limit:sms: phone, 60, TimeUnit.SECONDS);這段代碼在單機Redis下沒有問題。但在主從架構下主機自增后同步給從機如果主機宕機、從機頂上自增的值可能丟失或重復導致計數(shù)不準。解決方案有幾個使用Redis Cluster的單一分片鎖住key的哈希槽保證只有一臺機器處理該key。頻率限制場景可以接受誤差時改成SETNX 過期時間判斷邏輯?;蛘咴赗edis事務Pipeline中執(zhí)行減少錯誤概率。另外INCR和EXPIRE是兩個獨立命令如果想讓key自動過期最好用Lua腳本把兩個操作包起來保證原子性否則極端情況下可能key永不過期計數(shù)累加超過預期。提示eladmin的接口限流功能如果用了IP計數(shù)千萬不要用get再set的復合操作必須用原生INCR。兩步操作在并發(fā)下會丟失增量計數(shù)這是非常隱蔽的一類bug。6. 從單機到集群eladmin上線后的Redis部署升級路線6.1 單機版夠用嗎開發(fā)環(huán)境和日活幾千的小項目單機Redis完全夠用。eladmin這種后臺系統(tǒng)數(shù)據(jù)庫字段多、接口讀寫比例高單臺8G內存的Redis實例支撐幾百個并發(fā)是沒問題的。但是單機的問題在于故障域。Redis宕機所有緩存全部失效數(shù)據(jù)庫被瞬時打滿整個系統(tǒng)雪崩。而且一臺機器上Redis進程如果OOMRedis會直接拒絕寫入進而影響所有依賴Redis的業(yè)務。因此正規(guī)一點的項目都會考慮主從。6.2 主從加哨兵怎么配更穩(wěn)主從模式解決的是“單點故障”哨兵解決的是“自動故障轉移”。我在eladmin生產環(huán)境用的一主二從加三哨兵架構主節(jié)點負責讀寫。從節(jié)點負責讀擴展和備份。哨兵監(jiān)控主從狀態(tài)主節(jié)點宕機后自動從從節(jié)點選舉出一個新主節(jié)點修改客戶端配置的地址指向新主節(jié)點。Spring Boot里配置Sentinel模式的地址很簡單spring: data: redis: sentinel: master: mymaster nodes: - 192.168.1.10:26379 - 192.168.1.11:26379 - 192.168.1.12:26379注意哨兵模式下應用連接的是哨兵地址而不是Redis節(jié)點地址。哨兵會告訴你當前可寫的主節(jié)點是誰。這塊如果配錯應用會一直連不上Redis日志里反復報Connection refused。主從復制還有一個核心點需要注意replica-read-only建議設置為yes。從節(jié)點只做讀寫操作全部走主節(jié)點否則可能會發(fā)生數(shù)據(jù)不一致。6.3 什么時候值得上ClusterRedis Sentinel解決的是“故障轉移”但單節(jié)點的內存容量上限還在。當緩存數(shù)據(jù)量大到單節(jié)點內存裝不下或者寫入并發(fā)超過單實例上限時就該考慮Redis Cluster。Cluster采用分片存儲每個key根據(jù)CRC16算法映射到16384個哈希槽中的某一個然后哈希槽分配給不同節(jié)點。好處是容量和性能都線性擴展壞處是配置復雜、客戶端要支持Cluster模式且Redis Cluster不支持多key操作除非這些key在同一個Hash標簽下。eladmin項目的緩存體量通常到不了Cluster的規(guī)模但如果未來做多租戶、數(shù)據(jù)量暴漲可以提前把key的Hash Tag設計好比如把所有需要一起操作的key都加上{user:1}這樣的Hash前綴確保它們落在同一個槽里。這個設計越早做越省事。6.4 Docker部署Redis時的常見錯誤很多團隊用Docker部署Redis熱詞里提到的“docker search redis request returned 500 internal server error”我碰到過多次。這個報錯通常是Docker Desktop的引擎沒起來或者API版本不兼容解決辦法是重啟Docker Desktop或者檢查Docker引擎的版本。真正進入docker pull redis階段之后還需要注意掛載持久化目錄比如/data防止容器重啟后數(shù)據(jù)丟失。指定Redis密碼和配置文件不要用默認無密碼的配置。如果宿主機和Redis容器不在同一網(wǎng)絡需要注意防火墻和端口映射。用Docker Compose部署一主二從加哨兵集群是本地復現(xiàn)和學習的好方式比手動敲命令省心很多。但這個更多是運維話題本文就不展開了。7. 體檢清單慢查詢、大key和熱點key的排查手段7.1 Redis慢查詢日志怎么看Redis的慢查詢日志和MySQL的slow query log思路類似。配置項slowlog-log-slower-than設置超時閾值單位微秒slowlog-max-len設置日志條數(shù)。執(zhí)行SLOWLOG GET可以查看最近慢查詢命令。eladmin的緩存基本都是小Key很少有長命令但如果有KEYS *這類命令出現(xiàn)在慢查詢里基本可以斷定代碼有問題。Redis是單線程的一個耗時的KEYS命令會阻塞所有客戶端響應線上絕不能執(zhí)行。我見過有人用KEYS auth:token:*來批量清理用戶會話導致Redis卡了幾秒所有依賴緩存的接口全部超時。正確做法是用SCAN游標遍歷分批次刪除。7.2 大key是隱藏的內存炸彈大key通常指value特別大的key比如一個Hash里塞了幾十萬個字段或者一個String存了幾MB的數(shù)據(jù)。大key會導致Redis內存碎片增加、刪除/序列化耗時變長還會在主從復制時造成網(wǎng)絡帶寬壓力。在eladmin里最常見的兩個大key場景緩存的用戶權限集合沒有控制大小一個超管用戶的權限菜單串成一個大JSON。字典緩存把所有數(shù)據(jù)一股腦塞進一個key而不是按類型拆分。排查手段用redis-cli --bigkeys它會掃描找出大key并給出類型和建議。治理方式很直接大key拆小key、續(xù)期策略調整、數(shù)據(jù)結構優(yōu)化。比如權限集合按角色拆分字典按類型拆分。7.3 內存淘汰策略的選擇Redis內存寫滿后怎么辦配置maxmemory-policy決定了淘汰策略。后臺管理系統(tǒng)里我推薦volatile-lru只在設置了過期時間的key里淘汰最近最少使用的數(shù)據(jù)。這樣業(yè)務緩存是“可淘汰”的但正在使用的會話數(shù)據(jù)不會被強制清掉。相比之下allkeys-lru會對所有key做淘汰包括你不想丟的業(yè)務緩存可能導致關鍵數(shù)據(jù)意外消失。還有一點maxmemory不要設成Redis所在服務器的全部內存要留出一部分給操作系統(tǒng)、其他進程防止Redis OOM把整臺服務器壓垮。我一般給Redis分配機器內存的60%-70%左右。7.4 可視化工具和日常巡檢建議命令行工具就是redis-cli圖形化工具我常用Another Redis Desktop Manager和Redis Insight。選工具主要看是否支持連接哨兵、Cluster、SSH隧道。日常巡檢建議做成定時腳本每天掃一遍INFO memory查看內存使用率。INFO replication查看主從復制狀態(tài)確認沒有斷連。INFO stats看連接數(shù)和命中率。SLOWLOG GET 50檢查慢命令。這些指標配合Prometheus和Grafana可以做到很完善的監(jiān)控但哪怕沒有專業(yè)監(jiān)控系統(tǒng)定時敲一下命令也比完全不看強一百倍。Redis掛了不可怕可怕的是你不知道它什么時候開始變慢、內存什么時候開始飆升。結尾經驗這套東西從頭到尾梳理下來我覺得在eladmin里用好Redis的關鍵只有兩點一是序列化和key設計必須在一開始就定好規(guī)范這個決定后續(xù)所有緩存代碼的體驗二是把分布式鎖、緩存擊穿、集群部署這些“進階能力”當作標配去考慮而不是等出了事故再補。我經歷過Redis配置亂碼導致生產環(huán)境接口直接500的夜晚也經歷過分布式鎖誤刪把定時任務數(shù)據(jù)弄亂的尷尬?,F(xiàn)在已經養(yǎng)成的習慣是任何redisTemplate的讀寫都先問自己“key規(guī)范嗎序列化對嗎過期時間設了嗎這行代碼在集群下還成立嗎”這四個問題能擋住絕大部分線上事故。希望這篇實踐對正在折騰eladmin的朋友有幫助。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
国产尹人在线视频免费| 久久超碰国产一区二区三区| 欧美爱三级日韩久久| 一本久久久精品| 国产精品久久久久久高清无码免费看| 激情五月婷婷| 夜夜骑操视频| 亚洲 欧美 第一页| 人人干人人搞人人摸| 亚洲美乱| 91丨人妻丨国产丨丝袜| 91热爆在线| 天天日天天屌天天操| 精品亚洲天堂| 顶级丝袜熟女一区二区三区| 日本日日色视频| 极品少妇久久久久| 人人做,人人操,人人摸| 亚洲欧洲国产综合av| 亚洲欧美另类少妇精品| 久久久少妇| 久热久| 亚洲吊色| 在线看片国产精品每日更新| 日本欧美色| 91P0RNY大屁股人妻| 久青草影院| 精品小视频在线| 免费观看一区| 超碰97爽| 97超碰磁| 91高跟美女在线播放| 色五月AV| 97免费视频网| 襙一襙| 久久这里是精品| 97天堂| 先锋音影AV| 亚洲伊人成综合成人网| 国产AV超爽| 97爱啪| 可以在线观看的黄色网址| 亚洲一二三精品久久网| 亚洲欧美精品国产一区二区| laoshunv91| 无色无码| 中文字幕一区二区三区四五区| 日韩有码 一区二区三区| av在线人气| 91碰碰| 久久久久久久久成人av解说| 超碰97极品9| 特级丰满少妇一级AAAA爱毛片| 日韩不卡网操逼中文字幕日韩| 久久少妇| 国产精品一区在线播放| 欧美色997| 亚洲国产精品无码AV久久久| 东北女人操比视频| 国产精品熟女丝袜一区二区| 午夜爽爽爽| 91 亚洲 欧洲| 成人av在线播放| 91欧美丨精品丨入口| 久久一二三级一一一| 女性91网站| 亚洲欧美性生活| 操操操五月天婷婷丁香影院| 亚洲日韩97| 一道本久久棕合爱| 久久精品人人做人人看| 麻豆av一区二区三区| 在线日韩日本亚洲国产| 国产视频大全| 玖玖97综合 | PMv在线观看| 欧美日韩青操| 国产91美女高潮| 宅男影院久久久,99| 999日韩中文精品观看视频。| 午夜福利激情在线视频| 夜夜黄| 天美传媒av 在线| 亚洲码在线中文在线观看| 四虎AV在线观看| 天天夜躁日日躁狠狠2002| 国产美女91视频| 人妻系列无码专区中文有码| 欧美乱伦专区| 美欧色综合| 极品AV网站在线观看| 国产网站在线播放| 亚洲欧美色图片| 欧美影音在线| 91精品人妻一区二区三区蜜桃臀 | 精品乱码久久久久| 丁香五月天婷婷姐| 午夜天堂精品久久久久91| 亚洲一区二区三区不卡国产欧美| 一区二区视频在看| 9ⅰ久久久天天| 91 国产丝袜在线放观看| 无码人妻丰满热妇又大又粗| 欧美色www亚洲国产阿娇要播| 情色五月天久久久| 久久99手机免费视频| 欧美一级做a爰片免费视频| 国产无码高清操逼视频| 嗯嗯不要视频| 九九操久久国产免费视频| 97精品久久久久中文字幕| 大奶啊啊好爽| 青青草日本无码| 国产精品播放| 日韩大香蕉AV影片| 深夜国产福利| 精品一级毛片在线观看| 国产av又色又爽又黄| 青青草影视蜜久久| 国产精品乱码久久久久久久久| 久久97资源 网| 好淫网一二三视区| 欧美色偷拍| 91麻豆天美国产欧美日| 999日韩中文精品观看视频。| 成人免费性爱视视| 岛国黄片网站| gogogo免费高清看中国国语| 国产精品久久妻无码网站 | 偷拍亚洲熟女视频播放| 亚洲色图尤物视频| 白嫩国模丰满一二三区| 在线精品福利免费播放| 日本一级性爱| 99性爱视频| 乱伦系列一区二区| 夜夜爽爽爽| 黄色区免费观看中文字幕| 国产精品久久久久亚洲av | 2020中文字幕在线| 超碰97综合在线| 精品美女人人干| 欧美久久久| AV在线播放网址| 91久热| 中文字幕第7页| 校园春色五月天| 九九九九九九九九九五码| www.夜夜操| 日本91白丝| 色婷婷丁香五月天| 久久久性爱视频| 久草男人天堂| 国产欧美另类久久久精品课程| 亚洲做性| 亚欧色图在线激情| 操逼www.| 天天摸,夜夜摸| 97国产精品国| 91老妇女| 国产乱伦搜索结果91P| 四虎影视永久在线免费| 国产黄色在线播放观看| 婷婷丁香五月综合| 色盈盈影院| 激情久久日韩精品中文字幕麻豆| 天天肏视频| 四虎午夜影院| 巨爆乳肉感一区二区三区竹菊影视| julia高潮后不停追击中出| 久久久亚洲精品电影免费看| 九九夜精品九九在线| 密臀成人视频久久久| 98久久| 国产精品区在线12p| 操婷婷逼| 婷婷另类小说| 婷婷超| 精品一二三区久久AAA片| 美女诱惑爱爱| 欧美天天影院| AV和黑人在线播放| 亚洲国产无码精品首页久久久| 好吊色在线观看| 神马久久久久久久久久久久| 欧美色图亚洲色| 国产成人超碰在线| 久久精品小视频| 大香蕉欧美国产日韩高潮| 天天干人人乐| 国产 v乱码一区二| 亚洲综合性网址| A 天堂| 留下AⅤ黄色片| 日本东京热大香蕉a片| 九九AV| 看日韩美女二区三区免费操逼视频 | Aa东京男人的天堂| 超碰精品国产无码| 亚洲麻豆精品二区三区| 亚洲精品蜜桃久久久久久久| 人妻偷拍一区二区三区| 欧美色棕合| 99999久久精| 国产熟女免费观看久久| 黑人与人妻| 天天干18禁| 伊人激情五月天一区二区| 国产热RE99久久6国产精品首| 99黄页网站| 九九九九九九综合| 凹凸视频特色日本特黄| 亚州熟妇精品| 秋霞免费AV| 欧美日韩222| 久久久久久九九九九九| 欧美人人AAA| 熟妇激情| 日本操色导航| 操操操操操操| 无码操逼视频一下| 久久综合久色欧美综合狠狠| 国内精品嫩模A∨私拍小视频| 丰满人妻一区二区三区在线| 天天躁日日躁狠狠躁| oumeisetu综合| 91操熟女| 亚州色站 日韩电影| 国产色产精品在线观看| 青青国产在线拍揄自揄拍| 欧美性爱精品七区| 国产性感骚丝袜在线| 久久久久久久久999| 亚洲最大91网| 久久性生大片免费观看性| 色综合色| 超碰色男人操熟女| 亚洲精品欧洲精品| 日韩色欲久久一二三四区| 国产性爱欧美性爱在线| 午夜福利在线合集| 成人资源中文字幕在线观看| 九月婷婷| 操b在线观看| 后入式在线免费观看60秒| 免费观看国产小粉嫩喷水精品午| 精品久久大胆人体| 五月天综合在线| 超碰97精品| 人人乐大香蕉| aⅴ日韩成人电影av在线免费看av大全 | 日本蜜桃| 午夜男人一级A片7777| 97网址97| 欧美最婬乱婬爆婬性视频 | 毛片17S| 91精品人| 9ⅰ久久久天天| 在线可观看的黄色网址| 丝袜亚洲91| 25国产精品免费观看| 淫纸中9区| 国产日本熟女顶级一区二区三区视频 | 青青青在线高清视频在线一二三四区| 男人下部插入女人下部| 亚洲欧美日韩二区视频| 2017天天透天天通天天擦| 玖玖婷婷五月天| 久久产精品一区二区三区电影| 欧美精品人妻视频| 韩国一级做A片免费的| 国产精品另类一区大香蕉| 日本3级一区二区免费| 欧美少妇色图| 国产精品粉嫩福利在线| 九九英色视频| 亚洲欧洲小说图片视频| 久久久久久国产精品免费网站| 人妻一区二区三区熟女| 午夜福利在线合集| 男人的天堂在线2| 久久久久国产一区二| 亚洲精品黄码久久久久| 色制服丝袜夫妻av一区| juliaann精品熟女一区| 久久精彩视频| 久久露脸国产老熟女| 老司机午夜精品视频| 超碰综合97在线| 日韩9999| 九九九九日本| 大香蕉免| 丝袜美腿射精91| 一区黄二区黄| 亚洲s在线观看| 婷婷五月天伊人| 欧美日韩岛国大片在线观看| 青娱乐国产精品| 久久久久久久九九九九九九| 性夜影院爽黄A爽免费动漫| 成人天天看站长推荐| 久操com| 亚洲91网| 亚洲日韩国产精品| 拍拍拍拍大尺度黄色三级片拍拍拍拍拍照 | 欧美白嫩女HD| 狠插 制服 自拍| 久草婷婷| 六月激情婷婷| 婷婷香蕉欧美在线一区二区三区| 97天天摸天天碰| 精品区国产区一区二区三区| 动漫爆乳3D奶水一区在线观看| 久久久久久网址| yiqicaoav| 欧美精品三级黄片| 精品国产乱码久久久影院| 91国产伊人大香蕉| 中文字幕精品三级久久久| 亚洲极品| q2午夜理论片夜色av| 九九久精品| 91欧美另类| 啊啊啊啊啊操我视频| 国产精品经典一卡久久久 | 天天综合色| 志村玲子视频一区二区| 亚洲熟女乱色| 欧美亚洲高清不卡| 一卡二卡三卡| 久久亚洲一区二区色婷婷| 欧美色综合网| 国产日本顶级一区二区三区| 伊人影院日本| 中文字幕一区二区三区字幕| 97在线精品观看视频| 入口操逼网站| 欧美熟爽综合| 96国产污污污丝袜| 人妻精品一区一区三区蜜桃91| 亚洲在高跟鞋自慰久久在色线| 亚洲日韩久久精品一区| 精品人妻一二三四区视频| 成人情色综合网| 欧美色图小说综合| 久久精品一区二区三区四区五区| 欧美精品成人在线播放| 人人操人人狠狠操| 一二三四免费视频| 伦理弟一页| 大香蕉日韩| 国产精品盗摄 偷窥盗摄| 强奸国产精品视频| 最新国产精品久久精品| 91女人的网站| 四虎精品永久在线观看| 亚洲 欧美 制服 另类 自拍| 免费人成在线观看网站品爱网| 中文自拍欧美影视| 中文字幕天天天天天| 东方亚洲在线操逼天堂| 午夜国产成人精品视频| 91影库| 99这里有精品| 黄久在线| 国产又黄又爽又刺激久久久久久| 无码天天操| 91一起操| 人妻熟女一区二区| 性爱网站一区二区| 伊人97色天使| 操老熟女AV| 三级日本一区二区三区| 日韩无码专区| 超碰免费欧美7| 欧美亚洲自拍另类人妻| 久久国产三区| 99最新日韩偷拍视频| 91亚洲影视| WWW操逼| 激情五月天婷婷| 久久久久久久久久久久黄色| 东京热毛片177b2viP| 欧美成人黄网色网站| 欧美在线伊人色| 黄页av| 囯产乱伦一区二区三女| 久久夜夜夜| 欧美高清18A片| 日本操嫩b网| 亚洲国产欧美日韩人妻日中文| 麻豆精品A片免费观看| 极品肉射| 天天爽天天| 蜜桃久久一区| 91久久久久久| 亚洲精品国产拍免费91在线| 亚洲国产精品无码AV在线| 又黄又爽在线观看视频| 欧美丝袜美女电影一二三四区| 操国产逼| 国产污视频麻豆传媒一区二区| 精…码一二三区| 综合熟女| 在线中文字幕视频| 色色色综合| 天天色欧美| 99色色| 国产精品96| 水澄无码AV| 久久久久久9| 日韩精品国产精品五码一区二区| 欧美日韩人妻精品系列一区二区三区| 国产超碰| 久久久久久久久9| 超碰av在线| 好爽免费视频| 精品国产污一区二区三区| 9999久久久| 99999精品成人| 无码外流操逼视频| 精品九九九九九九九| 操操操五月天婷婷丁香影院| 鸥美插入视频| 日本国产高清色www视频在线| 碰人碰碰人人开房人肉| 超97在线精品视频| 99精品无码| 日本三级久| 日韩有码 一区二区三区| 大香蕉综合久久| 思思热在线视频在线| 麻豆婷婷成人一二三| 婷婷激情丁香| 亚洲精品99| 一级一性爱免费视频| 素颜老阿姨乱情色| 亚洲色图8| 丁香六月婷婷久久综合| 午夜男女爽爽大片免费观看| 欧美97视频| 少妇高潮对白在线观看| 亚洲吊色| 精品久久久久久亚洲| 精品国产乱码久久久久久蜜臀| 色婷婷99| 久久五月天婷婷丁香中文字幕| 青青草国产一区二区三区| www.av在线观看| 91高潮| 丝袜综合| 2018色综合天天操| 久久宗合97| 熟女中出视频| 久热91| 深夜福利黄片| 伊蕉97蜜桃97狠狠综合干| 99日精品欧美国产| 少妇厨房愉情理伦片bd在线观看| 日本东京热大香蕉a片| 3p国产欧美99热| 美女裸体无遮挡永久免费观看网站| 夜夜狼人妻| 97人人模人人爽人人| 久久精品女同亚洲女同13| 日少妇亚洲版| 中文字幕 码 自拍 视频 区| 久久久无码av精| 蜜屁av| 99热这里只有精品8| 日韩人妻播放| 超碰美女97| 亚洲极品| 射丝袜大香蕉| 久9久9精品| 丁香五月色情| 国产91久久九九免费精品无码| 成全动漫视频观看免费下载| 九九久久首页| 曰韩av中文字幕专区| 中文字幕日韩精品久久| 欧美综合色| 青青草狠狠撸| 久久不卡一区二区| 日日操天天操| 99自拍视频在线| 久久精品国产亚洲AV高级北京| 精品蜜乳AV免费观看| 蜜臀一区二区三区亚洲最新章节在线观看 - 高清蜜臀一区二区三区亚洲全集播放 | 天天拍夜夜| 色哟哟国产精品免费网址| 熟女乱伦A| 黄色人人| 诱惑网综合| 超碰色综合| 一本色道久久综合精品婷婷| 强上我不卡卡| 91色艳| 夜色五月天| 国产尤物AV尤物在线观看不卡| 嫩草美女久久| 操屄日韩| 中国一级特黄大片护士| 国产精品干干干| 男人天堂电影院| 大香蕉中文网| 蜜桃久久一区二区| 亚洲中文字幕av | 久久超碰98| 青青草大香蕉在线视频| 99在线观看无大码| 97视频在线免费播放| 老女人碰碰在线碰碰视频| 蜜臀久久久| 91路www| 亚州大图综合色图| 风月影院男女十八禁| 天天草AV| 国产精品夜夜| 人妻献身系列第54部| 欧美 日韩 亚洲 春色| 国产精品极品美女视频| 婷婷五月综合在线| 殴美,日韩国产伦精品| 久久精品视-一级做a爰片性色毛片16美国-中国女与老外在线精品 | 一区二区三区精品黑丝白丝酒店对鸡 | 东北操逼| 超碰99在线| 夜夜春夜夜操| 电家庭影院午夜69久久夜色精品国产69乱| 欧美精品成人一区二区在线观看| 亚洲国产尤物yw在线观看| 粉嫩av在线一区二区| 国产精品爽爽va在线观看98| 日日日日日| 亚洲自拍欧美国产首页网曝 | 日韩综合色图| 中文字幕乱码人妻二区三区| 深田咏美亚洲精品福利社| 久久久A∨| 日韩人妻精品中文字幕| 日韩精品午夜操呦呦不卡影院 | 青青草这里只有精品| 夜夜操美女| 99综合网| 一二三四区操操Av| 久操网址| 伊人一区二区三区| 91亚洲综合在线| 中国一级操逼视频| 男人的天堂2010| 67194无码不卡| 免费的很黄很污的全部视频| 激情综合五月婷婷| 国产久久日| 外国91| 日韩精品人妻| 偷窥自拍A片| 日韩精品电影| 久久首页| 91黑丝美女| 亚洲无线观看久久| 天美传媒av 在线| 国产sv美女内射| 小情侣高清国产在线视频| 欧美少妇色综合| 日韩中文字幕国产| 久久中文色图| 老子午夜伦不卡影院| 一区二区三区四区五区高清无码永久视频 | 另类综合另类| 久久精品一区二区| 在线观看一卡二卡| 亚洲资源站| 九九热精品| 中文字幕一区二区无码成人| 六月丁香久久| 天天干夜夜鈤| 亚洲 欧美都市激情| 久久久久久久| 人妻久热在线| 9国产超碰| 久久少妇视频| 日韩一性一交一A片俄罗斯| 9精品久久| 美国aaaaa一级黄片| 中国的操老妇女| 日本熟妇人妻中出视频| 日本高清一本二本免费不卡| 毛片电影一区二区三区| 日本在线伊人啪啪| 亚洲精品久| 欧美日韩大香蕉| 西西美女视频网| 黄片色区软件| 大香蕉一人| 污啪啪啪视频| 日韩精品在线放| 成熟熟女国产精品一区二区| 九九探花视频在线观看| 伊色久人大在线| 国产有码一区| 三级三级三级a级全黄三| 人伦四五区| 欧美美女自慰一区二区三区| www.久久制服糖| 夜夜做夜夜爽精品视频| 少妇二级| 午夜福利av电影在线| 性色高清..……| 国产欧美伊人| 亚洲AV噜噜狠狠网址蜜桃动漫| 九九九九一区| 大香蕉十区| 国产精品色片一区二区| 人妻少妇精品视频一区二区三区| n1038 一二三区| 久久99午夜精品一区人妻| 九色黄站| 欧美激情黑人| 中文字幕精品人妻丝袜| 久久精品国产96精品亚洲拳交| 9丨久久九九九| 人妻少妇精品久久久| 美女刺激久久国产欧美| 国产精品亚洲一级av第二区| 97天天| 午夜无码熟妇丰满人妻| 久久国产精品91| 自拍偷拍 日韩无码| 日韩欧美加勒比| 人妻无码一区二区三区久久99| 精品久久久九九九孕妇| 日本在线视频导航| 国产精品一区二区亚洲人成毛片| 加勒比综合在线| 成人热久久精品| 综合色图区| 免费强奸av| 色av中文字| 91麻豆va国产精品| 女人被男人桶爽视频网站| 超碰2017| K8久久久久| 日本顶级天天操狠狠操夜夜操中文字幕| 熟妇熟女亚洲天堂网| 黄色av片三级三级三级免费看| 欧美性爽xyxOOOO| 亚洲天堂男| 天天爽入口| 啊啊啊啊啊啊啊啊啊啊在线观看| 久久女人视频| 最新欧美色网| 狠狠爱综合网| 欧美很很操视频| 在线观看成人性爱免费小视频| 欧美日韩中文视频播放| 清纯唯美激情| 熟人人妻少妇精品久久| 少妇激情AV| 大乔未久88一区| juliaann丝袜大战黑鬼| 日本青青草在线| 人妻天堂综合网| A久久| 亚洲色综合| 蜜乳AV色欲AVAV无码| 福利视频一区二区微拍| 青青操综合网| 无码WWW免费视频网站| 精品无码久久久久久国产浪潮| 操国产逼| 18啪啪手机免费性爱| 国产精品久久久久久高清无码免费看| 呦呦一区| 欧美岛国精品在线观看| 日本黄大片在线观看视频| 国产一级舔足在线观看| 黄色免费一级在线毛片| 成人国产视频在线观看| 亚洲**2021在线观看| se吧提供91精品国产91久久久久久| 亚洲日韩人妻中文字幕一区| 日韩激情电影中文字幕| 一区操逼| 日韩一区二区高清在线观看的| 久久精品毛片免费不卡| 国产中文字幕曰本毛片| www…国产操逼| 色五月婷婷中文字幕| 五月综合激情网| 黄页大片在线观看| 亚洲色图20p| 成人精品一区二区三区| 久湿久久| 精品久久久久综合无码| 91人人| 黄片www视频免费| 人人操人人插 - 百度 - 百度| 操www| 思思性爱| 男人兔费天堂| 91天堂视频| 欧美性天天影院| 日产精品久久久一区二区| 嗯嗯啊啊操我| 亚洲免费成人在线高清无码视频| 日韩性爱免费视频在线网站| 五月丁香激情综合网| 91色碰| 97精品视频网站| 91欧| 91精品微拍福利| 强奸乱亚洲| 日本不卡卡一区| 亚洲超碰综合网| 久久香蕉国产线看观看亚洲女人| 操逼操2| 欧美午夜视频精品久久| 香蕉在线一区二区三区| 久久香蕉超碰97国产精品| 亚洲91在线播放影院| 干婷婷综合网| 91+欧美| 超碰吊日色| 国产精品探花色| 激情五月综合网| 国产精品suv一区| 欧美激情1区| 欧美一级特黄淫片在线观看| 综合熟女| 五月天欧美色图| 囯产精品久久久久久久久久梁医生| 久久社区一区二区三区| 黄色网址久久精品欧美喷水| 天天摸天天舔天天操| 成人怡红院| 欧洲一级性爱视频在线观看| 97青青操视频| 九九九成人| 国产免a费看黄片在线| 欧美性猛交美女自慰91| 色97国产69香蕉| 日韩一区二区精彩视频| 大香蕉亚洲中文| 97精品网站| www亚洲免费| 久久久工口| 亚洲色图A| 图片区小说区| 96国产污污污丝袜| 日本国产亚洲一区在线观看| 深爱激情五月天| 尤物视频新赏网鲜网色诱网| 韩国一级婬片A片无码天美| 欧美日韩性感| 欧美92| 色99视频| 亚州高清AV| 午夜福利成人免费视频| 快播电影网日韩新片| 理论久久婷婷网 8| 蜜桃臀av一区二区| 8050无码八戒| 91高潮喷水美女| 久草视频观看视频在线| 欧美在线啊啊啊| 人人操人人插 - 百度 - 百度| 亚洲婷婷五月天| 伊色久人大在线| 婷婷五月天色色| 加勒比无码毛片| 乱伦熟女区| 久久超碰天天| 日本黄 R色 成 人网站| 97日韩欧美亚洲| 99热精品在线播放| 国产午夜精品一区二区三区牛牛| 国产精品午夜高潮呻吟久久av| 熟女久久久| 久久性爱大全| 五月天日日操夜夜操| 亚洲五月婷婷| 久久人| 91亚洲青青草原精品1区| 永久免费观看的毛片的网站| 91逼逼女人91| 91露脸熟女专区| 蜜桃视频一区二区三区| 污污汅18禁网站在线永久免费观看| 97资源免费视频| 家庭乱伦网站国产| 精品无av| 97超碰69| 亚洲第一免费视频| 热久久无毒不卡| 深爱五月婷婷| 日韩肏逼视频| 亚洲AV不卡在线观看尤物| 老司机老司机午夜影院| 久久精品女同亚洲女同13| 五月天婷婷小说| 亚洲中文字幕熟女| 亚热日本熟女| 天美麻花大全视频| www国产无码| 啊啊啊不要好爽日韩无码一区| 国产一级操B视频| 日日骚网站| 91精品人妻一区二区三区蜜桃臀| 午夜亚洲国产理论秋霞| 欧美图片色五月天| 九九玖玖精品| 综合免费无码中文| 亚州性色| 欧美夜夜骑视频| 欧美性爱五月天| 伊人网免费视频| 激情无码日韩| 色97欧美| 欧美97日韩| 色婷婷丁香| WWW操逼| 超碰色大香蕉| 久偷拍| 婷婷五月天福利| 嫩草在线视频| 啊啊啊好舒服视频| 99只有精品| 少妇超碰在线| 99久久e免费热视| 国产色产精品在线观看| 热的中文 热的有码 热的国产| 麻豆人妻精品一区二区| 日韩美女操b| 久热一区二区| 97超碰国产亚洲精品| 亚洲日韩青青草色月| 婷婷久久网| 秋霞久久亚洲精品成人| 啊啊啊在线观看| 玖色av| 亚州熟妇精品| 99re这里只有精品3| 激情久久av一区av二区av| 一本色道久久天天射天天干| 激情小说激情视频| 久久99深爱久久99精品| 色婷婷成人综合| 天堂精品在线| 精品黑人一区二区| 十八禁av无码免费网站APP| 91亚洲综合| 久久线上视频免费看| 美女91av| 激情综合av| 国产SV一线| 久久一区无码| 2010男人的天堂| 99久久99九九99九九九| 成人免费福利网站国产| 日本三级A片网站com| 人人爱人人乐人人操| 欧美色另类| 婷婷8月天青娱乐| 91碰碰| 东京热大香焦| 校园春色亚洲无码| 金典av| 欧美激情久| 亚州综合AⅤ| 大香伊人在线一区| av午夜玫瑰| 天天日日本| 三上制服丝AV| 天天做天天爱天天爽AV| 蜜臀在线免费观看在线免费观看| 日韩精品99999| 欧美亚洲丝袜人妻制服99| 久草婷婷| 志村玲子视频一区二区| 五月天大香蕉| 四虎AV在线观看| 看日韩美女二区三区免费操逼视频 | 久草在| 色妇91| 哑洲在线| 天天久久久久久| 97神马久久| 日韩猛交| 天天日天天干天天操| 国产在线视频午夜精华在| 极品销魂美女一区二区 | 日韩精品资源专区二区| 亚洲一卡二卡在线免费| 欧美天天干| 夜间福利片1000无码| 色噜噜人妻丝袜a∨先锋影| 99热这里只有精品地址| 国产精品久久久久av| 五月天偷拍| 青青操97| 97操在线| 日本久久久久久久久久| 欧洲精品一级二级精品综合视频综合| 亚洲一区二区在线观看91| 韩日色费| 精品在线观看视频在线| 欧美性生活综合| 久久久久久久久久久久久久久性生活视频 | 中文字幕奈奈美被公侵犯| 国产剧情AV不卡在线观看| 婷婷五月av| 男人的天堂在线2| 精品九九九九九九九九九| 亚洲 中文 欧美 日韩 在线| 狼人狠干| 国产精品爱欲| av凤凰久久久| 97综合在线观看| 超碰69| 亚洲中文字幕网| 久久久不能久久久久| 久草草一二三四区久久| 欧美色图99| 国产在线能看的你懂的| 强奸乱伦大香蕉网| 天天射网| 国产精品高朝久久久久久久| 欧美中文综合| 免费超碰97在线观看| 大香蕉啪啪啪| 超碰538| 熟妇熟女一区二区三区| 亚洲国产精品有声| 91neishe| 人人摸人人舔一区二区| 人人操人人摸人人骑| 免费在线观看国内色片网站网址| 成人五月香网在线| 人人操人人射人人干| 久久久96| 最新日韩黄片| www.高清无码诱惑一区.com | 久久精品国内Av熟女高清| 高清国产av无码| 国产精品网站www| 三及片网站| 国产成人一级av88| 97久久资源| 黄页网站成人免费| 亚洲第一精品在线视频| 国产成人资源| 成年在线视频日本亚洲在线视频区精品江靖宇公司 | 另类图片五月天| 久久久久久久伊人精品| 免费观看欧美日韩操逼视频| 99999这里都精品| 少妇高潮流水av免费| 久久五月份| 91综合天天看| 久草免费福利在线播放| 亚洲影院小综合| 超碰97亚洲| 婷婷丁香六月| 性色高清..……| 五月婷网站| 97超碰天天爱天天爱| 久久东京热久久| 九色视频91| 人妻精品一区一区三区蜜桃91| 一本精品日本在线视频精品 | 激情久久av一区av二区av| 素颜老阿姨乱情色| 激情黄色片在线观看| 玖玖97综合| 欧美资源| 午夜精品一区二区三区三上悠亚| 东京热91| 国产激情视频在线观看| 亚洲色棕合| 男男H黄动漫啪啪无遮挡网站| 久久久九九九九| 国产高清精品一区二区三区毛片 | 日本男人插女人的逼黄色| 国产内射爽爽大片| 偷窥自拍亚洲色图| 欧洲久久一二线| 综合色图,成人综合网| 91亚洲人| 亚洲中文字幕噜噜噜久久久| 久久伊人影院| 无码9区| 九九九九精品九九九九| 美女啊啊啊啊啊啊啊| 97欧美| 日本三级小说中文字幕| 乱伦熟女论坛| 欧美一二三区四五区| 99久久精品无码一区二区毛片免费 | www.av在线观看| 91综合天天看| 色色操| 美女黄网| 天堂麻豆天美| 国产熟女完整版中字| 超碰97在线中文| 自慰白浆在线观看| 亚洲深夜福利| 操狠狠| 国产精品久久久久久久无码AV| 黑人中出21连凳花野真衣| 国产家庭乱伦性爱视频| 四虎在线免费视频| 97香蕉碰碰人妻国产欧美| 久久午夜神马| 人妻天天爽夜夜爽爽| 久久性爱视频99| 色网1| 久热久| 26uuu久久| 中文久久96| 操逼日韩无码| 欧美色网| 亚洲欧美精品久| 久久久夜夜嗨免费视频| 试看60秒 爽| 日韩电影天堂视频一区二区| 自拍偷拍 日韩无码| 91色亚洲| 午夜福利区| 干婷婷综合网| 一起草高清无码| 狠狠躁日日躁夜夜躁A| 丁香色五月 97干| 日本成a人v网站在线观看| 亚洲污污网站| 蜜臀国产AV中文字幕| 日本色色视频网站| 久99在线免费观看视频| 一区,二区,三区网站| 91成人久久| 色图综合网| 亚洲性感丝袜诱惑在线观看| 大香蕉免费中文| 18禁美女裸体无遮挡啪啪| 一本色道人妻久久| 国产精品suv一区| 五月天色综合| 久久黄色视频一区二区三区| 欧美性爱一区二区三区| 日本一天色道久久久精品视频| 国产97综合| 99国内精品| 亚洲中文一区二区三区视频| 久久久久久99AV无码免费网站| 玖玖大干人妻| 啊啊啊啊啊在线视频| 丁香六月婷| 亚洲第2页| 亚洲码在线中文在线观看| 91天天爽| 小骚逼被操的爽不爽| av优播| 久久久精品国产亚洲AV无码| 91精品久久久| 操逼操逼操| 精品日韩产品在线,日韩在线不卡视频,欧美日韩免费专区/久, | 天综合网欧美| 99999精品成人| 97操碰| 激情五月天社区| 91香蕉视频在线观看免费| 狠狠超| 99re这里只有精品2| 中文一区在线日| 国产精品午夜成人福利| 麻豆天美国美国产AV| 天天色综合天天操| 大香网站| 大学生口爆吞精| 69视频入口| 中文字幕一区二区视频在线观看| 91青青在线| 亚洲第一男人天堂| 亚洲啪啪啪啪视香蕉| 天天澡天天爽日日av| 日本精品人妻少妇一区二区| 男人的天堂啪啪啪啪啪蜜桃不卡| 欧美久久伊人| 可以免费观看的日韩av毛片| 伊人一区二区在线播放| 热思思免费视频| 天天看天天日天天操| 99re9| 中日韓欧美高清| 麻豆视频一区二区| 一区二区三区麻豆| 午夜亚洲| 78m成人视线| 亚洲图片 欧美电影| 男人天堂最新手机版在线青青草| 欧亚日韩综合精品国产| 亚洲欧洲无码一区夜| 欧洲精品一二三在线| 中文字幕人乱码中文字的预防方法 | 操九九九九九九| 素人美腿视频网站| 熟妇人妻一区二区三区| 欧美三级一级| 熟女一区二区| 伊人久久大香蕉线AV五月天| 久热精品色情| 欧美91网站| 国产精品动态一区二区三区四四| 好吊爽好吊爽在线视频,中文字幕精品一区二区日本,国产良妇出轨视频在线观看, | 午夜九九九九九九| 97超碰香蕉| 人人么人人操| AV一区观看| 欧亚乱色熟女一区二区| 国模少妇一区二区三区| 我要看免费韩日黄片| 志村玲子视频一区二区| 后入美女国产| 久久久久久久久九九久孕交| 高潮综合网| 熟女露脸激情自拍视频| 美女t无毒不卡不卡| 91色宗合| 免费国产电影一区二区| 人妻少妇被猛烈进入中| 亚洲蜜桃V妇女| 亚洲男人bt天堂| 久九九九九九九热| 欧美国产有色电影| 亚洲激情深爱文学小说网站| 久久久91| 岛国1区2区3区在线观看| 国产高清MV操逼视频| 丁香婷婷大香蕉| 久久久久中出| 自拍亚洲综合| 97视频免费播放| 亚洲精品乱码线路中文字幕| 久久高清欧美国产| 男人天堂婷婷五月天校园春色| 蜜臀人妻少妇久久在线观看| 久操影视| 天天综合欧美| 一起草日韩| 亚洲天堂区| 久啪| 97在线免费看视频| 亚洲,日韩,欧美,成人播放| 黑人精品成人一区二区三区| 新怡红院| 亚洲丝袜天堂| 色香综合天天影视综合 | 欧美桃色网|