Redis部署安装 不指定

kangyang , 2014/08/08 12:19 , WEB技术 , 评论(0) , 阅读(2791) , Via 本站原创 | |

redis部署
wget http://download.redis.io/releases/redis-2.8.9.tar.gz
tar xzf redis-2.8.9.tar.gz
cd redis-2.8.9
make PREFIX=/usr/local/redis install
cp redis.conf /etc/redis.conf

修改配置文件
/etc/sysctl.conf
添加
vm.overcommit_memory=1
sysctl -p
overcommit_memory文件指定了内核针对内存分配的策略,其值可以是0、1、2。
0, 表示内核将检查是否有足够的可用内存供应用进程使用;如果有足够的可用内存,内存申请允许;否则,内存申请失败,并把错误返回给应用进程。
1, 表示内核允许分配所有的物理内存,而不管当前的内存状态如何。
2, 表示内核允许分配超过所有物理内存和交换空间总和的内存

启动服务
redis-server /etc/redis.conf  

关闭服务
$ redis-cli shutdown    
#关闭指定端口的redis-server  
$redis-cli -p 6380 shutdown

redis-server:Redis服务器的daemon启动程序
redis-cli:Redis命令行操作工具。当然,你也可以用telnet根据其纯文本协议来操作
redis-benchmark:Redis性能测试工具,测试Redis在你的系统及你的配置下的读写性能
redis-stat:Redis状态检测工具,可以检测Redis当前状态参数及延迟状况

下面是redis.conf的主要配置参数
daemonize yes #转为守护进程,否则启动时会每隔5秒输出一行监控信息
save 60 1000 #减小改变次数,其实这个可以根据情况进行指定
maxmemory 256000000 #分配256M内存

daemonize:是否以后台daemon方式运行
pidfile:pid文件位置
port:监听的端口号
timeout:请求超时时间
loglevel:log信息级别
logfile:log文件位置
databases:开启数据库的数量
save * *:保存快照的频率,第一个*表示多长时间,第三个*表示执行多少次写操作。在一定时间内执行一定数量的写操作时,自动保存快照。可设置多个条件。
rdbcompression:是否使用压缩
dbfilename:数据快照文件名(只是文件名,不包括目录)
dir:数据快照的保存目录(这个是目录)
appendonly:是否开启appendonlylog,开启的话每次写操作会记一条log,这会提高数据抗风险能力,但影响效率。
appendfsync:appendonlylog如何同步到磁盘(三个选项,分别是每次写都强制调用fsync、每秒启用一次fsync、不调用fsync等待系统自己同步)


下面是一个略做修改后的配置文件内容:
daemonize yes
pidfile /usr/local/redis/var/redis.pid
port 6379
timeout 300
loglevel debug
logfile /usr/local/redis/var/redis.log
databases 16
save 900 1
save 300 10
save 60 10000
rdbcompression yes
dbfilename dump.rdb
dir /usr/local/redis/var/
appendonly no
appendfsync always
glueoutputbuf yes
shareobjects no
shareobjectspoolsize 1024


下面是一个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/bin/redis-server
# config:      /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/redis/bin/redis-server"
cli="/usr/local/redis/bin/redis-cli"

prog=$(basename $redis)

REDIS_CONF_FILE="/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
    daemon $cli -p 6379 shutdown
    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
        ;;
    reload)
        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|reload|force-reload}"
        exit 2
esac

chmod 755 /etc/rc.d/init.d/redis
[root@lx_web_s1 init.d]# service redis start
Starting redis-server:                                     [  OK  ]
[root@lx_web_s1 init.d]# service redis stop
Stopping redis-server:                                    [  OK  ]
添加到开机启动
chkconfig --add redis
chkconfig --level 3 redis on

另外一种开启启动
参考:http://blog.csdn.net/chhxo/article/details/8673020
下载:http://www.cnmysql.com/soft/redis
脚本名称:
        redis           #在多实例里可以按实例端口,如:redis-6001命名,以区分不同实例
脚本用法:
1. 将脚本复制到:/etc/rc.d/init.d/目录下
2.  chkconfig --add redis   #注册服务
3. checkconfig --level 345 redis on  #指定服务在3、4、5级别运行
4.脚本默认Redis程序安装在/usr/local/redis目录下,配置为/usr/local/redis/etc/redis.conf,如安装在其他目录,请自行修改

脚本参数:
        redis -p [port]  [start|stop|status|restart]
         参数说明:
          -p [port] : 指定redis实例的端口,用于多实例的服务器
         start:启动指定端口的Redis服务
         stop:停止指定端口的Redis服务
         status:进程状态
         restart:先关闭Redis服务,再启动Redis服务
        注:不指定端口时,脚本默认指定启动6379端口的redis
用法实例:
    service redis -p 6381 start  #启动6381端口实例的redis
   /etc/init.d/redis  start  #默认启动6379端口实例的redis
发表评论

昵称

网址

电邮

打开HTML 打开UBB 打开表情 隐藏 记住我 [登入] [注册]