您的位置:首页 > 数据库 > Redis

Redis集群部署

2015-03-25 11:42 274 查看
目前 redis的稳定版本是:redis-2.8.19.tar.gz

但是redis可以做一个主从复制的设置,见redis.conf的 复制【REPLICATION】 部分注释和设置

修改下就可以配置主从复制了,有 slaveof <masterip> <masterport> ,就成了 从服务器 ,没有就是 主服务器。

tar xvf redis.tar.gz

cd redis

make && make install

将会把redis-server、redis-cli、redis-benchmark、redis-check-aof、redis-check-dump 五个文件复制到 /usr/local/bin/下

然后将源码中的 redis.conf 复制到 /etc/redis.conf

再制作一个 init.d 的启动脚本:

#!/usr/bin/env bash
#
# redis start up the redis server daemon
#
# chkconfig: 345 99 99
# description: redis service in /etc/init.d/redis \
#             chkconfig --add redis or chkconfig --list redis \
#             service redis start  or  service redis stop
# processname: redis-server
# config: /etc/redis.conf

PATH=/usr/local/bin:/sbin:/usr/bin:/bin

REDISPORT=6379EXEC=/usr/local/bin/redis-server
REDIS_CLI=/usr/local/bin/redis-cli

PIDFILE=/var/run/redis.pid
CONF="/etc/redis.conf"#make sure some dir existif [ ! -d /var/lib/redis ] ;then
mkdir -p /var/lib/redis
mkdir -p /var/log/redis
fi

case "$1" in
status)
ps -A|grep redis
;;
start)
if [ -f $PIDFILE ]
then
echo "$PIDFILE exists, process is already running or crashed"else
echo "Starting Redis server..."$EXEC$CONF
fi
if [ "$?"="0" ]
then
echo "Redis is running..."
fi
;;
stop)
if [ ! -f $PIDFILE ]
then
echo "$PIDFILE does not exist, process is not running"else
PID=$(cat $PIDFILE)
echo "Stopping ..."$REDIS_CLI -p $REDISPORTSHUTDOWNwhile [ -x ${PIDFILE} ]
do
echo "Waiting for Redis to shutdown ..."sleep1
done
echo "Redis stopped"
fi
;;
restart|force-reload)
${0} stop
${0} start
;;
*)
echo "Usage: /etc/init.d/redis {start|stop|restart|force-reload}" >&2exit1
esac


将上面内容复制到 /etc/init.d/redis

chkconfig --add redis

chkconfig --list redis

service redis start

开启了服务,对了忘记了 /etc/redis.conf里面可以把 daemonize no 修改为

daemonize yes


就可以默认在后台执行redis-server了。

这就是主服务器,从服务器,配置一样,只不过 修改/etc/redis.conf 中

slaveof <masterip> 6379

如:slaveof 192.168.1.10 6379


然后开启从服务器的redis服务。

logfile 配置日志位置,不配置默认产生的日志放入垃圾箱

测试

#主服务器
redis-cli -p 6379 set hello world

#从服务器

redis-cli -p 6379 get hello
"world"#主服务器
redis-cli -p 6379 set hello world2

#从服务器

redis-cli -p 6379 get hello
"world2"

redis-cli -p 6379 set hello world
(error) READONLY You can't write against a read only slave.

#成功 配置主从redis 服务器。好简单啊。


由于配置中有一条 从服务器 是只读的,所以从服务器 没法设置数据,只可以读取数据。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: