Redis是什么?看這一篇就夠了!
公眾號(hào)關(guān)注“杰哥的IT之旅”, 選擇“星標(biāo)”,重磅干貨,第一時(shí)間送達(dá)!
薅起來(lái)!當(dāng)當(dāng)限時(shí) 3 折購(gòu)書!

來(lái)源:https://www.cnblogs.com/powertoolsteam/p/redis.html
公眾號(hào)關(guān)注“杰哥的IT之旅”, 選擇“星標(biāo)”,重磅干貨,第一時(shí)間送達(dá)! 薅起來(lái)!當(dāng)當(dāng)限時(shí) 3 折購(gòu)書!
來(lái)源:https://www.cnblogs.com/powertoolsteam/p/redis.html
引言
低延遲的讀寫速度:應(yīng)用快速地反應(yīng)能極大地提升用戶的滿意度 支撐海量的數(shù)據(jù)和流量:對(duì)于搜索這樣大型應(yīng)用而言,需要利用PB級(jí)別的數(shù)據(jù)和能應(yīng)對(duì)百萬(wàn)級(jí)的流量 大規(guī)模集群的管理:系統(tǒng)管理員希望分布式應(yīng)用能更簡(jiǎn)單的部署和管理 龐大運(yùn)營(yíng)成本的考量:IT部門希望在硬件成本、軟件成本和人力成本能夠有大幅度地降低
Redis是什么
基于內(nèi)存運(yùn)行,性能高效 支持分布式,理論上可以無(wú)限擴(kuò)展 key-value存儲(chǔ)系統(tǒng) 開源的使用ANSI C語(yǔ)言編寫、遵守BSD協(xié)議、支持網(wǎng)絡(luò)、可基于內(nèi)存亦可持久化的日志型、Key-Value數(shù)據(jù)庫(kù),并提供多種語(yǔ)言的API
C/S通訊模型 單進(jìn)程單線程模型 豐富的數(shù)據(jù)類型 操作具有原子性 持久化 高并發(fā)讀寫 支持lua腳本
github twitter 微博 Stack Overflow 阿里巴巴 百度 美團(tuán) 搜狐
Redis的應(yīng)用場(chǎng)景有哪些?

Redis的數(shù)據(jù)類型及主要特性

String類型:
GET/MGET SET/SETEX/MSET/MSETNX INCR/DECR GETSET DEL
哈希類型:
HGET/HMGET/HGETALL HSET/HMSET/HSETNX HEXISTS/HLEN HKEYS/HDEL HVALS
列表類型:
LPUSH/LPUSHX/LPOP/RPUSH/RPUSHX/RPOP/LINSERT/LSET LINDEX/LRANGE LLEN/LTRIM
集合類型:
SADD/SPOP/SMOVE/SCARD SINTER/SDIFF/SDIFFSTORE/SUNION
順序集合類型:
ZADD/ZPOP/ZMOVE/ZCARD/ZCOUNT ZINTER/ZDIFF/ZDIFFSTORE/ZUNION
Redis的數(shù)據(jù)結(jié)構(gòu)

壓縮列表是列表鍵和哈希鍵的底層實(shí)現(xiàn)之一。當(dāng)一個(gè)列表鍵只包含少量列表項(xiàng),并且每個(gè)列表項(xiàng)要么就是小整數(shù),要么就是長(zhǎng)度比較短的字符串,Redis就會(huì)使用壓縮列表來(lái)做列表鍵的底層實(shí)現(xiàn) 整數(shù)集合是集合鍵的底層實(shí)現(xiàn)之一,當(dāng)一個(gè)集合只包含整數(shù)值元素,并且這個(gè)集合的元素?cái)?shù)量不多時(shí),Redis就會(huì)使用整數(shù)集合作為集合鍵的底層實(shí)現(xiàn)

簡(jiǎn)單動(dòng)態(tài)字符串SDS (Simple Dynamic String)

SDS的特點(diǎn)



