单机部署Redis服务器
1.下载并解压(可以通过redis官网下载或使用wget获取,获取地址:
http://download.redis.io/releases/redis-5.0.2.tar.gz)


2.安装依赖包

3.创建redis安装路径

4.编译并安装,指定安装目录为/usr/local/redis/

5.复制redis相关命令到/usr/sbin目录下,方便敲命令

6.建立redis配置文件,redis.conf在redis的源码目录下,port默认6379

7.修改redis配置文件

修改下面几项:
daemonize no --> daemonize yes //默认前端启动,设置后端启动
# bind 127.0.0.1 --> bind 0.0.0.0 //默认允许本机访问,设置允许远程访问
logfile "" --> logfile /var/log/redis_6379.log //配置redis日志
# requirepass foobared --> requirepass 123456 //设置redis请求密码为123456
修改之后重启下服务
有了密码之后,进入客户端,就得这样访问:

8.redis常用操作
启动

关闭

查看是否启动

进入客户端

关闭客户端

设置开机自启

开放防火墙端口
添加规则:

保存规则:

重启iptables:

9.将redis注册为系统服务
在/etc/init.d目录下添加redis服务启动脚本

脚本内容:
#!/bin/sh
#
# redis - this script starts and stops the redis-server daemon
#
# chkconfig: - 85 15
# description: Redis is a persistent key-value database
# processname: redis-server
# config: /usr/local/redis/bin/redis-server
# config: /etc/redis.conf
# Source function library.
. /etc/rc.d/init.d/functions
# Source networking configuration.
. /etc/sysconfig/network
# Check that networking is up.
[ "$NETWORKING" = "no" ] && exit 0
redis="/usr/local/redis/bin/redis-server"
prog=$(basename $redis)
REDIS_CONF_FILE="/etc/redis.conf"
[ -f /etc/sysconfig/redis ] && . /etc/sysconfig/redis
lockfile=/var/lock/subsys/redis
start() {
[ -x $redis ] || exit 5
[ -f $REDIS_CONF_FILE ] || exit 6
echo -n $"Starting $prog: "
daemon $redis $REDIS_CONF_FILE
retval=$?
echo
[ $retval -eq 0 ] && touch $lockfile
return $retval
}
stop() {
echo -n $"Stopping $prog: "
killproc $prog -QUIT
retval=$?
echo
[ $retval -eq 0 ] && rm -f $lockfile
return $retval
}
restart() {
stop
start
}
reload() {
echo -n $"Reloading $prog: "
killproc $redis -HUP
RETVAL=$?
echo
}
force_reload() {
restart
}
rh_status() {
status $prog
}
rh_status_q() {
rh_status >/dev/null 2>&1
}
case "$1" in
start)
rh_status_q && exit 0
$1
;;
stop)
rh_status_q || exit 0
$1
;;
restart|configtest)
$1
;;
reload)
rh_status_q || exit 7
$1
;;
force-reload)
force_reload
;;
status)
rh_status
;;
condrestart|try-restart)
rh_status_q || exit 0
;;
*)
echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart| reload|orce-reload}"
exit 2
esac
赋予脚本权限

启动、停止和重启



redis-5.0.7版本启动报错,查看日志,报错一:

解决方法:写入“
vm.overcommit_memory = 1”至/etc/sysctl.conf文件,并重载sysctl配置

报错二:

解决方法:执行
echo never > /sys/kernel/mm/transparent_hugepage/enabled,并将这句命令写入/etc/rc.local文件以永久生效

报错三:

解决方法:将“net.core.somaxconn = 1024”写入/etc/sysctl.conf文件,并重载sysctl配置

搭建Redis主从架构
1.主从环境
192.168.117.14:6379 主 sz12
192.168.117.15:6379 从 sz13
2.编辑从机的redis配置文件
添加一行,对应主机的ip和端口

如果主机设置了密码,找到masterauth,改为主机设定的密码

配置完成后重启从机redis服务

3.进入主机的redis-cli状态,输入INFO replication查询当前主机的Redis处于什么角色,有哪些从机已经连上主机

进入从机的redis-cli状态,同样可以查看信息

4.测试
进入主机的redis-cli状态,set myqq 82900528

进入从机的redis-cli状态,get myqq,查看是否可以获取值

搭建Redis Sentinel高可用架构
1.环境
redis-server
192.168.117.14:6379 主 sz12
192.168.117.15:6379 从 sz13
redis-sentinel
192.168.117.14:26379 sz12
192.168.117.15:26379 sz13
2.建立redis配置文件
如果要做自动故障转移,则建议所有的redis.conf都设置masterauth,因为自动故障只会重写主从关系,即slaveof,不会自动写入masterauth。如果Redis原本没有设置密码,则可以忽略。
将源码目录下的redis-sentinel的配置文件拷贝至/etc/下


3.修改sentinel.conf配置文件(主从都要)


修改如下几项

//主从都设定为192.168.117.14

//redis在搭建时设置了密码

//5秒内mymaster没有响应,就认为SDOWN




4.启动redis-sentinel


5.进入任意一台sentinel机进入redis-cli查看服务信息

6.自动故障转移测试
关闭主机redis

进入从机查看sentinel状态,发现从库提升为主库
