在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美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ù)器頻繁訪問的數(shù)據(jù)。這就減少了數(shù)據(jù)庫(kù)的負(fù)載,并縮短應(yīng)用程序的響應(yīng)時(shí)間。在大規(guī)模應(yīng)用中,緩存分布在 Redis 服務(wù)器集群中。

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

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

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

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ì)某些共享資源的訪問時(shí),就會(huì)使用分布式鎖。Redis 通過其原子命令(如 SETNX, SET if Not eXists)來(lái)做分布式鎖。它允許調(diào)用者設(shè)置一個(gè)不存在的鍵。

比如,客戶端通過設(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)說已經(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ù)超過速率限制,則拒絕請(qǐng)求。Key可以設(shè)置為在特定時(shí)間窗口(如一分鐘)后過期,以重置下一個(gè)時(shí)間窗口的計(jì)數(shù)。

05 游戲排行榜

對(duì)于大多數(shù)規(guī)模不是很大的游戲來(lái)說,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)說,在 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ī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 數(shù)據(jù)庫(kù)
    +關(guān)注

    關(guān)注

    7

    文章

    3846

    瀏覽量

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

    關(guān)注

    0

    文章

    33

    瀏覽量

    3017
  • Redis
    +關(guān)注

    關(guān)注

    0

    文章

    378

    瀏覽量

    10942

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

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

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    如何使用Rust連接Redis

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

    Redis Stream應(yīng)用案例

    摘要: Redis Stream Redis最新的大版本5.0已經(jīng)RC1了,其中最重要的Feature莫過于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

    linux的redis安裝啟動(dòng)

    1.將下載好的壓縮包放到/usr/local目錄下# tar x*** redis-3.0.2.tar.gz# cd redis-3.0.2# make提示錯(cuò)誤 make: cc: Command not found make: *** [adlist.o] Error
    發(fā)表于 07-18 08:05

    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ǎng)頁(yè)展示redis中的數(shù)據(jù),然而再Linux系統(tǒng)重啟后網(wǎng)頁(yè)還能展示redis中的數(shù)據(jù),感覺很奇怪,到網(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 ?1161次閱讀
    什么是 <b class='flag-5'>Redis</b>

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

    ? 前言 今天跟小伙伴們一起學(xué)習(xí)Redis的主從、哨兵、Redis Cluster集群。 Redis主從 Redis哨兵 Redis Clu
    的頭像 發(fā)表于 06-12 14:58 ?887次閱讀
    <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 ?412次閱讀
    <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 ?625次閱讀
    如何用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 ?1214次閱讀

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

    redis是一款流行的開源內(nèi)存數(shù)據(jù)庫(kù),常用于緩存、消息隊(duì)列、任務(wù)管理等場(chǎng)景。在使用redis時(shí),了解如何查看redis日志對(duì)于排查問題、監(jiān)控性能和分析應(yīng)用程序行為非常重要。在本文中,我們將介紹在
    的頭像 發(fā)表于 12-05 10:10 ?3837次閱讀
    主站蜘蛛池模板: 在线婷婷 | 97视频碰碰车 | 午夜剧场一级片 | 日色视频 | 日本片免费观看一区二区 | 婷婷在线影院 | videosex久久麻豆| 男人午夜视频在线观看 | 男女午夜免费视频 | 无毒不卡在线播放 | 九九九精品 | 1000部啪啪未满十八勿入中国 | 我要看黄色一级毛片 | 男女在线视频 | 很黄很色网站 | 永久免费观看视频 | 永久黄网站色视频免费观看99 | 六月丁香婷婷激情国产 | 五月激情久久 | 欧美成人性动漫在线观看 | 久久天天躁夜夜躁狠狠躁2020 | 全是肉的高h短篇列车 | 天天干干天天 | 黄色在线观看国产 | 国产乱码免费卡1卡二卡3卡四 | 人人干在线 | 久久综合九色欧美综合狠狠 | 国产精品莉莉欧美自在线线 | 国产黄色a三级三级三级 | 欧美成人午夜毛片免费影院 | 亚洲欧美强伦一区二区另类 | 黄色成人在线 | 天天操夜夜草 | 老司机色网 | 天天干天天操天天插 | 日本三级三级三级免费看 | 中文字幕亚洲一区 | 十三以下岁女子毛片免费播放 | 天天操天天插天天射 | 99 久久99久久精品免观看 | 又污又黄的网站 |