本地安装redis哨兵模式(redis安装使用教程)

一.Redis安装

1.win系统连接linux 需要配置环境 安装OpenSSH或者安装Git客户端

2.Windows机器安装好Openssh或者Git客户端打开Cmd或Git bash

3.输入 ssh 用户名@IP连接Linux服务器。

4.安装Redis 一般安装位置在/usr/local/redis

$ mkdir /usr/local/redis //创建redis文件夹$ cd /usr/local/redis //进入文件夹$ wget http://download.redis.io/releases/redis-4.0.9.tar.gz //下载文件 我这里选择是4.0.9版本$ tar xzf redis-4.0.9.tar.gz //解压$ cd redis-4.0.9 //进入目录$ make(make MALLOC=libc) //编译

还有要注意的一点是记得安装gcc和gcc-c ,还要注意gcc的版本,用gcc -v来查看当前安装的gcc版本,版本过低(一般需要4.0以上)的话编译redis3.0以上的是会出错的。

apt-get install gccapt-get install gcc-c

有可能还要安装tcl(如果make test出现You need tcl 8.5 or newer in order to run the Redis test的话)

apt-get install tclredis编译报致命错误:jemalloc/jemalloc.h没有那个文件或目录

分配器allocator, 如果有MALLOC 这个 环境变量, 会有用这个环境变量的 去建立Redis。而且libc 并不是默认的 分配器, 默认的是 jemalloc, 因为 jemalloc 被证明 有更少的 fragmentation problems 比libc。但是如果你又没有jemalloc 而只有 libc 当然 make 出错。所以加这么一个参数,运行如下命令:make MALLOC=libc 以上错误完美解决。

5.安装成功 启动服务:

$ src/redis-server

测试:

$ src/redis-cliredis> set name kkOKredis> get name”kk”

6.设置启动服务为后台运行

vim redis.conf

找到daemonize no 改为daemonize yes 修改保存 启动服务 加上配置文件:

redis-service redis.conf二.Redis sentinel 主从配置

redis主从配置,配置master 只能为写,slave只能为读,从而实现读写分离,在客户端对poolconnect请求时候,,会将读请求转到slave上面,写请求转到master上面,同时,master和slave有同步功能,这就实现了(数据层)读写分离对上层(逻辑层)透明的正常逻辑。无需再通过中间件或者代码进行读写分析实现。

本地安装redis哨兵模式(redis安装使用教程)Redis

这里实现简单的配置 我们拿一台主机做测试有多台更好 多台主机搭建集群其实异曲同工我们在主机安装好Redis复制好配置文件修改对应IP端口即可。

第一步创建三个文件夹 复制我们上面搭建好的Redis

mkdir /usr/local/redisms/master //创建主服务目录mkdir /usr/local/redisms/slave1 //创建从服务1目录mkdir /usr/local/redisms/slave2 //创建从服务2目录cp -r /usr/local/redis /usr/local/redisms/mastercp -r /usr/local/redis /usr/local/redisms/slave1 cp -r /usr/local/redis /usr/local/redisms/slave2

修改master配置

我们主要修改这几个地方

#添加一个密码requirepass “123” #后台运行daemonize yes#修改为你的安装目录 redis_端口号 这里主服务器端口为6379默认不动它pidfile “/usr/local/redisms/master/redis_6379.pid”#修改为你的安装目录logfile “/usr/local/redisms/master/log/log.log”#修改为你的安装目录dir “/usr/local/redisms/master”

修改slave1配置

我们主要修改这几个地方

#添加一个密码requirepass “123” #端口改为6001 使用前请查看端口是否被占用port 6001#服务器转变为指定服务器的从属服务器 如果是在别的主机上安装这里的IP改为主服务器所属机器IP Redis端口即可 这里本地我们写127.0.0.1slaveof 127.0.0.1 6379#后台运行daemonize yes#修改为你的安装目录 redis_端口号 端口改为该redis服务端口pidfile “/usr/local/redisms/slave1/redis_6001.pid”#修改为你的安装目录logfile “/usr/local/redisms/slave1/log/log.log”#修改为你的安装目录dir “/usr/local/redisms/slave1”

