二、Redis简单部署
2.1 典型安装-单实例
系统环境说明
[root@Redis ~]# cat /etc/redhat-release
CentOS release 6.9 (Final)
[root@Redis ~]# uname -r
2.6.32-696.el6.x86_64
[root@Redis ~]# sestatus
SELinux status: disabled
[root@Redis ~]# /etc/init.d/iptables status
iptables: Firewall is not running.
[root@Redis ~]# hostname -I
10.0.0.186 172.16.1.186
安装redis
[root@Redis ~]# cd /usr/local/
[root@Redis local]# wget http://download.redis.io/releases/redis-3.2.10.tar.gz
[root@Redis local]# tar xzf redis-3.2.10.tar.gz
[root@Redis local]# \rm redis-3.2.10.tar.gz
[root@Redis local]# mv redis-3.2.10 redis
[root@Redis local]# cd redis/
[root@Redis redis]# make
至此redis就安装完成。
2.2 启动第一个redis实例
创建客户端软连接
[root@Redis src]# ln -s /usr/local/redis/src/redis-cli /usr/bin/
简单启动方法,都使用默认配置
[root@Redis ~]# cd /usr/local/redis/src
[root@Redis src]# ./redis-server &
编写配置文件
1、精简化配置文件
[root@Redis redis]# cp redis.conf{,.bak}
[root@Redis redis]# grep -Ev '^$|#' redis.conf.bak > redis.conf
[root@Redis redis]# cp redis.conf /etc/
2、编辑配置文件
[root@Redis ~]# cat /etc/redis.conf
bind 127.0.0.1 10.0.0.186
protected-mode yes
port 6379
tcp-backlog 511
timeout 0
tcp-keepalive 300
daemonize yes
supervised no
pidfile /var/run/redis_6379.pid
loglevel notice
logfile "/var/log/redis_6379.log"
dir /usr/local/redis/data/
# ···
3、编写启动脚本(适用于CentOS 6.X)
#!/bin/sh
#
# Simple Redis init.d script conceived to work on Linux systems
# as it does use of the /proc filesystem.
# chkconfig: - 85 15
# url: http://blog.oldboyedu.com
# user: oldboy
### END INIT INFO
REDISPORT=6379
EXEC=/usr/local/redis/src/redis-server
CLIEXEC=/usr/local/redis/src/redis-cli
PIDFILE=/var/run/redis_6379.pid
CONF="/etc/redis.conf"
# source function library
. /etc/rc.d/init.d/functions
rd_start() {
if [ -f $PIDFILE ]
then
action "$PIDFILE exists" /bin/false
else
$EXEC $CONF
if [ $? -eq 0 ]
then
action "Starting Redis server..." /bin/true
else
action "Starting Redis server..." /bin/false
fi
fi
}
rd_stop() {
if [ ! -f $PIDFILE ]
then
action "$PIDFILE does not exist, process is not running" /bin/false
else
PID=$(cat $PIDFILE)
$CLIEXEC -p $REDISPORT shutdown
while [ -x /proc/${PID} ]
do
echo "Waiting for Redis to shutdown ..."
sleep 1
done
action "Redis stopped" /bin/true
fi
}
rd_status() {
if [ -f $PIDFILE ]
then
echo "redis server is running....."
else
echo "redis is stopped"
fi
}
rd_restart() {
rd_stop
sleep 2
rd_start
}
case "$1" in
start)
rd_start
;;
stop)
rd_stop
;;
status)
rd_status
;;
restart)
rd_restart
;;
*)
echo $"Usage: $0 {start|stop|restart|status}"
;;
esac
注意:自编写脚本注意执行权限。
2.3 Redis多实例配置
注意:本次多实例配置基于单实例配置完成后
创建并进入程序目录
[root@Redis redis]# mkdir /application/redis -p
[root@Redis redis]# cd /application/redis/
修改配置文件
for i in 0 1 2
do
# 创建多实例(端口命名)目录
mkdir -p 638$i
# 复制启动程序到各实例
\cp /usr/local/redis/src/redis-server /application/redis/638$i/
# 复制配置文件。注意:此处基于单实例配置完成
\cp /etc/redis.conf /application/redis/638$i/
# 修改程序存储目录
sed -i "/dir/s#.*#dir /application/redis/638$i/#g" /application/redis/638$i/redis.conf
# 修改其他端口信息
sed -i "s#6379#638$i#g" /application/redis/638$i/redis.conf
# 允许远程连接redis
sed -i '/protected-mode/s#yes#no#g' /application/redis/638$i/redis.conf
done
启动实例
for i in 0 1 2
do
/application/redis/638$i/redis-server /application/redis/638$i/redis.conf
done
连接redis
[root@Redis redis]# redis-cli -h 10.0.0.186 -p 6379
10.0.0.186:6379>
2.4 redis.conf配置说明
是否后台运行:
daemonize no/yes
默认端口:
port 6379
AOF日志开关是否打开:
appendonly no/yes
日志文件位置:
logfile /var/log/redis.log
RDB持久化数据文件:
dbfilename dump.rdb
指定IP进行监听:
bind 10.0.0.51 ip2 ip3 ip4
禁止protected-mode:
protected-mode yes/no (保护模式,是否只允许本地访问)
增加requirepass {password}
requirepass root
在redis-cli中使用
auth {password} 进行认证
2.5 在线变更配置
获取当前配置
CONFIG GET *
变更运行配置
CONFIG SET loglevel "notice"
修改密码为空
10.0.0.186:6379> config set requirepass ""
10.0.0.186:6379> exit
10.0.0.186:6379> config get dir
1) "dir"
2) "/usr/local/redis/data"