一.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复制好配置文件修改对应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服务到开机自启。