Redis的安装和配置

1 单机

1.1 安装tcl

1.1.1 下载tcl安装包
wget http://downloads.sourceforge.net/tcl/tcl8.6.1-src.tar.gz
1.1.2 解压
tar -xzvf tcl8.6.1-src.tar.gz
1.1.3 移动文件夹到/usr/local目录
mv tcl8.6.1 /usr/local/tcl8.6.1
1.1.4 进入到unix目录
cd  /usr/local/tcl8.6.1/unix/
1.1.5 配置
./configure 
1.1.6 编译安装
make && make install

1.2 安装redis

1.2.1 下载安装包

1.2.2 解压安装包
tar -zxvf redis-3.2.8.tar.gz
1.2.3 移动文件夹到/usr/local目录
mv redis-3.2.8 /usr/local/redis-3.2.8
1.2.4 进入redis目录
cd /usr/local/redis-3.2.8
1.2.5 编译安装
make && make test && make install

1.3 配置

1.3.1 复制redis_init_script脚本并重命名和修改权限
cp /usr/local/redis-3.2.8/utils/redis_init_script /etc/init.d/redis_6379  
chmod 777 /etc/init.d/redis_6379
1.3.2 修改redis_6379中的端口号为6379
 vi /etc/init.d/redis_6379 
 修改如下配置:
 REDISPORT=6379
1.3.3 创建两个目录

/etc/redis(存放redis的配置文件)
/var/redis/6379(存放redis的持久化文件)

mkdir /etc/redis
mkdir /var/redis/6379 -p
1.3.4 复制并重命名redis.conf文件
cp /usr/local/redis-3.2.8/redis.conf /etc/redis/6379.conf
1.3.5 修改redis.conf中的配置
vi /etc/redis/6379.conf

daemonize   yes                         //让redis以daemon进程运行
pidfile     /var/run/redis_6379.pid     //设置redis的pid文件位置
port        6379                        //设置redis的监听端口号
dir         /var/redis/6379             //设置持久化文件的存储位置
1.3.6 启动redis
/etc/init.d/redis_6379 start
1.3.7 确认redis是否启动
ps -ef | grep redis
1.3.8 让redis跟随系统启动自动启动

第一步:
在redis_6379脚本中最上面加入以下两行注释

# chkconfig:   2345 90 10
# description:  Redis is a persistent key-value database
vi /etc/init.d/redis_6379

第二步:
设置脚本开机启动

chkconfig redis_6379 on

2 配置一主一从读写分离架构

2.1 安装两台单机redis

略:参考1

2.2 配置从节点

2.2.1 修改redis配置文件
vi /etc/redis/6379.conf

修改以下配置:

slaveof once4 6379  ## 配置主节点IP和端口号
slave-read-only yes ## 配置从节点只进行读操作
masterauth hadoop   ## 配置主节点密码,如果主节点没有设置密码认证此步可以省略
bind once5  ## 指定绑定的本机的IP,单机模式不需要,集群模式必须指定

2.3 配置主节点

2.3.1 修改redis配置文件
vi /etc/redis/6379.conf

修改以下配置:

requirepass hadoop ## 配置主节点密码
bind once4  ## 指定绑定的本机的IP,单机模式不需要,集群模式必须指定

2.4 先启动(或重启)主节点,再启动(或重启)从节点

redis-cli -a hadoop shutdown ## 带密码停止
redis-cli shutdown  ## 不带密码停止
/etc/init.d/redis_6379 stop  ## 不带密码停止
/etc/init.d/redis_6379 start ## 启动

2.5 查看主从节点信息

2.5.1 连接redis-cli
/usr/local/bin/redis-cli [-h host] [-p port] [-a password] 

## -h 省略默认为本机   -p省略默认为6379  -a省略默认为没有密码

使用info命令查看状态:

info

从节点得到以下结果:

# Replication
role:slave
master_host:once4
master_port:6379
master_link_status:up
master_last_io_seconds_ago:7
master_sync_in_progress:0
slave_repl_offset:57
slave_priority:100
slave_read_only:1
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
role:master
connected_slaves:1
slave0:ip=192.168.247.5,port=6379,state=online,offset=99,lag=0
master_repl_offset:99
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:2
repl_backlog_histlen:98

显示以上信息代表主从架构搭建完成

3 为一主一从读写分离架构配置哨兵

3.1 安装另外一台redis

安装另外一台redis once6,只需要安装,不需要启动,这台redis只是作为哨兵服务器使用–因为哨兵至少有3台服务器

3.2 在每台服务器上配置哨兵

3.2.1 在每台服务器上创建所需文件夹
mkdir /etc/sentinel ## 哨兵配置目录
mkdir -p /var/sentinel/5000  ## 哨兵运行目录
mkdir -p /var/sentinel/log/5000 ## 哨兵日志目录
3.2.2 复制每台服务器的配置文件到指定位置
cp /usr/local/redis-3.2.8/sentinel.conf /etc/sentinel/5000.conf
3.2.3 修改每台服务器上的配置文件5000.conf
port 5000  ## 哨兵端口号
bind once4 ## 哨兵绑定的本机IP
dir /var/sentinel/5000 ## 哨兵运行目录
sentinel monitor mymaster once4 6379 2 ## 主节点IP和端口号配置、quorum的配置(最后一个2)
sentinel auth-pass mymaster hadoop ## 可选,如果master没有密码可以不设置
sentinel down-after-milliseconds mymaster 30000 ## 每个哨兵sdown的超时时间
sentinel failover-timeout mymaster 60000 ## 执行故障转移的timeout超时时长
sentinel parallel-syncs mymaster 1 ## slave同步新的master的并行数量,数字越低,花费的时间越多
daemonize yes ## 后台运行, 此配置原配置文件没有,需自己添加
logfile /var/sentinel/log/5000/sentinel.log ## 运行日志位置, 此配置原配置文件没有,需自己添加
3.2.4 启动哨兵进程

在once4、once5、once6三台机器上,分别启动三个哨兵进程,组成一个集群
有以下两种方式:

redis-sentinel /etc/sentinel/5000.conf ## 推荐,这种方式启动和redis实例没有任何关系
redis-server /etc/sentinel/5000.conf --sentinel

备注:以下方式关闭哨兵的命令:

redis-cli -h once4 -p 5000 shutdown
3.3 检查哨兵状态
redis-cli -h once4 -p 5000 -a hadoop
sentinel master mymaster //查看master的状态 
SENTINEL slaves mymaster //查看salves的状态
SENTINEL sentinels mymaster //查看哨兵的状态
SENTINEL get-master-addr-by-name mymaster //获取当前master的地址
info sentinel //查看哨兵信息

4 哨兵的操作

4.1 添加一个哨兵节点

像3中讲述的,修改配置文件,启动哨兵即可

4.2 删除一个哨兵节点

  1. 停止sentinal进程
  2. 在所有sentinal上执行SENTINEL RESET *操作,清理所有的master状态
  3. 在所有sentinal上执行SENTINEL MASTER mastername操作,查看所有sentinal对数量是否达成了一致、

4.3 slave的永久下线

  1. 停止要下线的slave
  2. 在所有的哨兵上面执行SENTINEL RESET mastername操作,让master摘除某个已经下线的slave

4.4 设置slave切换为Master的优先级

slave-priority,值越小优先级越高

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值