1.redis是一個基于內(nèi)存的高性能key-value數(shù)據(jù)庫怕午。
2.redis是單線程的,利用IO多路復(fù)用技術(shù)將并發(fā)訪問變?yōu)榇性L問,同時提高了訪問效率倾贰,以及原子化。
3.redis常用5種數(shù)據(jù)類型也必須掌握的類型:String稠腊、List躁染、Set、Sort Set架忌、Hash
4.redis常用淘汰策略:
- noeviction:不刪除策略
- allkeys-lru:優(yōu)先刪除最少使用的key
- volatile-lru:優(yōu)先刪除設(shè)置過期時間且最少使用的key
- allkeys-random:隨機刪除key
- volatile-random:從設(shè)置過期時間的key中隨機刪除
- volatile-ttl:優(yōu)先刪除剩余時間短的key
5.redis持久化方案
- rdb:存儲文件小吞彤,恢復(fù)速度快,但是恢復(fù)時由于持久化間隔時間問題叹放,可能存在數(shù)據(jù)丟失饰恕,rdb文件可能存在redis版本差異
- aof:支持秒級持久化,兼容性好井仰,但是存儲文件大埋嵌,恢復(fù)速度慢,影響性能
- 在新版redis中俱恶,已經(jīng)支持上述兩種持久化方案共同使用
6.redis過期策略
- 1.定時刪除:每個key設(shè)置過期時間同時設(shè)置定時任務(wù)雹嗦,可是對cpu不友好,影響服務(wù)器性能合是。
- 2.惰性刪除:每次使用時了罪,判斷是否過期,進(jìn)行刪除處理聪全。會導(dǎo)致內(nèi)存一直不釋放泊藕,甚至內(nèi)存泄漏。
- 3.定期刪除:每隔一段時間难礼,對過期的鍵進(jìn)行移除娃圆。也可能造成內(nèi)存泄漏玫锋。
最好的方案是惰性刪除和定期刪除共同使用。
7.redis讼呢,hash漸進(jìn)式擴(kuò)容
8.zset中使用跳躍表來實現(xiàn)有序撩鹿。
9.bitmap在日常業(yè)務(wù)中的使用場景
- 用戶簽到
- 統(tǒng)計活躍用戶
10.redis的發(fā)布訂閱適用場景
適用于一些實時性要求比較高,允許重啟等造成數(shù)據(jù)丟失的場景吝岭。
比如:娛樂直播中的雙人pk等三痰。