redis認識

1、簡介

Redis是一個開源的使用C語言編寫、開源、支持網絡、可基於內存亦可持久化的日誌型、高性能的Key-Value數據庫,並提供多種語言的API。程序員

它一般被稱爲數據結構服務器,由於值(value)能夠是 字符串(String)、哈希(Map)、 列表(list)、集合(sets) 和 有序集合(sorted sets)等類型。redis

redis在整個運行過程當中,數據通通都是存儲在內存中的,所以,性能是至關高的,因爲此特性,redis對於內存的要求比較高,它會週期性的將內存中的數據寫入在磁盤中,從而實現數據持久化的訪問能力,可是這種存儲只是保證redis在下次啓動還有數據能夠讀取,而不是提供訪問。sql

redis是單線程服務的,只有一個線程 備註:redis是單線程,可是這並不意味着會成爲運行時的瓶頸,每秒可以支撐50W的併發。

redis還支持主從模式以及支持經過lua腳本去編寫擴展,而且支持高可用和分佈式集羣解決方案。數據庫

數據庫存儲系統分類服務器

常見的數據庫系統有如下幾類:網絡

RDBMS:Oracle、DB二、Mysql NoSQL:MongoDB、Redis、HBase、Memcached NewSQL:Aerospike、FounddtionDB、RethinkDB數據結構

而NoSQL又分爲如下幾類:併發

Key-Value NoSql:Memcached、Redis Column family NoSQL:Cassandra、HBase Documentation NoSQL:MongoDB Graph NoSQL:Neo4j分佈式

2、爲何使用redis

1.性能極高 – Redis能讀的速度是110000次/s,寫的速度是81000次/s 。性能

2.豐富的數據類型 – Redis支持二進制案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets 數據類型操做。

3.原子 – Redis的全部操做都是原子性的,同時Redis還支持對幾個操做全並後的原子性執行。

4.豐富的特性 – Redis還支持 publish/subscribe, 通知, key 過時等等特性。

Redis與其餘key-value存儲有什麼不一樣?

1.Redis有着更爲複雜的數據結構而且提供對他們的原子性操做,這是一個不一樣於其餘數據庫的進化路徑。Redis的數據類型都是基於基本數據結構的同時對程序員透明,無需進行額外的抽象。

2.Redis運行在內存中可是能夠持久化到磁盤,因此在對不一樣數據集進行高速讀寫時須要權衡內存,由於數據量不能大於硬件內存。在內存數據庫方面的另外一個優勢是,相比在磁盤上相同的複雜的數據結構,在內存中操做起來很是簡單,這樣Redis能夠作不少內部複雜性很強的事情。同時,在磁盤格式方面他們是緊湊的以追加的方式產生的,由於他們並不須要進行隨機訪問。

3、使用場景

相關文章
相關標籤/搜索