Redis部署

系统:CentOS release 6.4 (Final)
软件:redis-2.6.16

一、单机部署
tar xvf redis-2.6.16.tar.gz
cd redis-2.6.16
make
make PREFIX=/usr/local/redis install  #指定安装目录为/usr/local/redis,默认安装安装到/usr/local/bin

拷贝配置文件:
cp redis.conf /etc  #配置文件放在/etc目录
sed -i "s/daemonize no/daemonize yes/" /etc/redis.conf #以daemon方式启动在后台
sed -i "s/# bind 127.0.0.1/ bind 0.0.0.0/"  /etc/redis.conf  #修改监听到所有网卡
sed -i "s#logfile stdout#logfile /var/log/redis.log#"  /etc/redis.conf    #设置日志存放文件

redis-2.8.17:
设置日志存放文件:
sed -i 's#logfile \"\"#logfile /var/log/redis.log#'  /etc/redis.conf  

启动脚本:
cp utils/redis_init_script /etc/init.d/redis  #拷贝模版
chmod +x /etc/init.d/redis #添加执行权限
chkconfig --level 2345 redis on #设置开启启动

脚本如下:
# cat /etc/init.d/redis 
#!/bin/sh
#
# Simple Redis init.d script conceived to work on Linux systems
# as it does use of the /proc filesystem.
# chkconfig: 2345 80 10       #添加redhat系列操作系统平台,开机启动需求项(运行级别,开机时服务启动顺序、关机时服务关闭顺序)
# description:  Starts, stops redis server.  #描述

REDISPORT=6379
EXEC=/usr/local/redis/bin/redis-server   #指定redis-server可执行文件
CLIEXEC=/usr/local/redis/bin/redis-cli   #指定redis-cli可执行文件

PIDFILE=/var/run/redis.pid  #指定redis pid文件
CONF="/etc/redis.conf"   #指定redis配置文件

# Source function library.
. /etc/rc.d/init.d/functions  #加载功能函数,以在启动描述文字后显示ok等字样

case "$1" in
    start)
        if [ -f $PIDFILE ]
        then
                echo -n "$PIDFILE exists, process is already running or crashed"
        else
                echo -n "Starting Redis server..."  #-n不换行显示
                $EXEC $CONF
                [[ $? -eq 0 ]] && echo_success || echo_failure  #这两行为新增,启动 成功 显示ok字样
                echo
        fi
        ;;
    stop)
        if [ ! -f $PIDFILE ]
        then
                echo "$PIDFILE does not exist, process is not running"
        else
                PID=$(cat $PIDFILE)
                echo "Stopping ..."
                $CLIEXEC -p $REDISPORT shutdown
                while [ -x /proc/${PID} ]
                do
                    echo "Waiting for Redis to shutdown ..."
                    sleep 1
                done
                retval=$?
                echo -n "Redis stopped"     #-n不换行显示
                [[ $retval -eq 0 ]] && echo_success || echo_failure   #这两行为新增,关闭成功显示ok字样
                echo
        fi
        ;;
    *)
        echo "Please use start or stop as first argument"
        ;;
esac

二、主从部署
10.1.6.100(master)--->10.1.6.101(slave)
master:配置一样
1、slave:添加如下配置,
slaveof 10.1.6.100 6379

2、启动master
3、启动salve
4、查看日志
master日志:
[2122] 21 Oct 07:29:05.361 * DB loaded from disk: 0.000 seconds
[2122] 21 Oct 07:29:05.361 * The server is now ready to accept connections on port 6379
[2122] 21 Oct 07:30:05.050 * Slave ask for synchronization
[2122] 21 Oct 07:30:05.054 * Starting BGSAVE for SYNC
[2122] 21 Oct 07:30:05.055 * Background saving started by pid 2130
[2130] 21 Oct 07:30:05.092 * DB saved on disk
[2130] 21 Oct 07:30:05.092 * RDB: 6 MB of memory used by copy-on-write
[2122] 21 Oct 07:30:05.159 * Background saving terminated with success
[2122] 21 Oct 07:30:05.159 * Synchronization with slave succeeded

slave日志:
[2122] 21 Oct 07:29:05.361 * DB loaded from disk: 0.000 seconds
[2122] 21 Oct 07:29:05.361 * The server is now ready to accept connections on port 6379
[2122] 21 Oct 07:30:05.050 * Slave ask for synchronization
[2122] 21 Oct 07:30:05.054 * Starting BGSAVE for SYNC
[2122] 21 Oct 07:30:05.055 * Background saving started by pid 2130
[2130] 21 Oct 07:30:05.092 * DB saved on disk
[2130] 21 Oct 07:30:05.092 * RDB: 6 MB of memory used by copy-on-write
[2122] 21 Oct 07:30:05.159 * Background saving terminated with success
[2122] 21 Oct 07:30:05.159 * Synchronization with slave succeeded

测试:
在master上使用客户端命令测试。
[root@nosql01 ~]# /usr/local/redis/bin/redis-cli 
redis 127.0.0.1:6379> get foo
(nil)
redis 127.0.0.1:6379> set foo bar
OK
redis 127.0.0.1:6379> 

