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