您好,登錄后才能下訂單哦!
redis是一個(gè)key-value存儲(chǔ)系統(tǒng)。和Memcached類(lèi)似,它支持存儲(chǔ)的value類(lèi)型相對(duì)更多,包括string(字符串)、list(鏈表)、set(集合)和zset(有序集合)。這些數(shù)據(jù)類(lèi)型都支持push/pop、add/remove及取交集并集和差集及更豐富的操作,而且這些操作都是原子性的。在此基礎(chǔ)上,redis支持各種不同方式的排序。與memcached一樣,為了保證效率,數(shù)據(jù)都是緩存在內(nèi)存中。區(qū)別的是redis會(huì)周期性的把更新的數(shù)據(jù)寫(xiě)入磁盤(pán)或者把修改操作寫(xiě)入追加的記錄文件,并且在此基礎(chǔ)上實(shí)現(xiàn)了master-slave(主從)同步。Redis 是一個(gè)高性能的key-value數(shù)據(jù)庫(kù)。 redis的出現(xiàn),很大程度補(bǔ)償了memcached這類(lèi)keyvalue存儲(chǔ)的不足,在部分場(chǎng)合可以對(duì)關(guān)系數(shù)據(jù)庫(kù)起到很好的補(bǔ)充作用
1.安裝環(huán)境
本次實(shí)驗(yàn)在虛擬機(jī)環(huán)境完成,VMware 虛擬機(jī)。兩臺(tái)centos6.6機(jī)器,ip分別為
Master:192.168.233.129
Slave:192.168.233.128
可以在redis官網(wǎng)下載,http://www.redis.io/download 。也可以自行下載rpm包:http://rpm.pbone.net/
這里我使用的是redis-2.6.11-37.1.x86_64.rpm。
3.安裝與配置
使用ftp工具上傳到192.168.233.129機(jī)器上。
執(zhí)行命令:rpm -ivh redis-2.6.11-37.1.x86_64.rpm
A.查看redis包生成哪些文件:
B.配置
執(zhí)行命令cp /etc/redis/default.conf.example /etc/redis/redis.conf
然后編譯配置文件redis.conf
我只修改了如下兩項(xiàng):
daemonize yes #redis將以守護(hù)進(jìn)程的方式運(yùn)行,默認(rèn)為no會(huì)暫用你的終端
timeout 300 #當(dāng) 客戶端閑置多長(zhǎng)時(shí)間后關(guān)閉連接,如果指定為0,表示關(guān)閉該功能
C.創(chuàng)建進(jìn)程啟動(dòng)和關(guān)閉腳本。
vim /etc/init.d/redis #!/bin/sh # # redis Startup script for Redis Server # # chkconfig: - 80 12 # description: Redis is an open source, advanced key-value store. # # processname: redis-server # config: /etc/redis.conf # pidfile: /var/run/redis.pid source /etc/init.d/functions BIN="/usr/sbin" CONFIG="/etc/redis/redis.conf" PIDFILE="/var/run/redis.pid" ### Read configuration [ -r "$SYSCONFIG" ] && source "$SYSCONFIG" RETVAL=0 prog="redis-server" desc="Redis Server" start() { if [ -e $PIDFILE ];then echo "$desc already running...." exit 1 fi echo -n $"Starting $desc: " daemon $BIN/$prog $CONFIG RETVAL=$? echo [ $RETVAL -eq 0 ] && touch /var/lock/subsys/$prog return $RETVAL } stop() { echo -n $"Stop $desc: " killproc $prog RETVAL=$? echo [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/$prog $PIDFILE return $RETVAL } restart() { stop start } case "$1" in start) start ;; stop) stop ;; restart) restart ;; condrestart) [ -e /var/lock/subsys/$prog ] && restart RETVAL=$? ;; status) status $prog RETVAL=$? ;; *) echo $"Usage: $0 {start|stop|restart|condrestart|status}" RETVAL=1 esac exit $RETVAL
D. 啟動(dòng)和關(guān)閉
Service redis start
Service redis stop
查看進(jìn)程信息
查看端口信息
redis主從復(fù)制和大部分主從類(lèi)似,一個(gè)master可以有多個(gè)slave,支持鏈?zhǔn)綇?fù)制,master以非阻塞的方式同步數(shù)據(jù)至slave。啟動(dòng)一個(gè)slave后,slave會(huì)向主發(fā)送同步命令,請(qǐng)求同步主庫(kù)上的數(shù)據(jù),master將啟動(dòng)一個(gè)后臺(tái)的子進(jìn)程,將數(shù)據(jù)快照保存至在數(shù)據(jù)文件中,把數(shù)據(jù)文件發(fā)送給slave,slave將數(shù)據(jù)文件保存至本地中,在本地重建數(shù)據(jù)庫(kù)后載入內(nèi)存,同步完成。
redis主從的特點(diǎn):
a、redis使用異步復(fù)制,從服務(wù)器會(huì)以每秒一次的頻率向主服務(wù)器報(bào)告復(fù)制流的處理進(jìn)度
b、一個(gè)主服務(wù)器可以有多個(gè)從服務(wù)器,從服務(wù)器也可以有自己的從服務(wù)器(級(jí)聯(lián)復(fù)制)
c、復(fù)制功能不會(huì)阻塞主服務(wù)器,即使一個(gè)或多個(gè)從服務(wù)器正在進(jìn)行初次同步,主服務(wù)器也可以繼續(xù)處理命令請(qǐng)求
d、復(fù)制功能可以用于數(shù)據(jù)冗余,也可以通過(guò)讓多個(gè)從服務(wù)器處理只讀命令請(qǐng)求來(lái)提升擴(kuò)展性
e、Redis從節(jié)點(diǎn)默認(rèn)為只讀,無(wú)須手動(dòng)配置,redis的主從集群可以實(shí)現(xiàn)分擔(dān)壓力的效果,但是無(wú)法做到高可用,如果master宕掉,服務(wù)就不可用了,所以使用redis的sentinel可以實(shí)現(xiàn)HA的功能。
1.按照上述同樣的方法在slave(192.168.233.128)上安裝redis
2.修改兩臺(tái)機(jī)器的redis.conf文件,修改bind參數(shù)等于自己的IP
3.在slave機(jī)器上修改redis.conf,設(shè)置slaveof值:
slaveof 192.168.233.129 6379
4.配置完之后啟動(dòng)slave的Redis服務(wù),OK,主從配置完成
Master:
Slave:
Master:
Slave:
至此,搭建完成。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。