日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

redis知识归纳

發(fā)布時(shí)間:2025/3/11 编程问答 16 豆豆
生活随笔 收集整理的這篇文章主要介紹了 redis知识归纳 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

目錄

    • Redis有哪些數(shù)據(jù)結(jié)構(gòu)?
    • 有大量key需要設(shè)置同一時(shí)間過期,需要注意什么?
    • Redis分布式鎖怎么回事?
    • 假設(shè)Redis里有1億個(gè)key,其中有10萬個(gè)key是以同一個(gè)固定前綴開頭,如何將它們?nèi)空页?#xff1f;
    • 如何用Redis做異步隊(duì)列?
    • Redis是如何持久化的?

Redis有哪些數(shù)據(jù)結(jié)構(gòu)?

String、Hash、List、Set、SortedSet,還有HyperLoglog,Geo,Pub/Sub。

有大量key需要設(shè)置同一時(shí)間過期,需要注意什么?

會(huì)引發(fā)的問題:
大量的key過期時(shí)間設(shè)置過于集中時(shí),過期時(shí)間點(diǎn)一到,redis可能會(huì)出現(xiàn)短暫的卡頓。嚴(yán)重情況下會(huì)出現(xiàn)緩存雪崩。

怎么解決:
一般在時(shí)間上加一個(gè)隨機(jī)值,使過期時(shí)間分散些。

造成緩存雪崩的說明:
——場(chǎng)景:電商首頁經(jīng)常使用定時(shí)任務(wù)刷新緩存。
——特殊情況下:可能大量數(shù)據(jù)失效時(shí)間特別集中,如果在失效時(shí)間點(diǎn)涌入大量用戶,就有可能造成緩存雪崩。

Redis分布式鎖怎么回事?

先用setnx來爭(zhēng)搶鎖,搶到后,用expire給鎖加一個(gè)過期時(shí)間來防止忘記釋放鎖。
——特殊情況下:setnx執(zhí)行之后,還沒用expire之前,進(jìn)程意外crash或者重啟維護(hù)了會(huì)導(dǎo)致這個(gè)鎖永遠(yuǎn)得不到釋放。
——建議:set指令有非常復(fù)雜的參數(shù),可以同時(shí)把setnx和expire合成一條指令。

假設(shè)Redis里有1億個(gè)key,其中有10萬個(gè)key是以同一個(gè)固定前綴開頭,如何將它們?nèi)空页?#xff1f;

使用keys指令可以掃出指定模式的key列表。
——特殊情況下:如果這個(gè)Redis正在給線上的業(yè)務(wù)提供服務(wù)。由于Redis是單線程的特性,keys指令會(huì)導(dǎo)致線程阻塞一段時(shí)間。線上服務(wù)會(huì)停頓,直到keys指令執(zhí)行完畢,服務(wù)才能恢復(fù)。
——建議:使用scan指令,scan指令是可以無阻塞的提取出指定模式的key列表。但是會(huì)有一定的重復(fù)概率,需要在客戶端做一次去重。但是整體花費(fèi)時(shí)間會(huì)比keys指令長(zhǎng)。

如何用Redis做異步隊(duì)列?

一般使用list結(jié)構(gòu)作為隊(duì)列,rpush生產(chǎn)消息,lpop消費(fèi)消息。
——特殊情況下:當(dāng)lpop沒有消息的時(shí)候。
——建議:要適當(dāng)sleep一會(huì)再重試,或者使用blpop阻塞住直到有消息到來。
——能不能生產(chǎn)一次消費(fèi)多次?使用pub/sub主題訂閱者模式,可以實(shí)現(xiàn)1:N的消息隊(duì)列。

Redis是如何持久化的?

RDB做鏡像全量持久化,AOF做增量持久化。
在redis重啟實(shí)例時(shí),會(huì)使用RDB持久化文件,重新構(gòu)建內(nèi)存,再使用AOF重放近期的操作指令,來實(shí)現(xiàn)完整恢復(fù)到重啟前狀態(tài)。
可以把RDB理解為一整個(gè)表全量的數(shù)據(jù),AOF理解為每次操縱的日志。
——特殊情況下:機(jī)器掉電數(shù)據(jù)會(huì)怎么樣?取決于AOF日志sync屬性的配置。
——建議:不要求性能情況下,每條寫指令時(shí)都sync一下磁盤,就不會(huì)丟失數(shù)據(jù);高性能要求下,一般使用定時(shí)sync,比如1秒一次,這時(shí)候最多丟失1秒的數(shù)據(jù)。

參考來源:掘金-敖丙-redis基礎(chǔ)

總結(jié)

以上是生活随笔為你收集整理的redis知识归纳的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。