zoukankan      html  css  js  c++  java
  • Linux 安装Redis全过程日志

    wget http://download.redis.io/redis-stable.tar.gz
    tar xvzf redis-stable.tar.gz
    cd redis-stable
    make
     
    前面3步应该没有问题,基本的问题是运行make的时候。出现了异常。
    异常一:
    make[2]: cc: Command not found
    异常原因:没有安装gcc
    解决方式:yum install gcc-c++
    异常二:
    zmalloc.h:51:31: error: jemalloc/jemalloc.h: No such file or directory
    异常原因:一些编译依赖或原来编译遗留出现的问题
    解决方式:make distclean。清理一下。然后再make。


    在make成功以后。须要make test。在make test出现异常。
    异常一:
    couldn't execute "tclsh8.5": no such file or directory
    异常原因:没有安装tcl
    解决方式:yum install -y tcl。
     
    在make成功以后,会在src文件夹下多出一些可运行文件:redis-server。redis-cli等等。


    方便期间用cp命令拷贝到usr文件夹下执行。
    cp redis-server /usr/local/bin/
    cp redis-cli /usr/local/bin/


    然后新建文件夹,存放配置文件
    mkdir /etc/redis
    mkdir /var/redis
    mkdir /var/redis/log
    mkdir /var/redis/run
    mkdir /var/redis/6379


    在redis解压根文件夹中找到配置文件模板,拷贝到例如以下位置。


    cp redis.conf /etc/redis/6379.conf
    通过vim命令改动
    daemonize yes
    pidfile /var/redis/run/redis_6379.pid
    logfile /var/redis/log/redis_6379.log
    dir /var/redis/6379
    最后执行redis:
    $ redis-server /etc/redis/6379.conf
    #################################开机自启动配置#################################
    #!/bin/sh
    #
    # chkconfig:   2345 90 10
    # description:  Redis is a persistent key-value database
    # redis    Startup script for redis processes
    # processname: redis
    redis_path="/usr/local/bin/redis-server"
    redis_conf="/etc/redis/6379.conf"
    redis_pid="/var/redis/run/redis_6379.pid"
    # Source function library.
    . /etc/rc.d/init.d/functions
    [ -x $redis_path ] || exit 0
    RETVAL=0
    prog="redis"
    # Start daemons.
    start() {
    if [ -e $redis_pid -a ! -z $redis_pid ];then
    echo $prog" already running...."
    exit 1
    fi
    echo -n $"Starting $prog "
    # Single instance for all caches
    $redis_path $redis_conf
    RETVAL=$?


    [ $RETVAL -eq 0 ] && {
    touch /var/lock/subsys/$prog
    success $"$prog"
    }
    echo
    return $RETVAL
    }
    # Stop daemons.
    stop() {
    echo -n $"Stopping $prog "
    killproc -d 10 $redis_path
    echo
    [ $RETVAL = 0 ] && rm -f $redis_pid /var/lock/subsys/$prog
    RETVAL=$?
    return $RETVAL
    }
    # See how we were called.
    case "$1" in
    start)
    start
    ;;
    stop)
    stop
    ;;
    status)
    status $prog
    RETVAL=$?


    ;;
    restart)
    stop
    start
    ;;
    condrestart)
    if test "x`pidof redis`" != x; then
    stop
    start
    fi
    ;;
    *)
    echo $"Usage: $0 {start|stop|status|restart|condrestart}"
    exit 1
    esac
    exit $RETVAL
    -------------------------------------------------------
    :wq! #保存退出
    chmod 755 /etc/init.d/redis  #加入脚本运行权限
    chkconfig --add redis  #加入开启启动
    chkconfig --level 2345 redis on  #设置启动级别
    chkconfig --list redis  #查看启动级别
    service redis restart  #又一次启动redis
    #################################设置redis配置文件參数##############################
    mkdir -p /usr/local/redis/var  #创建redis数据库存放文件夹
    vim /etc/redis/6370.conf


    daemonize yes  #以后台daemon方式执行redis
    pidfile "/var/run/redis.pid"  #redis以后台执行,默认pid文件路径/var/run/redis.pid
    port 6379  #默认端口
    bind 127.0.0.1 #默认绑定本机全部ip地址。为了安全,能够仅仅监听内网ip
    timeout 300 #client超时设置。单位为秒
    loglevel verbose  #设置日志级别,支持四个级别:debug、notice、verbose、warning
    logfile stdout  #日志记录方式,默觉得标准输出。logs不写文件,输出到空设备/deb/null
    logfile "/usr/local/redis/var/redis.log"  #能够指定日志文件路径
    databases 16  #开启数据库的数量
    save 900 1
    save 300 10
    save 60 10000
    创建本地数据库快照。格式:save * *
    900秒内,运行1次写操作
    300秒内。运行10次写操作
    60秒内,运行10000次写操作
    rdbcompression yes #启用数据库lzf压缩。也能够设置为no
    dbfilename dump.rdb  #本地快照数据库名称
    dir "/usr/local/redis/var/"   #本地快照数据库存放文件夹
    requirepass 123456  #设置redis数据库连接password
    maxclients 10000 #同一时间最大客户端连接数,0为无限制
    maxmemory 1024MB #设定redis最大使用内存,值要小于物理内存,必须设置
    appendonly yes  #开启日志记录,相当于MySQL的binlog
    appendfilename "appendonly.aof"   #日志文件名称,注意:不是文件夹路径
    appendfsync everysec #每秒运行同步,还有两个參数always、no一般设置为everysec,相当于MySQL事物日志的写方式
    :wq! #保存退出
    service redis restart #重新启动
    ####################################測试redis数据库####################################
    redis-cli -a 123456  #连接redis数据库,注意:-a后面跟redis数据库password
    set name 111cn.net  #写数据
    get name  #读取数据
    exit #退出redis数据库控制台
    redis-benchmark -h 127.0.0.1 -p 6379 -c 1000 -n 100000  #1000个并发连接。100000个请求,測试127.0.0.1port为6379的redisserver性能


  • 相关阅读:
    Oracle函数如何把符串装换为小写的格式
    Oralce中的synonym同义词
    JS中getYear()的兼容问题
    How to do SSH Tunneling (Port Forwarding)
    所谓深度链接(Deep linking)
    upload size of asp.net
    发一个自动刷网站PV流量的小工具
    解决Visual Studio 2008 下,打开.dbml(LINQ) 文件时,提示"The operation could not be completed." 的问题。
    在资源管理器中使鼠标右键增加一个命令,运行cmd,同时使得当前路径为资源管理器当前的目录
    使用SQL语句获取Sql Server数据库的版本
  • 原文地址:https://www.cnblogs.com/slgkaifa/p/7116345.html
Copyright © 2011-2022 走看看