Redis開篇與如何安裝單機(jī)版Redis,這次我會(huì)了??!
作者個(gè)人研發(fā)的在高并發(fā)場(chǎng)景下,提供的簡(jiǎn)單、穩(wěn)定、可擴(kuò)展的延遲消息隊(duì)列框架,具有精準(zhǔn)的定時(shí)任務(wù)和延遲隊(duì)列處理功能。自開源半年多以來,已成功為十幾家中小型企業(yè)提供了精準(zhǔn)定時(shí)調(diào)度方案,經(jīng)受住了生產(chǎn)環(huán)境的考驗(yàn)。為使更多童鞋受益,現(xiàn)給出開源框架地址:
https://github.com/sunshinelyz/mykit-delay
寫在前面
很早之前,就有不少小伙伴微信留言說:冰河,你能不能寫一個(gè)Redis專欄啊,我最近在學(xué)習(xí)Redis,看書看不下去,學(xué)習(xí)視頻又覺得視頻太長(zhǎng)了,還是看你的文章比較給力!哈哈,原來我寫的文章能夠讓小伙伴們有這么強(qiáng)的動(dòng)力學(xué)習(xí)啊!終于安排到寫【Redis專題】了。今天是【Redis專題】的開篇,寫些什么呢?先簡(jiǎn)單的介紹下Redis并教大家如何在單機(jī)環(huán)境中安裝Redis吧,也算是對(duì)【Redis專題】的開篇吧!
如果文章對(duì)你有所幫助,請(qǐng)不要吝惜你的點(diǎn)贊、在看、留言和轉(zhuǎn)發(fā),你的支持是我持續(xù)創(chuàng)作的最大動(dòng)力!
Redis介紹
學(xué)習(xí)一項(xiàng)新技術(shù)和一個(gè)新的框架之前,大部分的套路都是先對(duì)這項(xiàng)技術(shù)和框架做一個(gè)簡(jiǎn)單的介紹。這次,我也隨波逐流一次吧,對(duì)Redis做一個(gè)整體的介紹。
基于鍵值對(duì)的存儲(chǔ)系統(tǒng):字典形式。
五種數(shù)據(jù)結(jié)構(gòu):字符串(String),Hash(字典),列表(List),集合(Set),有序集合(Sorted Set)。
Redis大部分時(shí)間用來做緩存,因?yàn)樗俣瓤?內(nèi)存數(shù)據(jù)庫,單線程,單進(jìn)程,Redis 6.0支持多線程,后面我們會(huì)詳細(xì)講Redis 6.0的新特性 )。
Redis的使用場(chǎng)景
- 做緩存:String類型最多,其次是hash(字典),value值使用的最多的是json格式。
- 計(jì)數(shù)(自增):點(diǎn)贊數(shù),點(diǎn)踩數(shù),訪問數(shù),全局計(jì)數(shù)等。
- 消息隊(duì)列:列表類型,先進(jìn)先出或者先進(jìn)后出,bloop。這個(gè)可以參考我寫的一個(gè)開源框架,地址為:https://github.com/sunshinelyz/mykit-delay。
- 發(fā)布訂閱(觀察者模式)
- 排行榜:有序集合
- 分布式鎖
- 做附近的人
- 布隆過濾器
- 統(tǒng)計(jì)在線人數(shù)(Bitmap)等等
以下使用場(chǎng)景也是5大數(shù)據(jù)類型中的一種:
- BitMaps位圖:布隆過濾器 本質(zhì)是字符串
- HyperLogLog:超小內(nèi)存唯一值計(jì)數(shù),12kb HyperLogLog 本質(zhì)是 字符串
- GEO:地理信息定位 本質(zhì)是有序集合
**主從復(fù)制:**主服務(wù)器和從服務(wù)器,Redis中的數(shù)據(jù)可以從主服務(wù)器同步到從服務(wù)器上。
高可用和分布式:
- 2.8版本以后使用redis-sentinel支持高可用(做哨兵)
- 3.0版本以后支持分布式
Redis的安裝和啟動(dòng)
這里,我們?cè)贑entOS服務(wù)器上安裝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
- #建立軟連接(生成一個(gè)redis文件夾)
- ln -s redis-5.0.7 redis
- cd redis
- make && make install
我們可以在Redis的src目錄下看到如下命令。這里,我也對(duì)命令的作用進(jìn)行了簡(jiǎn)單的說明
- #redis-server--->redis服務(wù)器
- #redis-cli---》redis命令行客戶端
- #redis-benchmark---》redis性能測(cè)試工具
- #redis-check-aof--->aof文件修復(fù)工具
- #redis-check-dump---》rdb文件檢查工具
- #redis-sentinel---》sentinel服務(wù)器,哨兵
值得說明的是:Redis作者對(duì)windows維護(hù)不好,window自己有安裝包。
2.三種啟動(dòng)Redis服務(wù)的方式
(1)最簡(jiǎn)啟動(dòng)法
Redis中最簡(jiǎn)單的啟動(dòng)方法就是在命令行中直接輸入如下命令。
- redis-server #只要運(yùn)行這一條命令服務(wù)端就啟動(dòng)了
啟動(dòng)效果如下圖所示。
可以通過如下幾種命令來查看Redis的運(yùn)行情況。
- ps -ef|grep redis #查看進(jìn)程
- netstat -antpl|grep redis #查看端口
- redis-cli -h ip -p port ping #命令查看
(2)動(dòng)態(tài)參數(shù)啟動(dòng)法
這里,我們以動(dòng)態(tài)增加Redis的啟動(dòng)端口為例,比如我們將Redis啟動(dòng)后監(jiān)聽的端口設(shè)置為6379,如下所示。
- #動(dòng)態(tài)參數(shù)啟動(dòng)
- redis-serve --port 6379 #啟動(dòng),監(jiān)聽6379端口 默認(rèn)對(duì)應(yīng)的端口號(hào)是6379
這里,我們?cè)赗edis啟動(dòng)時(shí),設(shè)置了動(dòng)態(tài)端口。當(dāng)然,我們還可以在Redis啟動(dòng)時(shí),設(shè)置其他的動(dòng)態(tài)參數(shù),在【Redis專題】后續(xù)的文章中,我們會(huì)詳細(xì)說明Redis的動(dòng)態(tài)參數(shù)。
3.配置文件啟動(dòng)法(最常用的啟動(dòng)方式)
Redis啟動(dòng)之后,可以通過redis-cli連接,在服務(wù)器命令行輸入如下命令可以查詢到默認(rèn)的所有配置。
- config get *
配置文件中一些常用的配置參數(shù)如下所示。
- daemonize --》是否是守護(hù)進(jìn)程啟動(dòng)(no|yes)
- port ---》端口號(hào)
- bind ---》綁定的主機(jī)名或IP地址
- logfile --》redis系統(tǒng)日志
- dir --》redis工作目錄
- protected-mode --》是否允許外界訪問
例如,我們創(chuàng)建一個(gè)redis-6379.conf配置文件,文件的內(nèi)容如下所示。
- daemonize yes #是否以后臺(tái)形式運(yùn)行
- port 6379 #綁定端口號(hào)
- bind 0.0.0.0 #設(shè)置地址
- protected-mode no #設(shè)置允許外界訪問
- dir "/data/redis/data" #工作目錄
- logfile "./redis-6379.log" #日志位置
然后,我們可以在服務(wù)器的命令行使用如下命令指定Redis的配置文件來啟動(dòng)Redis服務(wù)。
- redis-server redis-6379.conf
總結(jié)三種啟動(dòng)Redis的方式
這里,我們還是對(duì)Redis的三種啟動(dòng)方式做一個(gè)簡(jiǎn)單的總結(jié):
- 直接命令行:redis-server
- 動(dòng)態(tài)參數(shù)方式:redis-server --port 6379 #這里是添加端口參數(shù)
- 配置文件方式:redis-server 啟動(dòng)配置文件名
3.客戶端連接方式
(1)最簡(jiǎn)連接法
如果Redis服務(wù)器和Redis客戶端在同一臺(tái)服務(wù)器上,并且Redis服務(wù)器使用的是默認(rèn)端口6379,則可以使用最簡(jiǎn)連接法。此時(shí),只需要在服務(wù)器命令行輸入如下命令即可。
- redis-cli
(2)指定IP和端口連接
無論Redis服務(wù)器和Redis客戶端是否在同一臺(tái)服務(wù)器,也不管是否修改過Redis的端口號(hào),都可以使用指定IP和端口的方式來連接Redis服務(wù)。這種方式可以使用類似如下命令的形式連接Redis服務(wù)端。
- redis-cli -h 127.0.0.1 -p 6379 #加上ip地址或者端口號(hào)
(3)使用可視化工具連接Redis
除了上述使用redis-cli連接Redis的方式,還可以使用可視化工具來連接Redis。例如,我們可以使用RedisDesktopManager這個(gè)可視化工具來連接Redis。如下所示。
關(guān)閉后臺(tái)Redis方法
當(dāng)我們不需要Redis的時(shí)候,就可以關(guān)閉后臺(tái)運(yùn)行的Redis服務(wù),我們可以通過如下命令來關(guān)閉后臺(tái)運(yùn)行的Redis服務(wù)。
(1)查看運(yùn)行的Redis進(jìn)程號(hào)
使用如下命令查看運(yùn)行的Redis進(jìn)程號(hào)。
- ps -ef | grep redis-server | grep 6379
或者
- ps -ef | grep redis-server
或者
- ps -ef |grep redis
(2)殺掉查詢到的進(jìn)程號(hào)
- kill Redis進(jìn)程號(hào)
命令腳本化
當(dāng)然,上述安裝Redis、啟動(dòng)Redis、連接Redis和關(guān)閉Redis的命令都可以寫成一個(gè)腳本文件,我們只需要運(yùn)行腳本文件即可自動(dòng)化安裝Redis、啟動(dòng)Redis、連接Redis和關(guān)閉Redis。這里,如何編寫腳本就留給小伙伴們自行思考吧。
本文轉(zhuǎn)載自微信公眾號(hào)「冰河技術(shù)」,可以通過以下二維碼關(guān)注。轉(zhuǎn)載本文請(qǐng)聯(lián)系冰河技術(shù)公眾號(hào)。