中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Redis實現緩存的思路有哪些

發布時間:2021-11-15 14:38:21 來源:億速云 閱讀:177 作者:柒染 欄目:大數據

Redis實現緩存的思路有哪些,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。

場景一:類似于微博,實現關注和被關注功能。

思路:

對每個用戶使用兩個集合類型鍵,用來存儲關注別人的用戶和被該用戶關注的用戶。當用戶A關注用戶B的時候,執行兩步操作:

sadd user:A B

sadd user:B A

問題1:

完成一次用戶關注操作,需要執行兩步代碼,第一次實現用戶A關注B,成為了B的粉絲。而第二步的時候,因為某種原因沒有執行或執行成功,則A并不知道B關注了自己

事務:

事務的原理是,先將一個事務的命令發送給Redis,然后再讓Redis依次執行這些命令。

一個事務中,要么都執行成功,要么都不執行

Redis實現緩存的思路有哪些

multi命令告訴redis準備介紹事務,先暫存起來,不要執行。然后發送需要一起執行的命令,最后exec結束事務,redis依次執行那么命令

如果在執行exec命令之前,因為某種原因,redis斷掉了,Redis會清空事務隊列.

問題2:

有些時候,我們不僅需要通過事務來處理一些必須一起成功的動作,比如銀行轉賬,從銀行卡1轉出錢到銀行卡2,必須是都一起成功,不能說從銀行卡1中扣完錢之后,沒有進到銀行卡2賬上,兩者動作比如都要完成。還有些時候,我們既要一起完成,也需要根據其中一步操作的結果來進行下一步操作

WATCH命令

watch,事務中的另一個命令。監控一個或多個鍵,一旦其中一個鍵被修改或刪除,之后的事務就不會執行,一直到exec結束。

Redis實現緩存的思路有哪些

通過watch監控key1,之后修改了key1,所以事務中的set命令并沒有執行

場景二:限時活動,緩存,驗證碼失效

在實際開發中,經常會遇到限時活動,郵箱失效時間,驗證碼失效時間等場景,這些數據需要在一定的時間內有效,過期刪除,如果在關系型數據庫中保存這些數據,每次校驗都需要查詢數據,對比時間,然后將數據置為失效,或者刪除。而在Redis中,則可以通過expire設置失效時間,自動刪除。

Redis實現緩存的思路有哪些

expire設置失效時間,時間單位秒。成功返回1,如果key不存在返回0

Redis實現緩存的思路有哪些

當 key 不存在時,返回 -2 。 當 key 存在但沒有設置剩余生存時間時,返回 -1 。

注意:在 Redis 2.8 以前,當 key 不存在,或者 key 沒有設置剩余生存時間時,命令都返回 -1

實現緩存

為了提供網站的負載能力,需要將一個訪問頻路較高,且經過復雜計算或者IO資源消耗較大的操作的結果緩存起來,并設置一個失效時間。每次用戶訪問的時候,先檢查該鍵是否存在,如果存在直接獲取該元素并返回,如果不存在,則經過一系列計算并將結果緩存,設置失效時間,在返回給用戶

問題:

這種緩存的實現,顯然會有兩個問題,第一個是緩存都是存在內容中的,如果大量的使用緩存會導致Redis沾滿內存,另一方面,為了防止Redis沾滿內存而設置失效時間的鍵,如果設置時間太短,就可能導致緩存命中率過低并且大量內容白白浪費。

使用方式:

在開發中,很難合理的設置鍵的生存時間,所以可以限制Redis使用的最大內存,并讓Redis按照一定規則刪除一些不需要的鍵。

具體方式,修改配置文件的maxmemory參數

Redis實現緩存的思路有哪些

OS X下通過Homebrew安裝的redis的話,配置文件在/usr/local/etc/redis.conf

限制Redis最大內存之后,當超出了這個內存,會根據maxmemory-policy

Redis實現緩存的思路有哪些

指定的參數刪除不需要的鍵。當設置此參數為allkeys-lru,一旦Redis內存超過了限制值時,Redis會不斷刪除數據庫中最近最少使用的鍵,直到滿足了當前內存大小限制。

看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

全州县| 城市| 台中市| 孟村| 育儿| 石家庄市| 广灵县| 桦南县| 准格尔旗| 万全县| 建德市| 德江县| 鄂托克前旗| 宜良县| 西盟| 将乐县| 加查县| 大洼县| 永州市| 岐山县| 松桃| 广西| 永胜县| 台江县| 蓝山县| 阿拉善左旗| 阜城县| 改则县| 宁都县| 青阳县| 曲沃县| 大英县| 舒城县| 墨脱县| 德兴市| 普兰县| 平和县| 康定县| 佛学| 浦东新区| 隆德县|