Redis概念、數據結構、特點及使用場景

目錄

 

1、概念

2、數據結構

3、特點優勢

1.可持久化

2. 支持數據類型多

3. 性能極高

4.原子性

5.數據備份

6.特性豐富

4、使用場景

1.分佈式鎖

2.會話緩存

3.排行榜/計數器

4.發佈/訂閱


1、概念

Redis 是完全開源免費的,遵守 BSD 協議,是一個高性能的 key-value 數據庫。C語言編寫。Redis 是單進程單線程的,Redis 利用隊列技術將併發訪問變爲串行訪問,消除了傳統數據庫串行控制的開銷。

2、數據結構

Redis 支持五種數據類型:string(字符串),hash(哈希),list(列表), set(集合)及 zsetsorted set:有序集合)。

我們實際項目中比較常用的是 string,hash。 如果你是 Redis 中高級用戶,還需要加上下面幾種數據結構 HyperLogLog、Geo、Pub/Sub。

如果你說還玩過 Redis Module,像 BloomFilter,RedisSearch,Redis-ML。

3、特點優勢

1.可持久化

   Redis支持數據的持久化,可以將內存中的數據保存在磁盤中,重啓的時候可以再次加載進行使用

2. 支持數據類型多

   Redis不僅僅支持簡單的 key-value 類型的數據,同時還提供 list,set,zset,hash 等數據結構的存儲

3. 性能極高

   Redis 能讀的速度是 110000 次/s,寫的速度是 81000 次/s

4.原子性

  Redis 的所有操作都是原子性的,意思就是要麼都成功執行,要麼都失敗不執行。 單個操作是原子性的,多個操作也支持事        務, 即原子性, 通過 MULTI 和 EXEC指令包起來

5.數據備份

  Redis支持數據的備份,即 master-slave 模式的數據備份

6.特性豐富

  Redis 還支持 publish/subscribe,通知,key 過期等等特性

4、使用場景

1.分佈式鎖

可以結合Redisson來使用分佈式鎖,實現併發控制。參考這篇文章:Redis分佈式鎖(Redisson)實現原理分析

2.會話緩存

比較常用的一種使用 Redis 的情景是會話緩存(session cache)。用 Redis 緩存會話比其他存儲(如 Memcached)的優勢在於:Redis 提供持久化。當維護一個不是嚴格要求一致性的緩存時,比如購物車。當然,可以緩存會話,也可以緩存其它類型數據了,緩存一些查詢頻繁且變動不頻繁的數據也很合適了,也是很常用的業務場景

3.排行榜/計數器

Redis 在內存中對數字進行遞增或遞減的操作實現的非常好。集合(Set)和有序集合(Sorted Set)也使得我們在執行這些操作的時候變的非常簡單,Redis 只是正好提供了這兩種數據結構

4.發佈/訂閱

發佈/訂閱的使用場景比較多,Redis也支持發佈/訂閱功能,但是相比RabbitMQ這些專業的MQ,Redis的發佈/訂閱可能會丟失消息,一般不推薦使用

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章