91在线观看视频-91在线观看视频-91在线观看免费视频-91在线观看免费-欧美第二页-欧美第1页

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

聊聊Redis的使用案例

小林coding ? 來(lái)源:小林coding ? 2023-12-13 14:13 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

今天我們來(lái)聊聊 Redis 的使用案例。

Redis 是一種內(nèi)存鍵值數(shù)據(jù)庫(kù)。它支持多種數(shù)據(jù)結(jié)構(gòu),如 String, Hash, List, Set 和 SortedSet。

01 緩存

Redis 的最常用的用例是緩存,以加快網(wǎng)絡(luò)應(yīng)用的速度。在這種用例中,Redis 將經(jīng)常請(qǐng)求的數(shù)據(jù)存儲(chǔ)在內(nèi)存中。它允許網(wǎng)絡(luò)服務(wù)器頻繁訪問(wèn)的數(shù)據(jù)。這就減少了數(shù)據(jù)庫(kù)的負(fù)載,并縮短應(yīng)用程序的響應(yīng)時(shí)間。在大規(guī)模應(yīng)用中,緩存分布在 Redis 服務(wù)器集群中。

Redis 作為分布式緩存時(shí)需要考慮的其他問(wèn)題包括:

設(shè)置正確的 TTL (Time to Live)

處理冷啟動(dòng)時(shí)對(duì)數(shù)據(jù)庫(kù)的密集訪問(wèn)

02 Session 存儲(chǔ)

另一個(gè)常見用例是將 Redis 用作 Session 存儲(chǔ),在無(wú)狀態(tài)服務(wù)之間共享 Session 數(shù)據(jù)。

當(dāng)用戶登錄網(wǎng)絡(luò)應(yīng)用程序時(shí),服務(wù)端會(huì)創(chuàng)建一個(gè)唯一的 Session ID,Session 數(shù)據(jù)會(huì)存儲(chǔ)在 Redis 中,然后 Session 作為 Cookie 的一部分返回給客戶端。

當(dāng)用戶向應(yīng)用程序發(fā)出請(qǐng)求時(shí),Session ID 會(huì)包含在請(qǐng)求中。無(wú)狀態(tài)網(wǎng)絡(luò)服務(wù)器會(huì)使用 Session 數(shù)據(jù)。值得注意的是 Redis 是內(nèi)存數(shù)據(jù)庫(kù)。如果 Redis 服務(wù)器重啟,存儲(chǔ)在 Redis 中的 Session 數(shù)據(jù)會(huì)丟失。

即使 Redis 提供了 RDB 和 AOF 等持久化選項(xiàng),但這些選項(xiàng)在重啟時(shí)加載數(shù)據(jù)的時(shí)間往往太長(zhǎng),不實(shí)用。在實(shí)際生產(chǎn)環(huán)境中,數(shù)據(jù)會(huì)復(fù)制到備份實(shí)例。如果主實(shí)例崩潰,備份迅速升級(jí),接管流量。

03 分布式鎖

需要協(xié)調(diào)對(duì)某些共享資源的訪問(wèn)時(shí),就會(huì)使用分布式鎖。Redis 通過(guò)其原子命令(如 SETNX, SET if Not eXists)來(lái)做分布式鎖。它允許調(diào)用者設(shè)置一個(gè)不存在的鍵。

比如,客戶端通過(guò)設(shè)置一個(gè)唯一的 Key 來(lái)獲取鎖:

SETNXlock"1234abcd"EX3

如果 Key 尚未設(shè)置,SETNX 命令返回 1,表明鎖已被客戶端獲取。客戶端完成工作后 刪除 Key ,釋放鎖。

如果 Key 已被設(shè)置,SETNX 命令返回 0,表明鎖已被其他客戶機(jī)持有。在這種情況下,客戶端會(huì)等待并重試 SETNX 操作,直到鎖被其他客戶端釋放。

請(qǐng)注意,這種簡(jiǎn)單的實(shí)現(xiàn)對(duì)于許多用例來(lái)說(shuō)已經(jīng)足夠好了,但并非完全容錯(cuò)。對(duì)于生產(chǎn)應(yīng)用,許多 Redis 客戶端庫(kù)提供高質(zhì)量的分布式鎖實(shí)現(xiàn)。

04 限流

Redis 可用作限流。一個(gè)非常基本的限流算法是這樣工作的:

對(duì)于每個(gè)用戶請(qǐng)求,其請(qǐng)求的 IP 或用戶 ID 用作 Key。每個(gè)請(qǐng)求都會(huì)使鍵值遞增。將當(dāng)前計(jì)數(shù)與允許的速率限制進(jìn)行比較,如果計(jì)數(shù)在速率限制范圍內(nèi),則處理請(qǐng)求。如果計(jì)數(shù)超過(guò)速率限制,則拒絕請(qǐng)求。Key可以設(shè)置為在特定時(shí)間窗口(如一分鐘)后過(guò)期,以重置下一個(gè)時(shí)間窗口的計(jì)數(shù)。