Redis特性1:事務(wù)
命令序列化,按順序執(zhí)行 原子性 三階段: 開始事務(wù) - 命令入隊(duì) - 執(zhí)行事務(wù) 命令:MULTI/EXEC/DISCARD
Redis特性2:發(fā)布訂閱(Pub/Sub)
Pub/sub是一種消息通訊模式 Pub發(fā)送消息, Sub接受消息 Redis客戶端可以訂閱任意數(shù)量的頻道 “fire and forgot”, 發(fā)送即遺忘 命令:Publish/Subscribe/Psubscribe/UnSub

Redis特性3:Stream
Redis 5.0新增 等待消費(fèi) 消費(fèi)組(組內(nèi)競(jìng)爭(zhēng)) 消費(fèi)歷史數(shù)據(jù) FIFO

Redis常見問題解析:擊穿

第一次訪問 惡意訪問不存在的key Key過期
服務(wù)器啟動(dòng)時(shí), 提前寫入 規(guī)范key的命名, 通過中間件攔截 對(duì)某些高頻訪問的Key,設(shè)置合理的TTL或永不過期
Redis常見問題解析:雪崩
使用Redis集群 限流
Redis在產(chǎn)品開發(fā)中的應(yīng)用實(shí)踐
后端采用nodeJS 使用Azure的Redis服務(wù) Redis的使用場(chǎng)景
“網(wǎng)絡(luò)抖動(dòng)”或者Redis服務(wù)異常導(dǎo)致Redis訪問超時(shí) Redis客戶端驅(qū)動(dòng)穩(wěn)定性問題
進(jìn)階之Redis協(xié)議簡(jiǎn)介
簡(jiǎn)單 解析速度快 可讀性好
每一個(gè)node兩個(gè)tcp 連接 一個(gè)負(fù)責(zé)client-server通訊(P: 6379) 一個(gè)負(fù)責(zé)node之間通訊(P: 10000 + 6379)

簡(jiǎn)單字符(首字節(jié): “+”)
“+OK\r\n”
錯(cuò)誤(首字節(jié): “-”)
“-error msg\r\n”
數(shù)字(首字節(jié): “:”)
“:123\r\n”
批量字符(首字節(jié): “$”)
“&hello\r\nWhoa re you\r\n”
數(shù)組(首字節(jié): “*”)
“*0\r\n”
“*-1\r\n”
除了Redis,還有什么NoSQL型數(shù)據(jù)庫(kù)

總結(jié)
如果您覺得這篇文章對(duì)您有點(diǎn)用的話,麻煩您為本文來(lái)個(gè)四連:轉(zhuǎn)發(fā)分享、點(diǎn)贊、點(diǎn)在看、留言,因?yàn)檫@將是我寫作與分享更多優(yōu)質(zhì)文章的最強(qiáng)動(dòng)力!
本公眾號(hào)全部博文已整理成一個(gè)目錄,請(qǐng)?jiān)诠娞?hào)后臺(tái)回復(fù)「m」獲取!
推薦閱讀:
1、史上最全 Redis 總結(jié),你想知道的都在這里啦!
2、學(xué) Redis,至少要看看這篇!7000 字小結(jié)
3、Redis 使用的 10 個(gè)小技巧!
4、請(qǐng)收好這一份詳細(xì) & 清晰的計(jì)算機(jī)網(wǎng)絡(luò)基礎(chǔ)學(xué)習(xí)指南!
5、打造一款高逼格的 Vim 神器!
6、超清晰的 DNS 原理入門指南! 關(guān)注微信公眾號(hào)「杰哥的IT之旅」,后臺(tái)回復(fù)「1024」查看更多內(nèi)容,回復(fù)「加群」備注:地區(qū)-職業(yè)方向-昵稱?即可加入讀者交流群。
推薦閱讀:
2、學(xué) Redis,至少要看看這篇!7000 字小結(jié)
3、Redis 使用的 10 個(gè)小技巧!
4、請(qǐng)收好這一份詳細(xì) & 清晰的計(jì)算機(jī)網(wǎng)絡(luò)基礎(chǔ)學(xué)習(xí)指南!
5、打造一款高逼格的 Vim 神器!
6、超清晰的 DNS 原理入門指南!
點(diǎn)個(gè)[在看],是對(duì)杰哥最大的支持!
評(píng)論
圖片
表情

