1. 程式人生 > >redis3.2.2 安裝(linux下)

redis3.2.2 安裝(linux下)

                                    redis3.2.2 安裝

 

轉載:https://blog.csdn.net/u010719917/article/details/52763158

一、redis3.2.2 安裝:


1、配置本地yum源:
cd /etc/yum.repos.d 
建立檔案public.repo
vi public.repo
[rhel-debuginfo]
name=Red Hat Enterprise Linux $releasever - $basearch - Debug
baseurl=file:///ios/Server
enabled=1
gpgcheck=1
gpgkey=file:///ios/RPM-GPG-KEY-oracle


2、下載redis
http://download.redis.io/releases/redis-3.2.2.tar.gz

3、安裝
cd /usr/local
tar xvf redis-3.2.2.tar.gz
cd redis-3.2.2
make
顯示缺gcc
安裝命令如下:
yum -y install gcc*


再執行make 顯示如下
zmalloc.h:50:31: error: jemalloc/jemalloc.h: No such file or directory
zmalloc.h:55:2: error: #error "Newer version of jemalloc required"
make[1]: *** [adlist.o] Error 1
make[1]: Leaving directory `/data0/src/redis-2.6.2/src'
make: *** [all] Error 2

解決辦法是:
make MALLOC=libc


最後顯示
   CC redis-check-rdb.o
    CC geo.o
    LINK redis-server
    INSTALL redis-sentinel
    CC redis-cli.o
    LINK redis-cli
    CC redis-benchmark.o
    LINK redis-benchmark
    INSTALL redis-check-rdb
    CC redis-check-aof.o
    LINK redis-check-aof

Hint: It's a good idea to run 'make test' ;)
make[1]: Leaving directory `/usr/local/redis-3.2.2/src'

執行make test顯示如下
cd src && make test
make[1]: Entering directory `/usr/local/redis-3.2.2/src'
You need tcl 8.5 or newer in order to run the Redis test
make[1]: *** [test] Error 1
make[1]: Leaving directory `/usr/local/redis-3.2.2/src'
make: *** [test] Error 2

說明需要tcl 8.5  以上的版本
安裝命令如下:
yum -y install tcl-8.5*
安裝完之後在/usr/local/redis-3.2.2下執行
make test

最後顯示錶示成功安裝完畢:
  169 seconds - unit/geo
  302 seconds - unit/type/list-2
  301 seconds - integration/replication-4
  311 seconds - integration/replication-3
  166 seconds - unit/hyperloglog
  321 seconds - unit/obuf-limits

\o/ All tests passed without errors!

Cleanup: may take some time... OK
make[1]: Leaving directory `/usr/local/redis-3.2.2/src'

4.啟動服務
關閉防火牆
service iptables stop
chkconfig iptables off 

編譯完成後,在Src目錄下,有四個可執行檔案redis-server、redis-benchmark、redis-cli和redis.conf。然後拷貝到一個目錄下。
mkdir /usr/redis
cd src
cp redis-server  /usr/redis
cp redis-benchmark /usr/redis
cp redis-cli  /usr/redis
cd ..
cp redis.conf  /usr/redis

cd /usr/redis
啟動Redis服務。
$ ./redis-server redis.conf
然後用客戶端測試一下是否啟動成功。

5.測試
$ ./redis-cli
redis> set foo bar
OK
redis> get foo
"bar"


二.在同一臺伺服器上新增加一臺redis 對應埠8887
1、cp -r /usr/redis /usr/redis2
2、修改配置/usr/redis2/redis.conf
   port 6379                                 改為 port 8887
   pidfile /var/run/redis_6379.pid pidfile   改為 /var/run/redis_8887.pid
3. 開啟6379、8887的redis
   redis-cli -h 10.3.2.12 -p 6379
   redis-cli -h 10.3.2.12 -p 8887


三、6379作master ,8887作slave ,開啟replication 
    如何配置Replication:
    見如下步驟:
    1). 同時啟動兩個Redis伺服器,可以考慮在同一臺機器上啟動兩個Redis伺服器,分別監聽不同的埠,如6379和8887。
    2). 在Slave伺服器上執行一下命令:
    /> redis-cli -p 8887   #這裡我們假設Slave的埠號是8887
    redis 10.3.2.12:8887> slaveof 10.3.2.12 6379 #我們假設Master和Slave在同一臺主機,Master的埠為6379
    OK
    上面的方式只是保證了在執行slaveof命令之後,redis_8887成為了redis_6379的slave,一旦服務(redis_8887)重新啟動之後,他們之間的複製關係將終止。
    如果希望長期保證這兩個伺服器之間的Replication關係,可以在redis_8887的配置檔案中做如下修改:
    /> cd /etc/redis  #切換Redis伺服器配置檔案所在的目錄。
    /> ls
    6379.conf  8887.conf
    /> vi 8887.conf
    將
    # slaveof <masterip> <masterport>
    改為
    slaveof 10.3.2.12 6379
    儲存退出。
    這樣就可以保證Redis_8887服務程式在每次啟動後都會主動建立與Redis_6379的Replication連線了
    
    關閉 redis-cli -h 10.3.2.12 -p 8887  shutdown 
    啟動 ./redis-server redis.conf