溫馨提示×

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

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Redis的高級(jí)特性

發(fā)布時(shí)間:2021-09-03 14:43:02 來(lái)源:億速云 閱讀:128 作者:chen 欄目:大數(shù)據(jù)

本篇內(nèi)容主要講解“Redis的高級(jí)特性”,感興趣的朋友不妨來(lái)看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來(lái)帶大家學(xué)習(xí)“Redis的高級(jí)特性”吧!

應(yīng)用場(chǎng)景

  • 緩存系統(tǒng):用于緩解數(shù)據(jù)庫(kù)的高并發(fā)壓力

  • 計(jì)數(shù)器:使用Redis原子操作,用于社交網(wǎng)絡(luò)的轉(zhuǎn)發(fā)數(shù),評(píng)論數(shù),粉絲數(shù),關(guān)注數(shù)等

  • 排行榜:使用zset數(shù)據(jù)結(jié)構(gòu),進(jìn)行排行榜計(jì)算

  • 實(shí)時(shí)系統(tǒng):使用Redis位圖的功能實(shí)現(xiàn)布隆過(guò)濾器,進(jìn)而實(shí)現(xiàn)垃圾郵件處理系統(tǒng)

  • 消息隊(duì)列:使用list數(shù)據(jù)結(jié)構(gòu),消息發(fā)布者push數(shù)據(jù),多個(gè)消息訂閱者通過(guò)阻塞線程pop數(shù)據(jù),以此提供簡(jiǎn)單的消息隊(duì)列能力


之所以說(shuō)簡(jiǎn)單,是因?yàn)镽edis官方不提供可靠消費(fèi)/發(fā)布的機(jī)制;需要自行實(shí)現(xiàn)故障轉(zhuǎn)移、隊(duì)列持久化、隊(duì)列監(jiān)控和流量控制等mq具備的功能

高級(jí)功能

慢查詢

慢查詢只記錄Redis在處理存儲(chǔ)的時(shí)間計(jì)數(shù)(圖中的3步驟),并不包含網(wǎng)絡(luò)通信時(shí)間和排隊(duì)時(shí)間,所以客戶端超時(shí)分析時(shí)要綜合每個(gè)因素。

Redis的高級(jí)特性

注意:

  • 慢查詢保存數(shù)量參數(shù)不要設(shè)置過(guò)小,同時(shí)最好能定期持久化慢查詢記錄,方便歷史問(wèn)題排查。

pipline

pipline用于異步處理大量Redis請(qǐng)求。

注意:

  • 大量任務(wù)需要?jiǎng)澐殖龆鄠€(gè)pipline進(jìn)行操作(否則,網(wǎng)絡(luò)和等待時(shí)間都承受壓力)。

  • pipline每次只能作用在一個(gè)Redis節(jié)點(diǎn)上。

  • M操作(mget,mset類似的指令)相比pipline,前者是原子操作,后者并不是。Redis會(huì)把一個(gè)攜帶很多命令的pipeline拆分成幾個(gè)子命令。

Redis的高級(jí)特性

發(fā)布訂閱

Redis 發(fā)布訂閱(pub/sub)是一種消息通信模式:發(fā)送者(pub)發(fā)送消息,訂閱者(sub)接收消息。

注意:

  • Redis無(wú)法做消息堆積(新訂閱者無(wú)法獲取歷史訂閱消息)

Redis的高級(jí)特性

bitmap

字符串big對(duì)應(yīng)的二進(jìn)制(ASCII碼)如圖所示, bitmap可以直接操控位。使用每個(gè)數(shù)位代表一個(gè)用戶或者狀態(tài),相比int數(shù)據(jù)結(jié)構(gòu)保存,節(jié)省了32倍的內(nèi)存空間。

注意:

  • bitmap并不是適合所有場(chǎng)景去替換常規(guī)的數(shù)據(jù)存儲(chǔ)

  • bit是string類型,最大只能存512MB

  • 注意setbit函數(shù)會(huì)自動(dòng)補(bǔ)位,所以生產(chǎn)環(huán)境要注意setbit的偏移量,可能會(huì)造成較大的耗時(shí)

Redis的高級(jí)特性

Hyperloglog

基于HyperLogLog算法,實(shí)現(xiàn)用極小空間完成獨(dú)立數(shù)量的統(tǒng)計(jì),類型本質(zhì)是string。

注意:

  • 無(wú)法保證數(shù)據(jù)完全正確。官網(wǎng)說(shuō)明錯(cuò)誤率為0.81%

  • 無(wú)法取到單條數(shù)據(jù)

GEO

GEO(地理信息定位)是Redis3.2版本發(fā)布的功能,存儲(chǔ)經(jīng)緯度,計(jì)算兩地距離,范圍計(jì)算等,類型本質(zhì)是zset。

Redis-sentinel

Redis哨兵是Redis2.8版本發(fā)布的功能,解決Redis集群的故障轉(zhuǎn)移等痛點(diǎn),支持高可用。

Redis-cluster

Redis集群是Redis3.0版本發(fā)布的功能,支持分布式

到此,相信大家對(duì)“Redis的高級(jí)特性”有了更深的了解,不妨來(lái)實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI