Redis介紹
學習一項新技術和一個新的架構之前,大部分的套路都是先對這項技術和架構做一個簡單的介紹。這次,我也随波逐流一次吧,對Redis做一個整體的介紹。
基于鍵值對的存儲系統:字典形式。
五種資料結構:字元串(String),Hash(字典),清單(List),集合(Set),有序集合(Sorted Set)。
Redis大部分時間用來做緩存,因為速度快(記憶體資料庫,單線程,單程序,Redis 6.0支援多線程,後面我們會詳細講Redis 6.0的新特性 )。
Redis的使用場景
- 做緩存:String類型最多,其次是hash(字典),value值使用的最多的是json格式。
- 計數(自增):點贊數,點踩數,通路數,全局計數等。
- 消息隊列:清單類型,先進先出或者先進後出,bloop。這個可以參考我寫的一個開源架構,位址為: https://github.com/sunshinelyz/mykit-delay 。
- 釋出訂閱(觀察者模式)
- 排行榜:有序集合
- 分布式鎖:可以關注【冰河技術】微信公衆号,參考我寫的《 【高并發】高并發分布式鎖架構解密,不是所有的鎖都是分布式鎖!! 》,也可以參考我寫的一個分布式鎖插件,連結位址為: https://github.com/sunshinelyz/mykit-lock
- 做附近的人
- 布隆過濾器
- 統計線上人數(Bitmap)等等
以下使用場景也是5大資料類型中的一種:
- BitMaps位圖:布隆過濾器 本質是字元串
- HyperLogLog:超小記憶體唯一值計數,12kb HyperLogLog 本質是 字元串
- GEO:地理資訊定位 本質是有序集合
**主從複制:**主伺服器和從伺服器,Redis中的資料可以從主伺服器同步到從伺服器上。
高可用和分布式:
- 2.8版本以後使用redis-sentinel支援高可用(做哨兵)
- 3.0版本以後支援分布式
Redis的安裝和啟動
這裡,我們在CentOS伺服器上安裝Redis 5.0.7版本。
1.下載下傳安裝Redis
#下載下傳
wget http://download.redis.io/releases/redis-5.0.7.tar.gz
#解壓
tar -zxvf redis-5.0.7.tar.gz
#建立軟連接配接(生成一個redis檔案夾)
ln -s redis-5.0.7 redis
cd redis
make && make install
我們可以在Redis的src目錄下看到如下指令。這裡,我也對指令的作用進行了簡單的說明
#redis-server--->redis伺服器
#redis-cli---》redis指令行用戶端
#redis-benchmark---》redis性能測試工具
#redis-check-aof--->aof檔案修複工具
#redis-check-dump---》rdb檔案檢查工具
#redis-sentinel---》sentinel伺服器,哨兵
值得說明的是:Redis作者對windows維護不好,window自己有安裝包。
2.三種啟動Redis服務的方式
(1)最簡啟動法
Redis中最簡單的啟動方法就是在指令行中直接輸入如下指令。
redis-server #隻要運作這一條指令服務端就啟動了
啟動效果如下圖所示。

可以通過如下幾種指令來檢視Redis的運作情況。
ps -ef|grep redis #檢視程序
netstat -antpl|grep redis #檢視端口
redis-cli -h ip -p port ping #指令檢視
(2)動态參數啟動法
這裡,我們以動态增加Redis的啟動端口為例,比如我們将Redis啟動後監聽的端口設定為6379,如下所示。
#動态參數啟動
redis-serve --port 6379 #啟動,監聽6379端口 預設對應的端口号是6379
這裡,我們在Redis啟動時,設定了動态端口。當然,我們還可以在Redis啟動時,設定其他的動态參數,在【Redis專題】後續的文章中,我們會詳細說明Redis的動态參數。
3.配置檔案啟動法(最常用的啟動方式)
Redis啟動之後,可以通過redis-cli連接配接,在伺服器指令行輸入如下指令可以查詢到預設的所有配置。
config get *
配置檔案中一些常用的配置參數如下所示。
daemonize --》是否是守護程序啟動(no|yes)
port ---》端口号
bind ---》綁定的主機名或IP位址
logfile --》redis系統日志
dir --》redis工作目錄
protected-mode --》是否允許外界通路
例如,我們建立一個redis-6379.conf配置檔案,檔案的内容如下所示。
daemonize yes #是否以背景形式運作
port 6379 #綁定端口号
bind 0.0.0.0 #設定位址
protected-mode no #設定允許外界通路
dir "/data/redis/data" #工作目錄
logfile "./redis-6379.log" #日志位置
然後,我們可以在伺服器的指令行使用如下指令指定Redis的配置檔案來啟動Redis服務。
redis-server redis-6379.conf
總結三種啟動Redis的方式
這裡,我們還是對Redis的三種啟動方式做一個簡單的總結:
- 直接指令行:redis-server
- 動态參數方式:redis-server --port 6379 #這裡是添加端口參數
- 配置檔案方式:redis-server 啟動配置檔案名
3.用戶端連接配接方式
(1)最簡連接配接法
如果Redis伺服器和Redis用戶端在同一台伺服器上,并且Redis伺服器使用的是預設端口6379,則可以使用最簡連接配接法。此時,隻需要在伺服器指令行輸入如下指令即可。
redis-cli
(2)指定IP和端口連接配接
無論Redis伺服器和Redis用戶端是否在同一台伺服器,也不管是否修改過Redis的端口号,都可以使用指定IP和端口的方式來連接配接Redis服務。這種方式可以使用類似如下指令的形式連接配接Redis服務端。
redis-cli -h 127.0.0.1 -p 6379 #加上ip位址或者端口号
(3)使用可視化工具連接配接Redis
除了上述使用redis-cli連接配接Redis的方式,還可以使用可視化工具來連接配接Redis。例如,我們可以使用RedisDesktopManager這個可視化工具來連接配接Redis。如下所示。
關閉背景Redis方法
當我們不需要Redis的時候,就可以關閉背景運作的Redis服務,我們可以通過如下指令來關閉背景運作的Redis服務。
(1)檢視運作的Redis程序号
使用如下指令檢視運作的Redis程序号。
ps -ef | grep redis-server | grep 6379
或者
ps -ef | grep redis-server
ps -ef |grep redis
(2)殺掉查詢到的程序号
kill Redis程序号
指令腳本化
當然,上述安裝Redis、啟動Redis、連接配接Redis和關閉Redis的指令都可以寫成一個腳本檔案,我們隻需要運作腳本檔案即可自動化安裝Redis、啟動Redis、連接配接Redis和關閉Redis。這裡,如何編寫腳本就留給小夥伴們自行思考吧,大家如果有什麼問題可以在文末留言!!