centos 安装搭建redis3.2.5 主从
我是用两个版本的centos6.8 和 centos7.0来搭建redis主从的。
- 下载redis最新稳定版本
- 下载地址:
- wget http://download.redis.io/releases/redis-3.2.5.tar.gz下载到你所在的文件夹中
- 或者去http://www.redis.cn/download.html下载后用ftp上传到你的服务器中
1、安装前添加支持
-1.1、下载安装 tcl
# cd /usr/src/ && wget http://downloads.sourceforge.net/tcl/tcl8.6.0-src.tar.gz
# tar xf tcl8.6.0-src.tar.gz && cd tcl8.6.0
# cd unix && ./configure --prefix=/usr \
--mandir=/usr/share/man \
--without-tzdata \
$([ $(uname -m) = x86_64 ] && echo --enable-64bit) &&
make &&
sed -e "s@^\(TCL_SRC_DIR='\).*@\1/usr/include'@" \
-e "/TCL_B/s@='\(-L\)\?.*unix@='\1/usr/lib@" \
-i tclConfig.sh
# make install &&
make install-private-headers &&
ln -v -sf tclsh8.6 /usr/bin/tclsh &&
chmod -v 755 /usr/lib/libtcl8.6.so
-1.2、安装编译工具
# yum -y install gcc make
2、开始安装单体redis
上面步骤安装好,下载好redis后,就开始编译安装redis
[root@localhost home]# tar -zxvf redis-3.2.5.tar.gz
[root@localhost home]# mv redis-3.2.5 /usr/local/redis
[root@localhost home]# cd /usr/local/redis/
[root@localhost redis]# cp redis.conf /etc/
[root@localhost redis]# vim /etc/redis.conf
daemonize yes
pidfile /var/run/redis.pid
logfile "/var/log/redis.log"
dbfilename dump.rdb #指定快照文件名
dir /var/lib/redis #指定快照文件存储路径
requirepass 1234 #本地安装测试用所以简单点,线上的话要设置很长很不规则的密码哦~ 由于redis性能极高,密码验证错误后redis并不会进行主动延迟,攻击者一秒可以穷举十几万个密码,所以要设置复杂的密码
重启使配置生效
#//:wq保存退出
#//创建相关文件目录并赋权限
[root@localhost redis]# mkdir /var/lib/redis
[root@localhost redis]# chown redis:redis -R /var/lib/redis
#//ok 开始编译安装
[root@localhost redis]# make MALLOC=libc
[root@localhost redis]# make test
[root@localhost redis]# make install
-如果make test出现以下报错:
[root@localhost redis]# make test
cd src && make test
make[1]: Entering directory `/usr/local/redis/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/src'
make: *** [test] Error 2
-则可能没有执行:
没有在/etc 文件夹中创建 和 编译redis.cnf 或者 创建/var/lib/redis 和 赋权限
-启动redis
[root@localhost redis]# redis-server /etc/redis.cnf &
[root@localhost redis]# netstat -anutpl|grep 6379
-登录redis,创建数据,测试:
[root@localhost redis]# redis-cli
redis 127.0.0.1:6379> auth 1234
OK
redis 127.0.0.1:6379> set key1 value1
OK
redis 127.0.0.1:6379> get key1
"value1"
如果设置key1值成功后,在获得key1值成功就说明安装成功了。
-添加开机启动:
[root@localhost ~]# chkconfig --add redis-server
[root@localhost ~]# chkconfig --level 345 redis-server on
[root@localhost ~]# chkconfig --list redis-server
-关闭redis:
[root@localhost ~]# redis-cli shutdown
3、主从集群配置
[root@localhost ~]# vim /etc/redis.cnf
#是否把redis-server启动在后台,默认是“否”。若改成yes,会生成一个pid文件。
daemonize no --> daemonize yes
#pid文件的路径
#pidfile --> pidfile /var/run/redis_6379.pid
pidfile /var/run/redis_6379.pid
#主服务器端口
port 6379
#日志级别 (debug、verbose、notice、warning)
loglevel notice
#日志文件路径
logfile /var/log/redis.log
#数据库文件路径:数据库文件的位置,最好添加绝对路径,若不添加时在启动用户的home目录下
dbfilename dump.rdb
#主从服务器的地址和端口。例如:slaveof 192.168.1.1 6379 如果是主服务器不需要开启此项
#slaveof <masterip> <masterport>
#从服务器只读选项,默认是yes,只读模式
slave-read-only no
#服务器密码:如果主服务设置了密码,从服务需要配置masterauth 这个选项
requirepass 1234
#主服务访问密码:从服务器设置,主服务器不需要设置
#masterauth kcpt
#如果是主机的话bind要改成0.0.0.0,丛机不需要(一定要修改,否则主从连接失败)
#bind 127.0.0.1
bind 0.0.0.0
-3.2、修改从机redis.cnf
[root@localhost ~]# vim /etc/redis.cnf
#是否把redis-server启动在后台,默认是“否”。若改成yes,会生成一个pid文件。
daemonize no --> daemonize yes
#pid文件的路径
#pidfile --> pidfile /var/run/redis-slave.pid
#主服务器端口
port 6379
#日志级别 (debug、verbose、notice、warning)
loglevel notice
#日志文件路径
logfile /var/log/redis.log
#数据库文件路径:数据库文件的位置,最好添加绝对路径,若不添加时在启动用户的home目录下
dbfilename dump.rdb
#主从服务器的地址和端口。例如:slaveof 192.168.1.169 6379 如果是主服务器不需要开启此项
slaveof 192.168.1.169 6379
#从服务器只读选项,默认是yes,只读模式
slave-read-only no
#服务器密码:如果主服务设置了密码,从服务需要配置masterauth 这个选项,从服务器也可以设置自己的密码
requirepass 5678
#主服务访问密码:从服务器设置,主服务器不需要设置
masterauth 1234
-3.3、然后记得修改主从防火墙,开放6379端口。
启动主从服务器:先启动主服务器,在启动从服务器
-3.4、测试主从是否连接
[root@localhost redis]# redis-cli
127.0.0.1:6379> auth 1234
OK
127.0.0.1:6379> info
# Server
redis_version:3.2.5
redis_git_sha1:00000000
redis_git_dirty:0
redis_build_id:653a283c36053acd
redis_mode:standalone
os:Linux 3.10.0-327.36.3.el7.x86_64 x86_64
arch_bits:64
multiplexing_api:epoll
gcc_version:4.8.5
process_id:6258
run_id:047043d1b9377b5a46c1ed842ff1c0870c99ce44
tcp_port:6379
uptime_in_seconds:146330
uptime_in_days:1
hz:10
lru_clock:5293078
executable:/var/log/redis-server
config_file:/etc/redis.conf
·
·
省略号
·
·
# Replication
role:master
connected_slaves:1
slave0:ip=192.168.1.170,port=6379,state=online,offset=113416,lag=1
master_repl_offset:113416
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:111639
repl_backlog_histlen:1778
如果主机# Replication 中出现则表示主从机连接成功
-3.5、从机测试
[root@localhost redis]# redis-cli
127.0.0.1:6379> auth 5678
OK
127.0.0.1:6379> info
# Replication
role:slave
master_host:192.168.1.169
master_port:6379
master_link_status:up
master_last_io_seconds_ago:0
master_sync_in_progress:0
slave_repl_offset:114158
slave_priority:100
slave_read_only:0
connected_slaves:0
master_repl_offset:0
repl_backlog_active:0
repl_backlog_size:1048576
repl_backlog_first_byte_offset:0
repl_backlog_histlen:0
如果从机# Replication出现并且master_link_status:up 为up则表示连接成功