|
Redis-3.0.7主从简单复制的配置
# wget http://download.redis.io/releases/redis-3.0.7.tar.gz
# tar xf redis-3.0.7.tar.gz
# cd redis-3.0.7
# make
# make install
假设我有两台机器:
master: 192.168.1.1
slave: 192.168.1.2
1, redis配置文件常用选项说明
daemonize no
说明:是否把redis-server启动在后台,默认是“否”。若改成yes,会生成一个pid文件。
pidfile /var/run/redis.pid
说明:redis-server的pid文件。
port 6379
说明:redis-server的端口号
dbfilename dump.rdb
说明:数据库文件的位置,最好添加绝对路径,若不添加时在启动用户的home目录下。
dir ./(此处填写dump.rdb更改后绝对路径,如果两个主机上分别用相同的目录,那么两个主机数据就会完全同步)
slaveof
说明:设置主从服务器的主服务器的地址和端口。例如:slaveof 192.168.1.1 6379
loglevel verbose
说明:日志级别,有四种,debug,verbose,notice,warning。
logfile stdout
说明:日志的输出文件,默认是标准输出。例如:logfile /tmp/redis.log
2, 主从的安装和配置
2.1 基本环境
假设我有两台机器:
master: 192.168.1.1
slave: 192.168.1.2
>cd redis-2.4.13
>make
>make install
2.2 安装主服务器
vim redis.conf
根据自己的需要修改一些参数
.修改磁盘上保存数据库文件的位置:
dbfilename /redisdb/dump.rdb
.修改日志级别
#如果只要输出少量日志的话,可以用waring
loglevel warning
.修改日志文件的位置
logfile /tmp/redis.log
2.3 安装和配置从机
cp redis.conf /etc/redis_slave.conf
vim redis_slave.conf
修改其中的一行
配置master的ip地址和redis-server的端口。
slaveof 192.168.1.1 6379
3, 启动和测试
主机: redis-server /etc/redis.conf
从机: redis-server /etc/redis_slave.conf
3.1 测试
在主机上启动redis客户端:
ssh 192.168.1.1
redis-cli
>set k1 v1
>get k1
"v1"
.登陆从机,并在从机上启动客户端:
ssh 192.168.1.2
redis-cli
>get k1
"v1"
可以看到redis已经把数据同步过来了。
Redis 常用命令之服务器相关命令
redis-cli -h 192.168.12.12 远程登录redis客户端
redis 127.0.0.1:6379> ping 测试连接是否存活
PONG
redis 127.0.0.1:6379> echo wilian 在命令行打印一些内容
"wilian"
redis 127.0.0.1:6379> select 1 选择数据库。Redis数据库编号从0~15,我们可以选择任意一个数据库来进行数据的存取
OK
redis 127.0.0.1:6379[1]> dbsize 返回当前数据库中key的数目。
(integer) 0
redis 127.0.0.1:6379[1]> select 0
OK
redis 127.0.0.1:6379> dbsize
(integer) 20
redis 127.0.0.1:6379> info 获取服务器的信息和统计
redis_version:2.4.5
redis 127.0.0.1:6379> monitor 实时转储收到的请求。
OK
1340780669.110663 "monitor"
redis 127.0.0.1:6379> config get dir 获取服务器配置信息
1) "dir"
2) "D:\\mysoft\\redis-2.0.2"
flushdb 删除当前选择数据库中的所有key
flushall 删除所有数据库中的所有key
redis密码设置、访问权限控制等安全设置
1.比较安全的办法是采用绑定IP的方式来进行控制。
bind 127.0.0.1
2.设置密码,以提供远程登陆
redis.conf
找到
requirepass
写上
requirepass yourpassword
设置密码以后发现可以登陆,但是无法执行命令了。
src/redis-cli -h 192.168.1.121
auth 123456
登陆带密码方式
./redis-cli -h 192.168.1.121 -a abcd
由于redis并发能力极强,仅仅搞密码,***者可能在短期内发送大量猜密码的请求,很容易暴力破解,所以建议密码越长越好,比如20位。(密码在 conf文件里是明文,所以不用担心自己会忘记)
Redis的启动停止
Redis安装配置完成后,启动过程非常简单,执行命令/usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.conf即可。停止Redis的最简单的方法是在启动实例的session中,直接使用Control-C命令。当然还可以通过客户端来停止服务,如可以用shutdown来停止Redis实例,具体命令为src/redis-cli shutdown。
下面是一个Shell脚本(供参考),用于管理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-2.4.X/bin/redis-server
# config: /usr/local/ /redis-2.4.X/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/webserver/redis-2.4.X/bin/redis-server"
prog=$(basename $redis)
REDIS_CONF_FILE="/usr/local/webserver/redis-2.4.X/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
;;
> 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|> exit 2
esac
|
|
|