下面修改sentinel配置

修改slave2配置

我们主要修改这几个地方

#添加一个密码requirepass “123” #端口改为6001 使用前请查看端口是否被占用port 6002#服务器转变为指定服务器的从属服务器 如果是在别的主机上安装这里的IP改为主服务器所属机器IP Redis端口即可 这里本地我们写127.0.0.1slaveof 127.0.0.1 6379#后台运行daemonize yes#修改为你的安装目录 redis_端口号 端口改为该redis服务端口pidfile “/usr/local/redisms/slave2/redis_6002.pid”#修改为你的安装目录logfile “/usr/local/redisms/slave2/log/log.log”#修改为你的安装目录dir “/usr/local/redisms/slave2”

下面修改sentinel配置

结合上面我们redis sentinel 算是简单配置完成。

启动redis sentinel 服务

cd /usr/local/redisms/master //进入主服务器目录redis-server redis.conf //启动主服务cd ../slave1/ //进入从1服务redis-server redis.conf //启动从服务redis-server sentinel.conf –sentinel //启动从1哨兵cd ../slave2/ //进入从2服务redis-server redis.conf //启动从服务redis-server sentinel.conf –sentinel //启动从2哨兵ps -ef |grep redis //查看进程root 24671 1 0 7月05 ? 00:01:05 /usr/local/redisms/master/src/redis-server *:6379root 24672 1 0 7月05 ? 00:06:12 /usr/local/redisms/slave1/src/redis-server *:6001root 24673 1 1 7月05 ? 00:12:24 /usr/local/redisms/slave1/src/redis-server *:26379 [sentinel]root 24677 1 0 7月05 ? 00:06:12 /usr/local/redisms/slave2/src/redis-server *:6002root 24679 1 1 7月05 ? 00:12:24 /usr/local/redisms/slave2/src/redis-server *:26479 [sentinel]

这个时候主服务器就可写可读 从服务器可读状态

kill -9 24671

这个时候杀死主服务则就会自动切换

this:到这里基本完成redis sentinel配置 需要注意的是 在集群中不同主机配置从服务器需要注意修改IP端口即可实现。

三.Redis sentinel 主从配置开机自启动

首先redis启动主从分为三个服务,那么开机启动服务我也分开好设置好了。首先找到redis启动脚本 在utils目录下 redis_init_script 文件

看一下默认配置

#!/bin/sh## Simple Redis init.d script conceived to work on Linux systems# as it does use of the /proc filesystem.REDISPORT=6379EXEC=/usr/local/bin/redis-serverCLIEXEC=/usr/local/bin/redis-cliPIDFILE=/var/run/redis_${REDISPORT}.pidCONF=”/etc/redis/${REDISPORT}.conf”case “$1” in start) if [ -f $PIDFILE ] then echo “$PIDFILE exists, process is already running or crashed” else echo “Starting Redis server…” $EXEC $CONF fi ;; stop) if [ ! -f $PIDFILE ] then echo “$PIDFILE does not exist, process is not running” else PID=$(cat $PIDFILE) echo “Stopping …” $CLIEXEC -p $REDISPORT shutdown while [ -x /proc/${PID} ] do echo “Waiting for Redis to shutdown …” sleep 1 done echo “Redis stopped” fi ;; ) echo “Please use start or stop as first argument” ;;esac

修改后的配置

以上配置保存好修改就行

service redis_master start //启动redis服务service redis_master stop //关闭redis服务chkconfig redis_master on //设为开机启动chkconfig redis_master off //设为开机关闭

从服务开机启动模仿上面写即可。

以上步骤完整搭建Redis Sentinel服务到开机自启。

发表评论

登录后才能评论