查看master日志:
[2122] 21 Oct 08:41:52.643 * 1 changes in 900 seconds. Saving...
[2122] 21 Oct 08:41:52.648 * Background saving started by pid 2184
[2184] 21 Oct 08:41:52.721 * DB saved on disk
[2184] 21 Oct 08:41:52.722 * RDB: 6 MB of memory used by copy-on-write
[2122] 21 Oct 08:41:52.748 * Background saving terminated with success

查看slave日志:
[1002] 21 Oct 08:41:52.414 * 1 changes in 900 seconds. Saving...
[1002] 21 Oct 08:41:52.418 * Background saving started by pid 1044
[1044] 21 Oct 08:41:52.553 * DB saved on disk
[1044] 21 Oct 08:41:52.554 * RDB: 6 MB of memory used by copy-on-write
[1002] 21 Oct 08:41:52.619 * Background saving terminated with success

master上查看连接:
# netstat -na|grep EST|grep 6379
tcp        0      0 10.1.6.100:6379             10.1.6.101:37724            ESTABLISHED 


三、常见服务命令:
redis-server:Redis服务器的daemon启动程序
redis-cli:Redis命令行操作工具,也可以使用telnet根据其纯文本协议来操作
redis-benchmark:Redis性能测试工具,测试Redis在你的系统及你的配置下的读写性能
#redis-benchmark -n 100000 -c 50 模拟同时有50个客户端发起100000个SETs/Gets查询
redis-check-aof:更新日志检查
redis-check-dump:本地数据库检查

关闭Redis:
redis-cli shutdown
redis-cli -p 6379 shutdown #关闭指定端口的redis server

启动redis:
redis-server /etc/redis.conf

更新redis:
make install之前需要把正在运行的老版本redis关闭

四、Redis系统管理相关指令:
DBSIZE:返回当前数据库key的数量
INFO:返回当前redis服务器状态和一些统计信息
MONITOR:实时监听并返回redis服务器接收到的所有请求信息
redis 127.0.0.1:6379> MONITOR
OK
1382310132.678602 [0 127.0.0.1:56141] "get" "bar"
1382310139.691563 [0 127.0.0.1:56141] "get" "foo"

SHUTDOWN:把数据同步保存到磁盘上,并关闭redis服务
CONFIG GET parameter:获取一个redis配置参数信息(个别参数可能无法获取)
CONFIG SET parameter value:设置一个redis配置参数信息(个别参数可能无法获取)
CONFIG RESETSTAT:重置INFO命令的统计信息(重置包括:Keyspace命中数、Keyspace错误数、处理命令数、接收连接数、过期key数)
DEBUG OBJECT key:获取一个key的调试信息
DEBUG SEGFAULT:制造一次服务器当机
FLUSHDB:删除当前数据库中所有key,此方法不会失败;
FLUSHALL:删除全部数据库中所有key,此方法不好失败

五、Redis配置文件:
# cat /etc/redis.conf |grep -v ^#|grep -v ^$
daemonize yes  #以后台守护进程方式运行
pidfile /var/run/redis.pid #pid文件位置
port 6379   #监听端口
timeout 0  #客户端空闲多少秒后关闭其连接,0不生效
tcp-keepalive 0
loglevel notice  #log信息级别,总共支持四个级别:debu、verbose、notice、warning
logfile /var/log/redis.log  #默认为标准输出,如果配置为守护进程方式,而这里又配置为日志记录方式为标准输出,则日志将发送给/dev/null
databases 16  #开启数据库的数量,使用"select 库ID"方式切换操作各个数据库
save 900 1  #保存快照的频率,第一个参数表示多长时间,第二次参数表示执行多少次写操作,在一定时间内执行一定数量的写操作,自动保存快照,可设置多个条件。
save 300 10
save 60 10000
stop-writes-on-bgsave-error yes
rdbcompression yes  #保存快照是否使用压缩
rdbchecksum yes
dbfilename dump.rdb  #数据快照文件名(只是文件名,不包括目录),默认为dump.rdb
dir /data/redis  #数据快照的保存目录
#requirepass foobared #设置redis连接密码,如果配置了连接密码,客户端在连接redis时需要通过AUTH <password>命令提供密码,默认关闭
slave-serve-stale-data yes 
slave-read-only yes
repl-disable-tcp-nodelay no
slave-priority 100
appendonly no
appendfsync everysec
no-appendfsync-on-rewrite no
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
lua-time-limit 5000
slowlog-log-slower-than 10000
slowlog-max-len 128
hash-max-ziplist-entries 512
hash-max-ziplist-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
client-output-buffer-limit normal 0 0 0
client-output-buffer-limit slave 256mb 64mb 60
client-output-buffer-limit pubsub 32mb 8mb 60
hz 10
aof-rewrite-incremental-fsync yes





附件列表

 

转载于:https://my.oschina.net/anthonyyau/blog/351822

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值