05 游戲排行榜

對(duì)于大多數(shù)規(guī)模不是很大的游戲來(lái)說(shuō),Redis 是一種很好的實(shí)現(xiàn)方式。SortedSet 是實(shí)現(xiàn)這一功能的基本數(shù)據(jù)結(jié)構(gòu)。

SortedSet 的每個(gè)元素都有一個(gè)與之相關(guān)的分?jǐn)?shù)。元素按分?jǐn)?shù)排序。這樣就可以在對(duì)數(shù)時(shí)間內(nèi) 完成排序。

06 購(gòu)物車

我們可以使用 Hash 來(lái)表示購(gòu)物車中的鍵值對(duì)。對(duì)于簡(jiǎn)單的電商平臺(tái)來(lái)說(shuō),在 Redis 中實(shí)現(xiàn)購(gòu)物車可以兼顧用戶體驗(yàn)和快速交付。

07 計(jì)算用戶留存率

我們可以使用 Bitmap 來(lái)表示每天登錄的用戶并計(jì)算用戶保留率。這種計(jì)數(shù)功能占用的內(nèi)存很少。

08 消息隊(duì)列

我們可以使用 List 來(lái)做消息隊(duì)列。也可以使用 Redis 的 PubSub 功能來(lái)實(shí)現(xiàn)類似的消息總線功能。

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 數(shù)據(jù)庫(kù)
    +關(guān)注

    關(guān)注

    7

    文章

    3927

    瀏覽量

    66269
  • 消息隊(duì)列
    +關(guān)注

    關(guān)注

    0

    文章

    34

    瀏覽量

    3133
  • Redis
    +關(guān)注

    關(guān)注

    0

    文章

    387

    瀏覽量

    11454

原文標(biāo)題:面試官:Redis 除了用作緩存還能干嘛?

