前言
這個redis系列的文章将會記錄部落客學習redis的過程。基本上現在的網際網路公司都會用到redis,是以學習這門技術于你于我都是有幫助的。
部落客在寫這個系列是用的是目前最新版本4.0.10,虛拟機裝的是4.0.10,為了友善window也安裝了(版本3.2.100)。後續指令會采用指令行,jedis和spring內建jedis這三種方式進行操作。
在這片博文的開始,可以先試着問幾個問題,帶着問題看博文,或許能更有收獲。
- 什麼是redis?
- 為什麼要使用redis?
- 如何搭建redis環境?
什麼是redis?
Redis 是開源的(
Github位址),采用BSD協定,C語言編寫的、支援網絡、可基于記憶體亦可持久化的日志型、Key-Value資料庫。
它支援不同類型的value,包括string(字元串)、list(連結清單)、set(集合)、zset(sorted set --有序集合)和hash(哈希類型)、基數統計的算法 HyperLogLogs, 位圖Bitmaps 。
這些資料的操作不僅僅有設定值和擷取值方法,還支援更複雜的操作方式,例如交集、并集、差集等等。
為什麼要使用redis
想要知道為什麼要使用redis前,需要先知道為什麼要用緩存。
為什麼要用緩存
當一個應用的資料量或者使用者量上來後,如果每一次的查詢都去通路資料庫,或造成資料庫效率變慢甚至崩潰。
而且在大多數應用中都是讀多寫少的,就可以将這些經常讀的資料放到另外一個地方去(也就是緩存),讓系統先從這個地方(緩存)擷取,擷取不到在查詢資料庫。這樣可以大大的減少資料庫的壓力。
有沒有其他的緩存
有,經常與redis做比較的memcache,這裡就不比較它們的差別了,有興趣的可以自己搜尋。
我們來看看redis的其它方面
redis特點
- Redis支援資料的持久化,可以将記憶體中的資料保持在磁盤中,重新開機的時候可以再次加載進行使用。
- Redis不僅僅支援簡單的key-value類型的資料,同時還提供list,set,zset,hash等資料結構的存儲。
- Redis支援資料的備份,即master-slave模式的資料備份。
Redis 優勢
- 性能極高 – Redis能讀的速度是110000次/s,寫的速度是81000次/s 。
- 豐富的資料類型 – Redis支援二進制案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets 資料類型操作。
- 原子 – Redis的所有操作都是原子性的,同時Redis還支援對幾個操作全并後的原子性執行。
- 豐富的特性 – Redis還支援 publish/subscribe, 通知, key 過期等等特性。
下載下傳
window上的64位redis下載下傳位址
https://github.com/MicrosoftArchive/redis/releaseslinux 官網位址:
https://redis.io/download目前官網首頁提供的版本是4.0.10
Redis版本清單 :
http://download.redis.io/releases/window
将下載下傳下來的檔案解壓或者安裝,目錄如下

輕按兩下redis-server.exe啟動redis服務
輕按兩下redis-cli.exe啟動redis用戶端
linux
用linux指令wget
wget http://download.redis.io/releases/redis-4.0.10.tar.gz
或者從官網下載下傳,然後上傳檔案到linux上
解壓
tar xzf redis-4.0.10.tar.gz
進入redis目錄,編譯
cd redis-4.0.10
make
啟動服務
src/redis-server
或者進入src目錄
./redis-server
想要背景啟動最後加個
&
src/redis-server &
這樣啟動的話,系統已重新開機又要重新啟動redis服務
我們可以加到系統啟動裡面,讓它開機自啟動
注:出現問題 Could not connect to Redis at 127.0.0.1:6379: Connection refused
找到redis目錄的redis.conf 檔案
修改
為
daemonize no
,也就是将no改為yes,目的是開啟守護線程模式,可以在背景運作
daemonize yes
開啟用戶端
src/redis-cli
./redis-cli
線上測試 redis
http://try.redis.io/後續内容
指令介紹
- Cluster
- Connection
- Geo
- Hashes
- HyperLogLog
- Keys
- Lists
- Pub/Sub
- Scripting
- Server
- Sets
- Sorted Sets
- Streams
- Strings
- Transactions
redis事務
Redis的資料持久化
redis主從、哨兵、叢集
等等