net開發(fā)的網(wǎng)站開發(fā)網(wǎng)站seo優(yōu)化排名
1. 是什么
Redis:REmote Dictionary Server(遠(yuǎn)程字典服務(wù)器)
Remote Dictionary Server( 遠(yuǎn)程字典服務(wù))是完全開源的,使用ANSIC語(yǔ)言編寫遵守BSD協(xié)議,是一個(gè)高性能的Key-Value數(shù)據(jù)庫(kù)提供了豐富的數(shù)據(jù)結(jié)構(gòu),例如String、Hash、List、Set、SortedSet等等。數(shù)據(jù)是存在內(nèi)存中的,同時(shí)Redis支持事務(wù)、持久化、LUA腳本、發(fā)布/訂閱、緩存淘汰、流技術(shù)等多種功能特性提供了主從模式、Redis Sentinel和Redis Cluster集群架構(gòu)方案?
2. 能干嗎
2.1 主流功能與應(yīng)用
1.? 分布式緩存,擋在mysql數(shù)據(jù)庫(kù)之前的帶刀護(hù)衛(wèi)
與傳統(tǒng)數(shù)據(jù)庫(kù)關(guān)系(mysql)
Redis是key-value數(shù)據(jù)庫(kù)(NoSQL一種),mysql是關(guān)系數(shù)據(jù)庫(kù)
Redis數(shù)據(jù)操作主要在內(nèi)存,而mysql主要存儲(chǔ)在磁盤
Redis在某一些場(chǎng)景使用中要明顯優(yōu)于mysql,比如計(jì)數(shù)器、排行榜等方面
Redis通常用于一些特定場(chǎng)景,需要與Mysql一起配合使用
兩者并不是相互替換和競(jìng)爭(zhēng)關(guān)系,而是共用和配合使用
2.?內(nèi)存存儲(chǔ)和持久化(RDB+AOF)redis支持異步將內(nèi)存中的數(shù)據(jù)寫到硬盤上,同時(shí)不影響繼續(xù)服務(wù)3. 高可用架構(gòu)搭配, 單機(jī),主從,哨兵,集群
4. 緩存穿透,擊穿,雪崩
5. 分布式鎖
6. 隊(duì)列
Reids提供list和set操作,這使得Redis能作為一個(gè)很好的消息隊(duì)列平臺(tái)來(lái)使用。
我們常通過(guò)Reids的隊(duì)列功能做購(gòu)買限制。比如到節(jié)假日或者推廣期間,進(jìn)行一些活動(dòng),
對(duì)用戶購(gòu)買行為進(jìn)行限制,限制今天只能購(gòu)買幾次商品或者一段時(shí)間內(nèi)只能購(gòu)買一次。也比較適合適用。
7. 排行版+點(diǎn)贊
在互聯(lián)網(wǎng)應(yīng)用中,有各種各樣的排行榜,如電商網(wǎng)站的月度銷量排行榜、社交APP的禮物排行榜、小程序的投票排行榜等等。Redis提供的zset數(shù)據(jù)類型能夠快速實(shí)現(xiàn)這些復(fù)雜的排行榜。
比如小說(shuō)網(wǎng)站對(duì)小說(shuō)進(jìn)行排名,根據(jù)排名,將排名靠前的小說(shuō)推薦給用戶
?
2.2 總體概述
?
2.3 優(yōu)勢(shì)
1.?性能極高 - Redis能讀的速度是110000次/秒,寫的速度是81000次/秒
2. Redis數(shù)據(jù)類型主富,不僅僅支持簡(jiǎn)單的key-value類型的數(shù)據(jù)同時(shí)還提供list,set,zset,hash等數(shù)據(jù)結(jié)構(gòu)的存儲(chǔ)
?
3. Redis支持?jǐn)?shù)據(jù)的持久化,可以將內(nèi)存中的數(shù)據(jù)保持在磁盤中重啟的時(shí)候可以再次加載進(jìn)行使用
4. Redis支持?jǐn)?shù)據(jù)的備份,即master-slave模式的數(shù)據(jù)備份
2.4 小總結(jié)
3. 去哪下載
3.1 官網(wǎng)地址
英文文檔
1. https://redis.io
中午文檔
2. http://www.redis.cn
3. http://www.redis.com.cn/documentation.html
3.2 下載安裝包
https://redis.io.download
本次使用redis7
?
redis6安裝如下
?
3.3 其他文檔資料
1. redis源碼地址
https://github.com/redis/redis
2. redis在線測(cè)試
https://try.redis.io
3. redis命令參考
http://doc.redisfans.com
?
4. 如何使用
4.1 官網(wǎng)
4.2?多種數(shù)據(jù)類型基本操作和配置
4.3 持久化和復(fù)制,RDB/AOF
4.4 事務(wù)的控制
4.5 復(fù)制,集群等
5. redis迭代演化和redis7新特性淺談
5.1?Redis7.0新特性概述
1. 新特性
https://github.com/redis/redis/releases
2. 部分新特性總覽Redis Functions
Client-eviction?
Multi-part AOF2新增命令
listpack替代ziplist
底層性能提升(和編碼關(guān)系不大)
5.2?本次將對(duì)Redis7的一部分新特性做說(shuō)明(not all)
總體概述:
大體和之前的redis版本保持一致和穩(wěn)定,主要是自身底層性能和資源利用率上的優(yōu)化和提高,如果你生產(chǎn)上系統(tǒng)穩(wěn)定,不用著急升級(jí)到最新的redis7版本,當(dāng)然,如果你是從零開始的新系統(tǒng),直接上Redis7.0-GA版。
多AOF文件支持 7.0 版本中一個(gè)比較大的變化就是 aof 文件由一個(gè)變成了多個(gè),主要分為兩種類型:基本文件(base files)、增量文件(incr files),請(qǐng)注意這些文件名稱是復(fù)數(shù)形式說(shuō)明每一類文件不僅僅只有一個(gè)。在此之外還引入了一個(gè)清單文件(manifest) 用于跟蹤文件以及文件的創(chuàng)建和應(yīng)用順序(恢復(fù)) config命令增強(qiáng) 對(duì)于Config Set 和Get命令,支持在一次調(diào)用過(guò)程中傳遞多個(gè)配置參數(shù)。例如,現(xiàn)在我們可以在執(zhí)行一次Config Set命令中更改多個(gè)參數(shù): config set maxmemory 10000001 maxmemory-clients 50% port 6399限制客戶端內(nèi)存使用 Client-eviction一旦 Redis 連接較多,再加上每個(gè)連接的內(nèi)存占用都比較大的時(shí)候, Redis總連接內(nèi)存占用可能會(huì)達(dá)到maxmemory的上限,可以增加允許限制所有客戶端的總內(nèi)存使用量配置項(xiàng),redis.config 中對(duì)應(yīng)的配置項(xiàng) // 兩種配置形式:指定內(nèi)存大小、基于 maxmemory 的百分比。maxmemory-clients 1gmaxmemory-clients 10% listpack緊湊列表調(diào)整 listpack 是用來(lái)替代 ziplist 的新數(shù)據(jù)結(jié)構(gòu),在 7.0 版本已經(jīng)沒(méi)有 ziplist 的配置了(6.0版本僅部分?jǐn)?shù)據(jù)類型作為過(guò)渡階段在使用)listpack 已經(jīng)替換了 ziplist 類似 hash-max-ziplist-entries 的配置 訪問(wèn)安全性增強(qiáng)ACLV2 在redis.conf配置文件中,protected-mode默認(rèn)為yes,只有當(dāng)你希望你的客戶端在沒(méi)有授權(quán)的情況下可以連接到Redis server的時(shí)候可以將protected-mode設(shè)置為no Redis FunctionsRedis函數(shù),一種新的通過(guò)服務(wù)端腳本擴(kuò)展Redis的方式,函數(shù)與數(shù)據(jù)本身一起存儲(chǔ)。 簡(jiǎn)言之,redis自己要去搶奪Lua腳本的飯碗 RDB保存時(shí)間調(diào)整 將持久化文件RDB的保存規(guī)則發(fā)生了改變,尤其是時(shí)間記錄頻度變化 命令新增和變動(dòng)Zset (有序集合)增加 ZMPOP、BZMPOP、ZINTERCARD 等命令 Set (集合)增加 SINTERCARD 命令LIST (列表)增加 LMPOP、BLMPOP ,從提供的鍵名列表中的第一個(gè)非空列表鍵中彈出一個(gè)或多個(gè)元素。 性能資源利用率、安全、等改進(jìn)自身底層部分優(yōu)化改動(dòng),Redis核心在許多方面進(jìn)行了重構(gòu)和改進(jìn) 主動(dòng)碎片整理V2:增強(qiáng)版主動(dòng)碎片整理,配合Jemalloc版本更新,更快更智能,延時(shí)更低HyperLogLog改進(jìn):在Redis5.0中,HyperLogLog算法得到改進(jìn),優(yōu)化了計(jì)數(shù)統(tǒng)計(jì)時(shí)的內(nèi)存使用效率,7更加優(yōu)秀更好的內(nèi)存統(tǒng)計(jì)報(bào)告如果不為了API向后兼容,我們將不再使用slave一詞......(政治正確)