搜尋
首頁資料庫Redisredis用在哪裡

redis用在哪裡

Jun 25, 2019 am 11:45 AM
redis

redis用在哪裡

1. 高並發快取/共享session:

    UserInfo getUserInfo (long id) {}

#    取:

    userRedisKey = "user:info:" id;

    value = redis.get(userRedisKey );

    if (value != null) {

userInfo = deserialize(value);

           return userInfo;

    }

#    儲存:

    }

#    儲存:

   InfoInfo = ***getoo);

    redis.setex(userRedisKey, 3600, serialize(userInfo));

    用string儲存序列化後的數據,不夠立體直觀,可以轉為hmset儲存為哈希結構,存取更直觀

 

2. 簡單分散式鎖定

    setnx只有在不存在時才設定成功,其餘只能等待。單線程

 

3. 計數器incr,因為是單線程,比cas等少了cpu消耗,性能更高

    long incrVideoCounter ( long id) {

          key = "video:playCount:" id;

          return redis.incr(key);

#4. 實現棧/隊列

    棧:       lpush lpop

    隊列:    lpush rpop 

 

5. 流量控制/限速

    phoneNum = "12345678999";

    key = "shortMsg:limit:"  phoneNum;

##   dis. key, 1, "EX 60", "NX");

    if (isExists != null || redis.incr(key)            //透過

    } else {

          //不通過

    }

 

6. 消息隊列

    使用lpush brpop可實現阻塞佇列,生產者從列表左端lpush插入元素,多個消費者從右端brpop阻塞取得佇列尾部元素

 

#7. 每個使用者有自己的文章,現在要分頁展示文章清單

    hmset article:1 title xx context XXXX

##    hmset article:1 title xx context XXXX

    lpush user:1:articles srticle:1 articles:3

    articles = lrange user:1:articles 0 9

    for article in {articles}

          hgetall {article}

#          hgetall {article}

> #8. 追蹤按讚等

    讚: zincrby user:ranking:2016_03_15 mike 1

    取消: zrem user:ranking:2016_03_15 mike

取得讚  最多的10位使用者: zrevrangebyrank user:ranking:2016_03_15 0 9

    顯示使用者資訊與分數: hgetall user:info:tom /  zscore user:ranking:2016_03_15 mike /  zscore user:ranking:2016_03_15 mike /

9. bitmaps 計算大數據集合見的關係等 ## 

10. 排行榜

     mike上傳了一個影片並獲得了3個讚  zadd user:ranking:2016_03_15 mike 3

     又有人給了一個讚# 

11. 共同關注

     為使用者新增追蹤標籤  sadd user:1:tags tag1 tag2    user:1

     共同關注  sinter user:1:tags user:2:tags

     sinter/sunion/sdiff

 

12.發佈訂閱

     subscribe video:changes:     publish video:changeds "video1,video2"

   (video)

 

每種資料type對應了多種底層資料結構實作(object encoding),可以透過資料大小長度場景等切換,達到更高的效率

持久化RDB(子進程創建,二進位文件,恢復快,不夠實時)/AOF(appendonly。文字文件,即時寫入操作先aop_buffer,然後透過配置寫入磁碟間隔,寫入磁碟,達到一定大小合併)

批次hmget等操作要轉為hscan等漸進式遍歷方法,否則容易阻塞

緩衝:客戶端緩衝(輸入/輸出),複製積壓緩衝,aof緩衝

複製: 全量/增量 複製偏移量/複製積壓緩衝(寫入命令發送給從伺服器同時也維護一個先進先出的佇列,等於主服務還保存著最近傳播的命令)/ID

sentinal: 實現高可用,本身是特殊的redis節點,可以自己配置集群,透過心跳等機制監控redis資料集群,當某一節點出現故障不可用,可以及時發現並自動遷移

cluster: 分佈式集群,容錯選主等。將實體結點對應到16383個插槽實現動態性

更多Redis相關技術文章,請造訪Redis教學欄位進行學習!

以上是redis用在哪裡的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
REDIS與數據庫:性能比較REDIS與數據庫:性能比較May 14, 2025 am 12:11 AM

Redisoutperformstraditionaldatabasesinspeedforread/writeOperationsDuetoitsin-memorynature,niletraditionalditionalditionalditationaldatabasesexcelcelincomplexqueriessanddaintegrity.1)redisisisisideSidealForrealForreal-timeanalyticsanticanticanticanticanticantic.2)

