Redis主从配置详细过程
来源:互联网 发布:罗马帝国艳情史 知乎 编辑:程序博客网 时间:2024/06/05 18:21
创建相关目录
# mkdir -p /usr/local/redis/{etc,bin,var}
# mkdir -p /data/logs/redis /data/dbcache
-----------------------------------------------------------------------------------------------------------------------------------------------
编译安装
# tar -xvzf redis-2.4.13.tar.gz
# cd redis-2.4.13
# make
# cd src && cp redis-server redis-cli redis-benchmark /usr/local/redis/bin
# echo "vm.overcommit_memory=1" >> /etc/sysctl.conf
# /sbin/sysctl -p
-----------------------------------------------------------------------------------------------------------------------------------------------
主服务器设置【192.168.1.100】
# vim /usr/local/redis/etc/redis.conf
daemonize yes
pidfile /usr/local/redis/var/redis.pid
port 6379
bind 192.168.1.100
unixsocket /usr/local/redis/var/redis.sock
unixsocketperm 755
timeout 300
loglevel verbose
logfile /data/logs/redis/redis.log
# syslog-enabled no
# syslog-ident redis
# syslog-facility local0
databases 16
save 900 1
save 300 10
save 60 10000
rdbcompression yes
dbfilename dump.rdb
dir /data/dbcache
# slaveof <masterip> <masterport>
# masterauth <master-password>
# repl-ping-slave-period 10
# repl-timeout 60
requirepass redis123
# rename-command CONFIG ""
maxclients 0
# maxmemory <bytes>
# maxmemory-policy volatile-lru
# maxmemory-samples 3
appendonly no
appendfilename appendonly.aof
appendfsync always
no-appendfsync-on-rewrite no
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
slowlog-log-slower-than 10000
slowlog-max-len 128
vm-enabled no
vm-swap-file /data/dbcache/redis.swap
vm-max-memory 0
vm-page-size 32
vm-pages 134217728
vm-max-threads 4
glueoutputbuf yes
hash-max-zipmap-entries 512
hash-max-zipmap-value 64
list-max-ziplist-entries 512
list-max-ziplist-value 64
set-max-intset-entries 512
zset-max-ziplist-entries 128
zset-max-ziplist-value 64
activerehashing yes
-----------------------------------------------------------------------------------------------------------------------------------------------
从服务器设置【192.168.1.200】
daemonize yes
pidfile /usr/local/redis/var/redis.pid
port 6379
bind 192.168.1.200
unixsocket /usr/local/redis/var/redis.sock
unixsocketperm 755
timeout 300
loglevel verbose
logfile /data/logs/redis/redis.log
# syslog-enabled no
# syslog-ident redis
# syslog-facility local0
databases 16
save 900 1
save 300 10
save 60 10000
rdbcompression yes
dbfilename dump.rdb
dir /data/dbcache
# slaveof <masterip> <masterport>
# masterauth <master-password>
# repl-ping-slave-period 10
# repl-timeout 60
# rename-command CONFIG ""
maxclients 0
# maxmemory <bytes>
# maxmemory-policy volatile-lru
# maxmemory-samples 3
appendonly no
appendfilename appendonly.aof
appendfsync always
no-appendfsync-on-rewrite no
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
slowlog-log-slower-than 10000
slowlog-max-len 128
vm-enabled no
vm-swap-file /data/dbcache/redis.swap
vm-max-memory 0
vm-page-size 32
vm-pages 134217728
vm-max-threads 4
glueoutputbuf yes
hash-max-zipmap-entries 512
hash-max-zipmap-value 64
list-max-ziplist-entries 512
list-max-ziplist-value 64
set-max-intset-entries 512
zset-max-ziplist-entries 128
zset-max-ziplist-value 64
activerehashing yes
slave-serve-stale-data yes
slaveof 192.168.1.100 6379
masterauth redis123
启动服务:
# /usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.conf
主服务器上执行:
# /usr/local/redis/bin/redis-cli -h 192.168.1.100 -a redis123 set test 123456
从服务器上执行:
# /usr/local/redis/bin/redis-cli -h 192.168.1.200 get test
-----------------------------------------------------------------------------------------------------------------------------------------------
启动脚本
# vim /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/etc/redis.conf
# pidfile: /usr/local/redis/var/redis.pid
# Check that networking is up.
[
"$NETWORKING"
=
"no"
] &&
exit
0
redis=
"/usr/local/redis/bin/redis-server"
prog=$(
basename
$redis)
REDIS_CONF_FILE=
"/usr/local/redis/etc/redis.conf"
lockfile=
"/var/lock/subsys/redis"
start() {
[ -x $redis ] ||
exit
5
[ -f $REDIS_CONF_FILE ] ||
exit
6
echo
-n $
"Starting $prog: "
$redis $REDIS_CONF_FILE
retval=$?
echo
[ $retval -
eq
0 ] &&
touch
$lockfile
return
$retval
}
stop() {
echo
-n $
"Stopping $prog: "
/sbin/killproc
$prog -QUIT
retval=$?
echo
[ $retval -
eq
0 ] &&
rm
-f $lockfile
return
$retval
}
restart() {
stop
sleep
1
start
}
reload() {
echo
-n $
"Reloading $prog: "
/sbin/killproc
$redis -HUP
RETVAL=$?
echo
return
$retval
}
case
"$1"
in
start)
$1
;;
stop)
$1
;;
restart)
$1
;;
reload)
$1
;;
*)
echo
$
"Usage: $0 {start|stop|restart|reload}"
exit
2
esac
-----------------------------------------------------------------------------------------------------------------------------------------------
启动服务
# chmod 700 /etc/init.d/redis
# chkconfig --add redis
# service redis start
测试是否已启动
# /usr/local/redis/bin/redis-cli ping
性能测试
# /usr/local/redis/bin/redis-benchmark
关闭服务
# /usr/local/redis/bin/redis-cli -p 6379 shutdown
强制刷新数据到磁盘【Redis默认是异步写入磁盘的】
# /usr/local/redis/bin/redis-cli -p 6379 save
-----------------------------------------------------------------------------------------------------------------------------------------------
phpredis扩展安装
# svn checkout http://phpredis.googlecode.com/svn/trunk/phpredis-read-only
# /usr/local/php/bin/phpize
# ./configure --with-php-config=/usr/local/php/bin/php-config
# make && make install
*******************************************************************************
redis主从配置及主从切换
环境描述:
主redis:192.168.10.1 6379
从redis:192.168.10.2 6380
一、主从配置
1、将主从redis配置文件redis.conf中的aemonize no 改为
yes
2、修改从redis配置文件redis.conf中的port 6379 改为 6380,添加
slaveof 192.168.10.1 6379
3、启动主从服务
主redis:
[root@localhost redis-2.8.3]# src/redis-server /soft/redis-2.8.3-master/redis-2.8.3/redis.conf
从redis:
[root@localhost redis-2.8.3]# src/redis-server /soft/redis-2.8.3-slave/redis-2.8.3/redis.conf
4、测试数据同步
主redis:
[root@localhost redis-2.8.3]# src/redis-cli -p 6379
127.0.0.1:6379> set name abc
OK
127.0.0.1:6379> get name
"abc"
127.0.0.1:6379>
从redis:
[root@localhost redis-2.8.3]# src/redis-cli -p 6380
127.0.0.1:6380> get name
"abc"
127.0.0.1:6380>
5、默认是读写分离的
在从redis:
[root@localhost redis-2.8.3]# src/redis-cli -p 6380
127.0.0.1:6380> set name 123
(error) READONLY You can't write against a read only slave.
二、主从切换
1、停止主redis
[root@localhost redis-2.8.3]# src/redis-cli -n 6379 shutdown
[root@localhost redis-2.8.3]# src/redis-cli -p 6379
Could not connect to Redis at 127.0.0.1:6379: Connection refused
not connected>
2、将从redis设成主redis
[root@localhost redis-2.8.3]# src/redis-cli -p 6380 slaveof NO ONE
OK
3、测试从redis是否切换从主redis
[root@localhost redis-2.8.3]# src/redis-cli -p 6380
127.0.0.1:6380> set name 123
OK
127.0.0.1:6380> get name
"123"
127.0.0.1:6380>
4、原来的主redis恢复正常了,要重新切换回去
1)将现在的主redis的数据进行保存
[root@localhost redis-2.8.3]# src/redis-cli -p 6380
127.0.0.1:6380> get name
"abc"
127.0.0.1:6380> set name 123
OK
127.0.0.1:6380> get name
"123"
127.0.0.1:6380> save
OK
127.0.0.1:6380> get name
"123"
127.0.0.1:6380>
2)将现在的主redis根目录下dump.rdb文件拷贝覆盖到原来主redis的根目录
3)启动原来的主redis
[root@localhost redis-2.8.3]# src/redis-server /soft/redis-2.8.3-master/redis-2.8.3/redis.conf
4)在现在的主redis中切换
OK
- Redis主从配置详细过程
- Redis主从配置详细过程
- Redis主从复制配置及工作过程
- redis sentinel 主从切换(failover)解决方案,详细配置
- redis sentinel 主从切换(failover)解决方案,详细配置
- redis sentinel 主从切换(failover)解决方案,详细配置
- redis-3.0.1 sentinel 主从高可用 详细配置
- redis sentinel 主从切换(failover)解决方案,详细配置
- redis sentinel 主从切换(failover)解决方案,详细配置
- 详细讲解Redis主从结构配置以及复制原理(一)
- 详细讲解Redis主从结构配置以及复制原理(二)
- redis主从复制过程
- redis 主从复制过程
- Redis安装+主从配置 过程中 的几个小 Tips
- Redis主从配置
- redis主从服务器配置
- redis主从配置
- redis (二)主从配置
- Centos6.5安装使用NFS
- 总结的一些css3的一些东西,放个地方吧
- 使用EmguCv计算包围物体的最小圆与最小可旋转矩形和不可选择矩形
- iOS中的动画二
- 算法题:二分查找的溢出考虑
- Redis主从配置详细过程
- HDU 5002 Tree (2014年鞍山赛区网络赛F题)
- HDOJ 题目4010 Query on The Trees(Link Cut Tree连接,删边,路径点权加,路径点权最大值)
- codeforces 46D Parking Lot(线段树模拟区间管理 or set模拟)
- 自适应高度文本框
- Turn off Windows10 automatic updates
- storyboard 添加Navigation Controller
- 记录决策理由
- IOS 使用类计算矩形的周长和面积