Redis是什么?看這一篇就夠了!
公眾號關注“杰哥的IT之旅”, 選擇“星標”,重磅干貨,第一時間送達!
薅起來!當當限時 3 折購書!

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

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ù)結構

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

簡單動態(tài)字符串SDS (Simple Dynamic String)

SDS的特點



Redis特性1:事務
命令序列化,按順序執(zhí)行 原子性 三階段: 開始事務 - 命令入隊 - 執(zhí)行事務 命令: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新增 等待消費 消費組(組內(nèi)競爭) 消費歷史數(shù)據(jù) FIFO

Redis常見問題解析:擊穿

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

簡單字符(首字節(jié): “+”)
“+OK\r\n”
錯誤(首字節(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ù)庫

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

