Linux安裝單機(jī)版Redis的完整步驟
前言
redis是當(dāng)前比較熱門(mén)的NOSQL系統(tǒng)之一,它是一個(gè)key-value存儲(chǔ)系統(tǒng)。和Memcached類(lèi)似,但很大程度補(bǔ)償了 memcached的不足,它支持存儲(chǔ)的value類(lèi)型相對(duì)更多,包括string、list、set、zset和hash。這些數(shù)據(jù)類(lèi)型都支持 push/pop、add/remove及取交集并集和差集及更豐富的操作。在此基礎(chǔ)上,redis支持各種不同方式的排序。Redis數(shù)據(jù)都是緩存在計(jì)算機(jī)內(nèi)存中,并且會(huì)周期性的把更新的數(shù)據(jù)寫(xiě)入磁盤(pán)或者把修改操作寫(xiě)入追加的記錄文件。
最近在遷移測(cè)試環(huán)境,有用到Redis,記錄下linux安裝單機(jī)版Redis的過(guò)程,下面話不多說(shuō)了,來(lái)一起看看詳細(xì)的介紹吧
驗(yàn)證gcc-c++環(huán)境
redis使用c語(yǔ)言開(kāi)發(fā),所以要運(yùn)行在linux上,需要gcc-c++的環(huán)境。
檢查是否有g(shù)cc-c++環(huán)境:
rpm -qa | grep gcc-c++
如果沒(méi)有進(jìn)行安裝:
yum install gcc-c++
yum -y install cpp binutils glibc glibc-kernheaders glibc-common glibc-devel gcc make gcc-c++ libstdc++-devel tcl
安裝Redis
首先下載安裝包:
wget http://download.redis.io/releases/redis-4.0.10.tar.gz
然后解壓至指定目錄:
tar -zxvf redis-4.0.10.tar.gz -C /usr/local/
進(jìn)入到解壓后的目錄之后進(jìn)行編譯:
cd /usr/local/redis-4.0.10 make
編譯成功后進(jìn)行安裝,設(shè)置安裝路徑:
make install PREFIX=/usr/local/redis
安裝完成后就可以到對(duì)應(yīng)的目錄下啟動(dòng):
cd /usr/local/redis/bin ./redis-server
順利的話,redis已經(jīng)正常啟動(dòng),但是在終端會(huì)顯示啟動(dòng)內(nèi)容,如果不希望顯示的話,可以修改下配置。
首先去copy安裝包中的redis.conf
cp /root/redis-4.0.10/redis.conf /usr/local/redis
然后打開(kāi)配置文件,將文件中的daemonize設(shè)置為yes。
vi redis.conf之后進(jìn)行編輯,如下截圖:
然后帶著配置項(xiàng)啟動(dòng)即可:
./redis-server redis.conf
驗(yàn)證與操作
redis安裝完之后,我們校驗(yàn)下是否正常。
首先我們啟動(dòng)測(cè)試端:./redis-cli,然后進(jìn)行一些簡(jiǎn)單的操作,如下截圖:
配置說(shuō)明
##基本配置 daemonize no //是否以后臺(tái)進(jìn)程啟動(dòng) databases 16 //創(chuàng)建database的數(shù)量(默認(rèn)選中的是database 0) save 900 1 #刷新快照到硬盤(pán)中,必須滿足兩者要求才會(huì)觸發(fā),即900秒之后至少1個(gè)關(guān)鍵字發(fā)生變化。 save 300 10 #必須是300秒之后至少10個(gè)關(guān)鍵字發(fā)生變化。 save 60 10000 #必須是60秒之后至少10000個(gè)關(guān)鍵字發(fā)生變化。 stop-writes-on-bgsave-error yes #后臺(tái)存儲(chǔ)錯(cuò)誤停止寫(xiě)。 rdbcompression yes #使用LZF壓縮rdb文件。 rdbchecksum yes #存儲(chǔ)和加載rdb文件時(shí)校驗(yàn)。 dbfilename dump.rdb #設(shè)置rdb文件名。 dir ./ #設(shè)置工作目錄,rdb文件會(huì)寫(xiě)入該目錄。 //主從配置 slaveof <masterip> <masterport> //設(shè)為某臺(tái)機(jī)器的從服務(wù)器 masterauth <master-password> //連接主服務(wù)器的密碼 slave-serve-stale-data yes # 當(dāng)主從斷開(kāi)或正在復(fù)制中,從服務(wù)器是否應(yīng)答 slave-read-only yes #從服務(wù)器只讀 repl-ping-slave-period 10 #從ping主的時(shí)間間隔,秒為單位 repl-timeout 60 #主從超時(shí)時(shí)間(超時(shí)認(rèn)為斷線了),要比period大 slave-priority 100 #如果master不能再正常工作,那么會(huì)在多個(gè)slave中,選擇優(yōu)先值最小的一個(gè)slave提升為master,優(yōu)先值為0表示不能提升為master。 repl-disable-tcp-nodelay no #主端是否合并數(shù)據(jù),大塊發(fā)送給slave slave-priority 100 //從服務(wù)器的優(yōu)先級(jí),當(dāng)主服掛了,會(huì)自動(dòng)挑slave priority最小的為主服 #安全 requirepass foobared # 需要密碼 rename-command CONFIG b840fc02d524045429941cc15f59e41cb7be6c52 #如果公共環(huán)境,可以重命名部分敏感命令 如config #限制 maxclients 10000 #最大連接數(shù) maxmemory <bytes> #最大使用內(nèi)存 maxmemory-policy volatile-lru #內(nèi)存到極限后的處理 volatile-lru -> #LRU算法刪除過(guò)期key allkeys-lru -> #LRU算法刪除key(不區(qū)分過(guò)不過(guò)期) volatile-random -> #隨機(jī)刪除過(guò)期key allkeys-random -> #隨機(jī)刪除key(不區(qū)分過(guò)不過(guò)期) volatile-ttl -> #刪除快過(guò)期的key noeviction -> #不刪除,返回錯(cuò)誤信息 #解釋 LRU ttl都是近似算法,可以選N個(gè),再比較最適宜T踢出的數(shù)據(jù) maxmemory-samples 3 #日志模式 appendonly no #是否僅要日志 appendfsync no # 系統(tǒng)緩沖,統(tǒng)一寫(xiě),速度快 appendfsync always # 系統(tǒng)不緩沖,直接寫(xiě),慢,丟失數(shù)據(jù)少 appendfsync everysec #折衷,每秒寫(xiě)1次 no-appendfsync-on-rewrite no #為yes,則其他線程的數(shù)據(jù)放內(nèi)存里,合并寫(xiě)入(速度快,容易丟失的多) auto-AOF-rewrite-percentage 100 #當(dāng)前aof文件是上次重寫(xiě)是大N%時(shí)重寫(xiě) auto-AOF-rewrite-min-size 64mb #aof重寫(xiě)至少要達(dá)到的大小 #慢查詢(xún) slowlog-log-slower-than 10000 #記錄響應(yīng)時(shí)間大于10000微秒的慢查詢(xún) slowlog-max-len 128 # 最多記錄128條 #服務(wù)端命令 time #返回時(shí)間戳+微秒 dbsize #返回key的數(shù)量 bgrewriteaof #重寫(xiě)aof bgsave #后臺(tái)開(kāi)啟子進(jìn)程dump數(shù)據(jù) save #阻塞進(jìn)程dump數(shù)據(jù) slaveof host port #做host port的從服務(wù)器(數(shù)據(jù)清空,復(fù)制新主內(nèi)容) slaveof no one #變成主服務(wù)器(原數(shù)據(jù)不丟失,一般用于主服失敗后) flushdb #清空當(dāng)前數(shù)據(jù)庫(kù)的所有數(shù)據(jù) flushall #清空所有數(shù)據(jù)庫(kù)的所有數(shù)據(jù)(誤用了怎么辦?) shutdown [save/nosave] #關(guān)閉服務(wù)器,保存數(shù)據(jù),修改AOF(如果設(shè)置) slowlog get #獲取慢查詢(xún)?nèi)罩? slowlog len #獲取慢查詢(xún)?nèi)罩緱l數(shù) slowlog reset #清空慢查詢(xún) config get #選項(xiàng)(支持*通配) config set #選項(xiàng) 值 config rewrite #把值寫(xiě)到配置文件 config restart #更新info命令的信息 debug object key #調(diào)試選項(xiàng),看一個(gè)key的情況 debug segfault #模擬段錯(cuò)誤,讓服務(wù)器崩潰 object key (refcount|encoding|idletime) monitor #打開(kāi)控制臺(tái),觀察命令(調(diào)試用) client list #列出所有連接 client kill #殺死某個(gè)連接 CLIENT KILL 127.0.0.1:43501 client getname #獲取連接的名稱(chēng) 默認(rèn)nil client setname "名稱(chēng)" #設(shè)置連接名稱(chēng),便于調(diào)試 #連接命令 auth 密碼 #密碼登陸(如果有密碼) ping #測(cè)試服務(wù)器是否可用 echo "some content" #測(cè)試服務(wù)器是否正常交互 select 0/1/2... #選擇數(shù)據(jù)庫(kù) quit #退出連接
總結(jié)
搭建redis還是比較簡(jiǎn)單的,有興趣的小伙伴可以親自試驗(yàn)下,下次再?lài)L試下搭個(gè)redis集群。
補(bǔ)充資料
安裝:
1.獲取redis資源
wget http://download.redis.io/releases/redis-4.0.8.tar.gz
2.解壓
tar xzvf redis-4.0.8.tar.gz
3.安裝
cd redis-4.0.8
make
cd src
make install PREFIX=/usr/local/redis
4.移動(dòng)配置文件到安裝目錄下
cd ../
mkdir /usr/local/redis/etc
mv redis.conf /usr/local/redis/etc
5.配置redis為后臺(tái)啟動(dòng)
vi /usr/local/redis/etc/redis.conf //將daemonize no 改成daemonize yes
6.將redis加入到開(kāi)機(jī)啟動(dòng)
vi /etc/rc.local //在里面添加內(nèi)容:/usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.conf (意思就是開(kāi)機(jī)調(diào)用這段開(kāi)啟redis的命令)
7.開(kāi)啟redis
/usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.conf
常用命令
redis-server /usr/local/redis/etc/redis.conf //啟動(dòng)redis
pkill redis //停止redis
卸載redis:
rm -rf /usr/local/redis //刪除安裝目錄
rm -rf /usr/bin/redis-* //刪除所有redis相關(guān)命令腳本
rm -rf /root/download/redis-4.0.4 //刪除redis解壓文件夾
好了,以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問(wèn)大家可以留言交流,謝謝大家對(duì)腳本之家的支持。
相關(guān)文章
Redisson如何解決Redis分布式鎖提前釋放問(wèn)題
本文主要介紹了Redisson如何解決Redis分布式鎖提前釋放問(wèn)題,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-05-05Redis不同數(shù)據(jù)類(lèi)型的命令語(yǔ)句詳解
這篇文章主要介紹了Redis不同數(shù)據(jù)類(lèi)型的命令語(yǔ)句,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-10-10Redis分布式鎖如何實(shí)現(xiàn)續(xù)期
這篇文章主要介紹了Redis分布式鎖如何實(shí)現(xiàn)續(xù)期的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-01-01redis?lua腳本解決高并發(fā)下秒殺場(chǎng)景
這篇文章主要為大家介紹了redis?lua腳本解決高并發(fā)下秒殺場(chǎng)景,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-10-10Java Socket實(shí)現(xiàn)Redis客戶端的詳細(xì)說(shuō)明
socket編程是一門(mén)技術(shù),它主要是在網(wǎng)絡(luò)通信中經(jīng)常用到.這篇文章主要介紹了如何用Java Socket實(shí)現(xiàn)一個(gè)簡(jiǎn)單的Redis客戶端,需要的朋友可以參考下2021-05-05Redis Template實(shí)現(xiàn)分布式鎖的實(shí)例代碼
使用Redis的SETNX命令獲取分布式鎖的步驟,接下來(lái)通過(guò)本文給大家介紹Redis Template實(shí)現(xiàn)分布式鎖的實(shí)例代碼,代碼簡(jiǎn)單易懂,對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2018-09-09Redis使用ZSET實(shí)現(xiàn)消息隊(duì)列使用小結(jié)
這篇文章主要介紹了Redis使用ZSET實(shí)現(xiàn)消息隊(duì)列使用總結(jié),本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下2023-03-03Redis和MySQL保證雙寫(xiě)一致性的問(wèn)題解析
Redis和MySQL的雙寫(xiě)一致性指的是在同時(shí)使用緩存和數(shù)據(jù)庫(kù)存儲(chǔ)數(shù)據(jù)的時(shí)候,保證Redis和MySQL中數(shù)據(jù)的一致性,那么如何才能保證他們的一致性呢,下面小編就來(lái)為大家詳細(xì)講講2023-11-11