Redis初識

本文將從Redis簡介、Redis特性回顧、Redis安裝、Redis典型應用場景四部分進行介紹Redis,讀完本文,你將會對Redis的特性和功能有初步的瞭解。html

Redis簡介

Redis是什麼?

Redis是一個開源的(BSD許可)、速度很是快非關係數據庫(non-relational database),它能夠存儲鍵(key)與5中不一樣數據類型的值(value)之間的映射(mapping)。瞭解Redis數據結構能夠參考Redis數據結構和經常使用APIc++

誰在使用Redis
git

GitHubTwitterStack Overflow
阿里巴巴、百度、微博

Redis特性回顧

  • 速度快

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

思考:Redis速度爲何這麼快?redis

其實,Redis的數據存儲於內存中。有計算機方面基礎知識的知道,從寄存器到硬盤,速度愈來愈慢,空間愈來愈大,價格愈來愈便宜,正以下面這張圖所示:數據庫

下面這張表更直觀:編程

類型
每秒讀寫次數
隨機讀寫延遲
訪問帶寬
內存
千萬級
80ns
5GB
SSD盤
35000
0.1-0.2ms
100-300MB
機械盤
100左右
10ms
100MB左右

 由於Redis數據存儲於內存中,因此速度性能優於存儲於硬盤的MySQL數據庫。緩存

  • 持久化(斷電不丟失數據)

Redis全部數據保持在內存中,對數據的更新將異步保存到磁盤上。服務器

Redis擁有兩種不一樣形式的持久化方法,他們均可以用小而緊湊的格式將存儲在內存中的數據寫入硬盤:第一種持久化方法爲時間點轉儲(point-in-time dump),轉儲操做既能夠在「指定時間段內有指定數量的寫操做執行」這一條件被知足時執行,又能夠經過調用兩條轉儲到硬盤命令中的任何一條來執行;第二種持久化方法將全部修改了的數據庫的命令都寫入一個只追加文件裏面,用戶能夠根據數據的重要程度,將只追加寫入設置爲從不一樣步、每秒同步一次或者每寫入一個命令就同步一次。網絡

  • 多種數據結構

Redis支持 Strings, Lists, Hashes, Sets 及 Ordered Sets 數據類型操做。

另外還有BitMap:位圖;HyperLogLog:超小內存惟一值計數;GEO:地理信息位置。

  • 支持多種編程語言

Redis支持JavaPHPPythonRubyLuaNode Js等編程語言。

  • 功能豐富

Redis支持發佈訂閱、Lua腳本、事務、pipeline(流水線)等功能。

  • 簡單

Redis不依賴外部數據庫;

Redis的全部操做都是原子性的,意思就是要麼成功執行要麼失敗徹底不執行。

  • 主從複製

執行復制的從服務器會鏈接上主服務器,接收主服務器發送的整個數據庫的初始副本;以後主服務器執行的寫命令,都會被髮送給全部鏈接着的從服務器去執行,從而實現實時更新從服務器的數據集。由於從服務器包含的數據會不斷地進行更新,因此客戶端能夠向任意一個從服務器發送讀請求,以此來避免對主服務器進行集中式的訪問。

  • 高可用、分佈式

Redis-Sentinelv2.8)支持高可用

Redis-Clusterv3.0)支持分佈式

 Redis安裝

Linux安裝(Centos 7爲例

下載壓縮包
$ wget http://download.redis.io/releases/redis-5.0.3.tar.gz
解壓文件:
$ tar xzf redis-5.0.3.tar.gz
進入解壓目錄:
$ cd redis-5.0.3
編譯安裝:
$ make MALLOC=libc
注意:請確保機器已經安裝過gcc和gcc-c++,否則會有報錯:
運行Redis服務器:
$ src/redis-server

Windows安裝

下載地址:https://github.com/MSOpenTech/redis/releases

下載 Redis-x64-xxx.zip壓縮包到 C 盤,解壓後,將文件夾從新命名爲 redis。

雙擊redis-server.exe便可啓動:

若是想方便的話,能夠把 redis 的路徑加到系統的環境變量裏,能夠直接經過redis-server啓動。

 可執行文件說明

redis-serverRedis服務器

redis-cliRedis命令行客戶端

redis-benchmarkRedis性能測試工具

redis-check-aofAOF文件修復工具

redis-check-dumpRDB文件檢查工具

redis-sentinelSentinel服務器

啓動方法和如何選擇

直接啓動:上面Centos 7的啓動方式是直接啓動
後臺啓動:

1.修改redis.conf文件:修改daemonize爲yes,即默認之後臺程序方式運行。

經常使用配置:

daemonize -->是不是守護進程(no|yes)
port --> Redis對外端口號
logfile -->Redis日誌系統
dir -->Redis工做目錄

2.而後使用redis.conf啓動

cd redis-5.0.3/
./redis-server /usr/local/redis-5.0.3/redis.conf
如何選擇?
生產環境選擇配置啓動
單機多實例配置文件能夠用端口區分開

 Redis典型使用場景

做爲NoSQL數據庫,Redis不適合交易場景,主要用來作數據分析、報表、數據挖掘、推薦、日誌處理等非核心交易場景,如:

  • 緩存系統

  • 計數器:轉發數、點贊數、播放數等

  • 消息隊列系統

  • 排行榜

  • 社交網絡

  • 實時系統

相關文章
相關標籤/搜索