前言
redis是當(dāng)前比較熱門的NOSQL系統(tǒng)之一,它是一個key-value存儲系統(tǒng)。和Memcached類似,但很大程度補償了 memcached的不足,它支持存儲的value類型相對更多,包括string、list、set、zset和hash。這些數(shù)據(jù)類型都支持 push/pop、add/remove及取交集并集和差集及更豐富的操作。在此基礎(chǔ)上,redis支持各種不同方式的排序。Redis數(shù)據(jù)都是緩存在計算機內(nèi)存中,并且會周期性的把更新的數(shù)據(jù)寫入磁盤或者把修改操作寫入追加的記錄文件。
最近在遷移測試環(huán)境,有用到Redis,記錄下linux安裝單機版Redis的過程,下面話不多說了,來一起看看詳細(xì)的介紹吧
驗證gcc-c++環(huán)境
redis使用c語言開發(fā),所以要運行在linux上,需要gcc-c++的環(huán)境。
檢查是否有g(shù)cc-c++環(huán)境:
如果沒有進行安裝:
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/
進入到解壓后的目錄之后進行編譯:
cd /usr/local/redis-4.0.10
make
編譯成功后進行安裝,設(shè)置安裝路徑:
make install PREFIX=/usr/local/redis
安裝完成后就可以到對應(yīng)的目錄下啟動:
cd /usr/local/redis/bin
./redis-server
順利的話,redis已經(jīng)正常啟動,但是在終端會顯示啟動內(nèi)容,如果不希望顯示的話,可以修改下配置。
首先去copy安裝包中的redis.conf
cp /root/redis-4.0.10/redis.conf /usr/local/redis
然后打開配置文件,將文件中的daemonize設(shè)置為yes。
vi redis.conf之后進行編輯,如下截圖:
![](http://img.jbzj.com/file_images/article/201809/2018911102701471.jpg?2018811102749)
然后帶著配置項啟動即可:
./redis-server redis.conf
驗證與操作
redis安裝完之后,我們校驗下是否正常。
首先我們啟動測試端:./redis-cli,然后進行一些簡單的操作,如下截圖:
![](http://img.jbzj.com/file_images/article/201809/2018911102825210.jpg?2018811102836)
配置說明
##基本配置
daemonize no //是否以后臺進程啟動
databases 16 //創(chuàng)建database的數(shù)量(默認(rèn)選中的是database 0)
save 900 1 #刷新快照到硬盤中,必須滿足兩者要求才會觸發(fā),即900秒之后至少1個關(guān)鍵字發(fā)生變化。
save 300 10 #必須是300秒之后至少10個關(guān)鍵字發(fā)生變化。
save 60 10000 #必須是60秒之后至少10000個關(guān)鍵字發(fā)生變化。
stop-writes-on-bgsave-error yes #后臺存儲錯誤停止寫。
rdbcompression yes #使用LZF壓縮rdb文件。
rdbchecksum yes #存儲和加載rdb文件時校驗。
dbfilename dump.rdb #設(shè)置rdb文件名。
dir ./ #設(shè)置工作目錄,rdb文件會寫入該目錄。
//主從配置
slaveof masterip> masterport> //設(shè)為某臺機器的從服務(wù)器
masterauth master-password> //連接主服務(wù)器的密碼
slave-serve-stale-data yes # 當(dāng)主從斷開或正在復(fù)制中,從服務(wù)器是否應(yīng)答
slave-read-only yes #從服務(wù)器只讀
repl-ping-slave-period 10 #從ping主的時間間隔,秒為單位
repl-timeout 60 #主從超時時間(超時認(rèn)為斷線了),要比period大
slave-priority 100 #如果master不能再正常工作,那么會在多個slave中,選擇優(yōu)先值最小的一個slave提升為master,優(yōu)先值為0表示不能提升為master。
repl-disable-tcp-nodelay no #主端是否合并數(shù)據(jù),大塊發(fā)送給slave
slave-priority 100 //從服務(wù)器的優(yōu)先級,當(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算法刪除過期key
allkeys-lru -> #LRU算法刪除key(不區(qū)分過不過期)
volatile-random -> #隨機刪除過期key
allkeys-random -> #隨機刪除key(不區(qū)分過不過期)
volatile-ttl -> #刪除快過期的key
noeviction -> #不刪除,返回錯誤信息
#解釋 LRU ttl都是近似算法,可以選N個,再比較最適宜T踢出的數(shù)據(jù)
maxmemory-samples 3
#日志模式
appendonly no #是否僅要日志
appendfsync no # 系統(tǒng)緩沖,統(tǒng)一寫,速度快
appendfsync always # 系統(tǒng)不緩沖,直接寫,慢,丟失數(shù)據(jù)少
appendfsync everysec #折衷,每秒寫1次
no-appendfsync-on-rewrite no #為yes,則其他線程的數(shù)據(jù)放內(nèi)存里,合并寫入(速度快,容易丟失的多)
auto-AOF-rewrite-percentage 100 #當(dāng)前aof文件是上次重寫是大N%時重寫
auto-AOF-rewrite-min-size 64mb #aof重寫至少要達(dá)到的大小
#慢查詢
slowlog-log-slower-than 10000 #記錄響應(yīng)時間大于10000微秒的慢查詢
slowlog-max-len 128 # 最多記錄128條
#服務(wù)端命令
time #返回時間戳+微秒
dbsize #返回key的數(shù)量
bgrewriteaof #重寫aof
bgsave #后臺開啟子進程dump數(shù)據(jù)
save #阻塞進程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ù)庫的所有數(shù)據(jù)
flushall #清空所有數(shù)據(jù)庫的所有數(shù)據(jù)(誤用了怎么辦?)
shutdown [save/nosave] #關(guān)閉服務(wù)器,保存數(shù)據(jù),修改AOF(如果設(shè)置)
slowlog get #獲取慢查詢?nèi)罩?
slowlog len #獲取慢查詢?nèi)罩緱l數(shù)
slowlog reset #清空慢查詢
config get #選項(支持*通配)
config set #選項 值
config rewrite #把值寫到配置文件
config restart #更新info命令的信息
debug object key #調(diào)試選項,看一個key的情況
debug segfault #模擬段錯誤,讓服務(wù)器崩潰
object key (refcount|encoding|idletime)
monitor #打開控制臺,觀察命令(調(diào)試用)
client list #列出所有連接
client kill #殺死某個連接 CLIENT KILL 127.0.0.1:43501
client getname #獲取連接的名稱 默認(rèn)nil
client setname "名稱" #設(shè)置連接名稱,便于調(diào)試
#連接命令
auth 密碼 #密碼登陸(如果有密碼)
ping #測試服務(wù)器是否可用
echo "some content" #測試服務(wù)器是否正常交互
select 0/1/2... #選擇數(shù)據(jù)庫
quit #退出連接
總結(jié)
搭建redis還是比較簡單的,有興趣的小伙伴可以親自試驗下,下次再嘗試下搭個redis集群。
補充資料
安裝:
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.移動配置文件到安裝目錄下
cd ../
mkdir /usr/local/redis/etc
mv redis.conf /usr/local/redis/etc
5.配置redis為后臺啟動
vi /usr/local/redis/etc/redis.conf //將daemonize no 改成daemonize yes
6.將redis加入到開機啟動
vi /etc/rc.local //在里面添加內(nèi)容:/usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.conf (意思就是開機調(diào)用這段開啟redis的命令)
7.開啟redis
/usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.conf
常用命令
redis-server /usr/local/redis/etc/redis.conf //啟動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解壓文件夾
好了,以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。
您可能感興趣的文章:- linux環(huán)境部署及docker安裝redis的方法
- Linux下redis的安裝與使用圖文教程
- Linux下Redis安裝教程詳解
- Linux下Redis安裝使用教程
- Linux Redis 的安裝步驟詳解
- Redis概述及l(fā)inux安裝redis的詳細(xì)教程