Centos7 安装Redis,并配置主从复制集群
0、何为Redis
Redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)和zset(有序集合)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,Redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是Redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。Redis 是一个高性能的key-value数据库。 Redis的出现,很大程度补偿了memcached这类keyvalue存储的不足,在部分场合可以对关系数据库起到很好的补充作用。
1、Redis 安装
1.1 安装前环境说明
使用的是CentOS 7 版本的Linux系统,
master ip 为192.168.2.143 :6379
slave ip 为192.168.2.127 :6380
虚拟机工具使用的是Vm,但是如果在一台虚拟机上进行测试,一定要修改主从redis的端口,使其不一样
1.2 一键下载安装Redis
echo '========================'
systemctl disable firewalld.service
systemctl stop firewalld.service
systemctl disable firewalld.service
yum install iptables-services
systemctl start iptables.service
systemctl status iptables.service
pwd
cd /usr/local/src/
yum install wget
yum install tcl
yum install -y gcc-c++
yum install -y tcl
yum install gcc
yum install cpp
yum install cpp
yum install glibc-devel
yum install libmpc
yum install glibc-headers
yum install kernel-headers
yum install gcc-c++
wget http://download.redis.io/releases/redis-4.0.8.tar.gz
tar xzf redis-4.0.8.tar.gz
cd redis-4.0.8
make & make test
echo '========================'
2 Redis 简单配置
所有配置修改都在此配置文件
/usr/local/redis-4.0.1/redis.conf
2.1 修改为守护进程的方式运行
Redis默认不是以守护进程的方式运行,可以通过该配置项修改,使用yes启用守护进程
#daemonize no
#修改为yes
daemonize yes
2.2 绑定的主机地址
bind后面再添加主机的ip,后面主从复制
从Redis需要通过IP连接。
bind 127.0.0.1 10.211.55.3
2.3 设置Redis 密码
这里密码设置为javen
# requirepass foobared
requirepass javen
2.4 设置Redis 端口号
默认端口为6379
port 6379
3、测试Redis
- 启动
#默认配置文件/usr/local/redis-4.0.1/redis.conf
src/redis-server
#或者指定配置文件
src/redis-server redis.conf
后端启动
src/redis-server &
- 客户端连接
src/redis-cli
# 如果有密码则
src/redis-cli -a Javen
测试Redis
- 停止
#默认配置文件 /usr/local/redis-4.0.1/redis.conf 中的端口
src/redis-cli shutdown
#指定端口
src/redis-cli -p 6666 shutdown
4、Redis 主从复制配置
Redis的主从复制功能非常强大,一个master可以拥有多个slave,而一个slave又可以拥有多个slave,如此下去,形成了强大的多级服务器集群架构。下面简单的进行一下配置。
修改slave的redis配置文件
-
master的redis配置文件只要设置好
bind
即可 -
修改slave的redis配置文件
slaveof 10.211.55.3 6379 (映射到主服务器上,6379
是端口号)
也可以动态设置:
通过redis-cli 连接到从节点服务器,执行下面命令即可。
slaveof 10.211.55.3 6379 -
如果master设置了验证密码,还需配置masterauth。我这里的master设置了验证密码为javen,所以配置masterauth javen。
配置完之后启动slave的Redis服务,OK,主从配置完成(是不是很简单)。
下面测试一下:
在master和slave分别执行info命令,查看结果如下:
slave:
[root@centos-linux-2 redis-4.0.1]# src/redis-cli
127.0.0.1:6379> info
image
如果从Redis连接到了master则
master_link_status:up
否则为down
。如果为down
请坚持master的Redis是否bind
了主机的IP以及是否设置了密码。因为从Redis是远程连接必须设置bind
,如果master的Redis设置了密码slave的Redis必须设置masterauth
master:
image然后在master执行set age 18
在slave执行get age,看是否能得到18,如果能够得到值则说明配置成功。
下面把slave修改的参数贴出来:
daemonize yes
bind 127.0.0.1 10.211.55.4
requirepass javen
port 6379
slaveof 10.211.55.3 6379
masterauth javen
5、Redis 远程连接
用法:redis-cli [OPTIONS] [cmd [arg [arg …]]]
-h <主机ip>,默认是127.0.0.1
-p <端口>,默认是6379
-a <密码>,如果redis加锁,需要传递密码
–help,显示帮助信息
redis-cli -h 10.211.55.4 -p 6379 -a javen
cover
main:
https://redis.io/
http://blog.csdn.net/zyw_java/article/details/76717276
see :
http://blog.csdn.net/jc_benben/article/details/77140936
http://blog.csdn.net/qq_36787384/article/details/76639519
https://www.cnblogs.com/zqr99/p/7899779.html
http://blog.csdn.net/zyhlearnjava/article/details/73008054
http://blog.csdn.net/lc1010078424/article/details/78295482
note:
所用脚本文件
https://pan.baidu.com/s/1cNhG6fOdcBKK7lEzy771sQ