文章出處:【微信號(hào):小林coding,微信公眾號(hào):小林coding】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    如何使用Rust連接Redis

    Redis是一款快速、開源、鍵值存儲(chǔ)數(shù)據(jù)庫(kù),被廣泛應(yīng)用于緩存、發(fā)布/訂閱系統(tǒng)、定時(shí)任務(wù)等場(chǎng)景中。Rust提供了很多Redis的客戶端庫(kù),本教程將會(huì)介紹如何使用Rust連接Redis,以及如何通過(guò)
    的頭像 發(fā)表于 09-19 16:22 ?2942次閱讀

    Redis Stream應(yīng)用案例

    摘要: Redis Stream Redis最新的大版本5.0已經(jīng)RC1了,其中最重要的Feature莫過(guò)于Redis Stream了,關(guān)于Redis Stream的基本使用介紹和設(shè)計(jì)
    發(fā)表于 06-26 17:15

    redis概述

    REmote DIctionary Server(Redis)是一個(gè)基于key-value鍵值對(duì)的持久化數(shù)據(jù)庫(kù)存儲(chǔ)系統(tǒng)。redis和大名鼎鼎的Memcached緩存服務(wù)軟件很像,但是redis支持
    發(fā)表于 07-17 07:38

    Redis使用總結(jié)

    Spring+SpringMVC+MyBatis+easyUI整合進(jìn)階篇(十四)Redis緩存正確的使用姿勢(shì)
    發(fā)表于 09-05 08:31

    laravel使用redis

    laravel操作redis筆記!
    發(fā)表于 09-24 09:40

    啟動(dòng)Redis的三種方法

    Redis筆記(1)——安裝、卸載、三種方法啟動(dòng)RedisRedis命令使用(干貨十足),Redis兩種方法設(shè)置密碼,時(shí)間復(fù)雜度(更完善哦~)
    發(fā)表于 06-08 16:09

    如何使得redis中的數(shù)據(jù)不再有

    嵌入式Linux系統(tǒng)重啟后如何使得redis中的數(shù)據(jù)不再有今天在工作中遇到一個(gè)問(wèn)題:網(wǎng)頁(yè)展示redis中的數(shù)據(jù),然而再Linux系統(tǒng)重啟后網(wǎng)頁(yè)還能展示redis中的數(shù)據(jù),感覺(jué)很奇怪,到網(wǎng)上搜了下
    發(fā)表于 11-05 08:50

    labview讀寫操作REDIS

    本帖最后由 SevenLi8408 于 2022-9-15 08:07 編輯 分享一個(gè)好用的非關(guān)系型緩存數(shù)據(jù)庫(kù)的使用方法。REDIS桌面管理軟件https://github.com
    發(fā)表于 08-15 10:32

    什么是 Redis

    ? — ? 1 ?— 什么是 RedisRedis(REmote DIctionary Service)是一個(gè)開源的鍵值對(duì)數(shù)據(jù)庫(kù)服務(wù)器。 Redis 更準(zhǔn)確的描述是一個(gè)數(shù)據(jù)結(jié)構(gòu)服務(wù)器。Re
    的頭像 發(fā)表于 05-22 15:32 ?1421次閱讀
    什么是 <b class='flag-5'>Redis</b>

    Redis的主從、哨兵、Redis Cluster集群

    ? 前言 今天跟小伙伴們一起學(xué)習(xí)Redis的主從、哨兵、Redis Cluster集群。 Redis主從 Redis哨兵 Redis Clu
    的頭像 發(fā)表于 06-12 14:58 ?1100次閱讀
    <b class='flag-5'>Redis</b>的主從、哨兵、<b class='flag-5'>Redis</b> Cluster集群

    Redis 的數(shù)據(jù)清理策略

    本文整理 Redis 的數(shù)據(jù)清理策略所有代碼來(lái)自 Redis version :5.0, 不同版本的 Redis 策略可能有調(diào)整
    發(fā)表于 09-19 14:24 ?600次閱讀
    <b class='flag-5'>Redis</b> 的數(shù)據(jù)清理策略

    如何用Springboot整合Redis

    本篇文件我們來(lái)介紹如何用Springboot整合Redis。 1、Docker 安裝 Redis 1.1 下載鏡像 docker pull redis: 6 . 2 . 6 1.2 創(chuàng)建配置文件
    的頭像 發(fā)表于 10-08 14:56 ?840次閱讀
    如何用Springboot整合<b class='flag-5'>Redis</b>

    Java redis鎖怎么實(shí)現(xiàn)

    在Java中實(shí)現(xiàn)Redis鎖涉及到以下幾個(gè)方面:Redis的安裝配置、Redis連接池的使用、Redis數(shù)據(jù)結(jié)構(gòu)的選擇、實(shí)現(xiàn)分布式鎖的幾種方式等。 一、
    的頭像 發(fā)表于 12-04 10:47 ?1481次閱讀

    redis容器內(nèi)怎么查看redis日志

    redis是一款流行的開源內(nèi)存數(shù)據(jù)庫(kù),常用于緩存、消息隊(duì)列、任務(wù)管理等場(chǎng)景。在使用redis時(shí),了解如何查看redis日志對(duì)于排查問(wèn)題、監(jiān)控性能和分析應(yīng)用程序行為非常重要。在本文中,我們將介紹在
    的頭像 發(fā)表于 12-05 10:10 ?4776次閱讀

    Redis開源版與Redis企業(yè)版,怎么選用?

    點(diǎn)擊“藍(lán)字”關(guān)注我們數(shù)以千計(jì)的企業(yè)和數(shù)以百萬(wàn)計(jì)的開發(fā)人員Redis開源版來(lái)構(gòu)建應(yīng)用程序。但隨著用戶數(shù)量、數(shù)據(jù)量和地區(qū)性的增加,成本、可擴(kuò)展性、運(yùn)營(yíng)和可用性等問(wèn)題也隨之而來(lái)。Redis企業(yè)版
    的頭像 發(fā)表于 04-04 08:04 ?1582次閱讀
    <b class='flag-5'>Redis</b>開源版與<b class='flag-5'>Redis</b>企業(yè)版,怎么選用?
    主站蜘蛛池模板: 天天视频一区二区三区 | 天天做天天爱夜夜爽毛片毛片 | 毛片午夜 | 亚洲一区二区三区免费在线观看 | 国产亚洲高清在线精品不卡 | 天天爽夜爽免费精品视频 | 国产色妞妞在线观看 | 俄罗斯美女在线观看一区 | 美女国产一区 | 亚洲视频一区在线观看 | 四虎网址最新 | 色接久久 | 最近2018中文字幕2019视频 | 老司机深夜影院入口aaaa | 一个人看的www片免费高清视频 | 亚洲五月综合网色九月色 | 婷婷亚洲五月琪琪综合 | 色香淫欲 | 免费在线播放视频 | 性欧美久久 | 亚洲免费黄色网 | 黄网站在线观看永久免费 | 丁香婷婷久久 | 国产又黄又爽又猛的免费视频播放 | 中文字幕一区二区三区永久 | 欧美黄色大片免费 | 狠狠做深爱婷婷久久一区 | 欧美3d动漫网站 | 成年片免费网址网站 | 中文天堂最新版在线精品 | 操操操操网 | 国产成都一二三四区 | 免费福利影院 | 免费的国语一级淫片 | 就去色综合 | 高清一区二区在线观看 | sss在线play| 一区二区不卡免费视频 | 波多野结衣三个女人蕾丝边 | 国产特黄特色的大片观看免费视频 | 日本免费网站 |