我什麼時候應該使用redis代替傳統數據庫?我什麼時候應該使用redis代替傳統數據庫?May 13, 2025 pm 04:01 PM

用戶edisinsteadofatraditionaldatabasewhenyourapplicationrequirespeedandreal-timedataprocorsing,sueAsAsforCaching,sessionmanagement,orrereal-timeanalytics.redisexcelsin:1)caching,緩存,減少載荷載量

REDIS:超越SQL- NOSQL的觀點REDIS:超越SQL- NOSQL的觀點May 08, 2025 am 12:25 AM

Redis超越SQL數據庫的原因在於其高性能和靈活性。 1)Redis通過內存存儲實現極快的讀寫速度。 2)它支持多種數據結構,如列表和集合,適用於復雜數據處理。 3)單線程模型簡化開發,但高並發時可能成瓶頸。

REDIS:與傳統數據庫服務器的比較REDIS:與傳統數據庫服務器的比較May 07, 2025 am 12:09 AM

Redis在高並發和低延遲場景下優於傳統數據庫,但不適合複雜查詢和事務處理。 1.Redis使用內存存儲,讀寫速度快,適合高並發和低延遲需求。 2.傳統數據庫基於磁盤,支持複雜查詢和事務處理,數據一致性和持久性強。 3.Redis適用於作為傳統數據庫的補充或替代,但需根據具體業務需求選擇。

REDIS:功能強大的內存數據存儲的簡介REDIS:功能強大的內存數據存儲的簡介May 06, 2025 am 12:08 AM

Redisisahigh-performancein-memorydatastructurestorethatexcelsinspeedandversatility.1)Itsupportsvariousdatastructureslikestrings,lists,andsets.2)Redisisanin-memorydatabasewithpersistenceoptions,ensuringfastperformanceanddatasafety.3)Itoffersatomicoper

Redis主要是數據庫嗎?Redis主要是數據庫嗎?May 05, 2025 am 12:07 AM

Redis主要是一個數據庫,但它不僅僅是數據庫。 1.作為數據庫,Redis支持持久化,適合高性能需求。 2.作為緩存,Redis提升應用響應速度。 3.作為消息代理,Redis支持發布-訂閱模式,適用於實時通信。

REDIS:數據庫,服務器還是其他?REDIS:數據庫,服務器還是其他?May 04, 2025 am 12:08 AM

redisisamultifaceTedToolThatServesAsAdatabase,server和more.itfunctionsasanin-memorydatastrustore,supportsvariousDataStructures,and CanbeusedAsacache,MessageBroker,sessionStorage,sessionStorage,sessionstorage,andford forderibedibedlocking。

REDIS:揭示其目的和關鍵應用程序REDIS:揭示其目的和關鍵應用程序May 03, 2025 am 12:11 AM

Redisisanopen-Source,內存內部的庫雷斯塔氏菌,卡赫和梅斯吉級,excellingInsPeedAndVersatory.itiswidelysusedforcaching,Real-Timeanalytics,Session Management,Session Managements,and sessighterboarderboarderboardobboardotoitsssupportfortfortfortfortfortfortfortfortorvortfortfortfortfortfortforvortfortforvortforvortforvortfortforvortforvortforvortforvortdatastherctuct anddatataCcessandcessanddataaCces

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

Atom編輯器mac版下載

Atom編輯器mac版下載

最受歡迎的的開源編輯器

SublimeText3 英文版

SublimeText3 英文版

推薦:為Win版本,支援程式碼提示!

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

mPDF

mPDF

mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

Dreamweaver Mac版

Dreamweaver Mac版

視覺化網頁開發工具