• linux 【阿里云服务器】 配置 redis 的正确流程


    1.前言

    我的域名备案前几天通过了,这篇随笔完整的记录 redis 的安装流程 与各种 问题 的 具体解决方案。

    2.操作【跟着步骤来】

    (1)指令cd /usr/local

    进入local文件夹里面 ,

    指令 mkdir redis 

    新建一个叫redis的文件夹,

    指令cd redis 

    进入redis文件夹,

    (2)将redis安装包【是个后缀 .tar.gz的压缩包】放于redis文件夹里,

    可以使用下载网址直接下载

    指令是  wget http://xxxx.xxx/xxx/sss.tar.gz   

    具体网址自己去官网查,将默认下载到当前文件夹内

    或者直接拷贝压缩包进去 

    【我的是在window10 使用xftp 软件传输 压缩包到 远程 Linux 的 ,xftp具体操作在我其他随笔有详细记载】

    (3)解压安装包[假设 包名 redis-5.0.8.tar.gz ]

    指令 tar -zxvf  redis-5.0.8.tar.gz

    解压当前文件夹内的 名叫 redis-5.0.8.tar.gz 的压缩包

    会自动在当前文件夹新建一个名为redis-5.0.8的文件夹  ,解压文件放在里面

    (4)

    指令 cd redis-5.0.8 

    继续进入该文件夹 ,

    指令 make 

    编译安装文件 ,可能需要等一会,没那么快 。

    指令 cd src

    继续进入 src文件夹,

    输入指令pwd 可查看当前位置路径,我当前在 /usr/local/redis/redis-5.0.8/src  ,

    指令 make test 

    测试是否可以安装,这个可能要等几分钟,第一次装会提示

      You need tcl 8.5 or newer in order to run the Redis test

      makeL:***[test] Error 1

    因为 缺少TCL(Tool Command Language)工具脚本语言 ,需要安装

    指令 wget http://downloads.sourceforge.net/tcl/tcl8.6.1-src.tar.gz

    直接下载 tcl ,

    指令 sudo tar xzvf tcl8.6.1-src.tar.gz  -C /usr/local/

    以管理员身份解压到指定位置 ,这里是解压到 /usr/local/ ,会新建一个叫 tcl8.6.1 的文件夹

     指令 cd  /usr/local/tcl8.6.1/unix/

    进入 unix文件夹 ,

    指令 sudo ./configure

    以管理员身份执行./configure

    指令sudo make

    以管理员身份编译

    指令  sudo make install

    以管理员身份安装,

    //

    指令 /usr/local/redis/redis-5.0.8/src

    再次进入src文件夹,

    指令 make test

    再次测试安装,当出现报错

      "test_client_main $::test_server-port"

      make: *** [test]  Error  1

     说明可以安装redis了,但是因为redis不需要安装,已经是个解压且编译好的文件,这不需要再安装,可直接使用

    (5)查看端口是否被占用

    指令 ps -ef | grep redis 

    写着 grep  -- color=auto redis 是查询接口进程本身 ,不需要理会,将指令改成 ps -ef | grep r[e]dis  即可忽略显示 【只要在redis这个字符串加上[x] 即可 ,x表示redis字符串的一个字母 】

    如果有进程使用 6379端口

    指令  kill -9 967

    强制关闭 进程数为 967 的进程

     (6)修改redis.conf 配置文件 ,开启允许redis以服务的方式运行在后端 

     指令 vi /usr/local/redis/redis-5.0.8/redis.conf 

    直接进入编辑配置文件页面

     按字符 i ,进入编辑模式

    找到 daemonize 属性 设为yes

     按esc后 ,按符号 : 然后输入 wq 再按回车即可保存并退出

    (7)启动 redis

    指令/usr/local/redis/redis-5.0.8/src

    进入src文件夹,

    指令 ./redis-server  /usr/local/redis/redis-5.0.8/redis.conf

    启动redis ,第一次启动需要 加入配置文件,之后可以不加 ,直接redis-server或 ./redis-server 启动 但是这需要当前在 /usr/local/redis/redis-5.0.8/src文件夹里面

    也可以输入 vi /usr/local/redis/redis-5.0.8/src/redis-server 启动

    出现图案

     说明启动成功

    但是第一次搭建redis会报3个错

     从上到下三个错误的原因是

    (1)tcp设置的值太小了,需要修改更大的才行

    (2)overcommit_memory参数设置为0!在内存不足的情况下,后台程序save可能失败,需要设为1

    (3)使用透明大页THP,可能导致redis延迟和内存使用问题,需要关闭

    具体解决操作:

    (1)

    解决 错误1 和 2需要修改rc.local文件

    指令 vi  /etc/rc.local

    修改 rc.local文件

    修改后保存退出

    (2)

    解决错误3 需要 修改rc.local文件 

    指令 vi /etc/rc.local

    添加内容

    echo never > /sys/kernel/mm/transparent_hugepage/enabled

    修改完后保存退出

    然后重启linux系统后即可使用

    重启指令 reboot

     //

    再次启动redis

     没有再报错了,

    如果启动指令使用 ./redis-server /usr/local/redis/redis-5.0.8/redis.conf 

    加上配置文件,将会以服务的方式后端运行,那么 按ctrl+c键不会关闭redis 

    (8)关闭redis服务

    指令redis-cli shutdown

     

    3.启动redis客户端

    指令redis-cli --raw

     指令exit

    退出

    4.设置系统开机自动启动

    (1)

    指令  vi /etc/init.d/redis

    创建一个文件并进入

    (2)编写脚本,路径根据实际情况写,只需要修改红色部分

    #!/bin/sh  
    #chkconfig: 2345 80 90  
    # Simple Redis init.d script conceived to work on Linux systems  
    # as it does use of the /proc filesystem.  
    REDISPORT=6379                          #端口号,这是默认的,如果你安装的时候不是默认端口号,则需要修改
    REDISPATH=/usr/local/redis/redis-5.0.8/
                   #redis-server启动脚本的所在目录,你如果忘了可以用find / -name redis-server 或whereis redis-server找到 
    EXEC=${REDISPATH}/src/redis-server
    CLIEXEC=${REDISPATH}/src/redis-cli
    PIDFILE=/var/run/redis_${REDISPORT}.pid  #在redis.conf中可找到该路径
    CONF="${REDISPATH}/redis.conf"           #redis.conf的位置, 如果不和redis-server在同一目录要修改成你的redis.conf所在目录
    case "$1" in
      start)
        if [ -f $PIDFILE ]
        then
            echo "$PIDFILE exists, process is already running or crashed"  
        else
            echo "Starting Redis server..."  
            $EXEC $CONF
        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
            echo "Redis stopped"  
        fi
        ;;
      *)
        echo "Please use start or stop as first argument"  
        ;;
    esac

    (3)设置启动权限

    指令 chmod 777 /etc/init.d/redis

    (4)现在试一下能不能启动

    先检查是否有进程占用端口 6379

    指令 ps -ef | grep redis

    如果有以指令 kill -9 [进程数]  来关闭

    指令cd  /var/run 

    进入装有进程目录的文件夹run ,查看是否有文件 redis_6379.pid ,有则需要删除 

    删除指令  rm -f /var/run/redis_6379.pid

    [当进程停止时对应的.pid文件会删除,开启时则会创建 ,但是有时候强制停止进程,会遗留 pid文件没有删除,因此需要手动删除]

    好了现在可以试试了

    指令/etc/init.d/redis start

    启动redis

    指令 /etc/init.d/redis stop

    关闭redis

    指令 redis-cli 或redis-cli --raw

    连接redis客户端

    [这样做的优势是可以在任意的当前目录位置运行redis指令]

    (5)开机启动

    如果当前Linux系统是 Ubuntu 的

    则使用指令

    //安装 sysv-rc-conf
    apt-get update apt-get install sysv-rc-conf
    //设置自启动 sysv
    -rc-conf redis on

    其他Linux系统使用

    //设置自启动
    chkconfig redis on

    设置完后,

    指令 reboot

    重启操作系统等一会再连接查看即可

    启动后指令查看进程

    ps -ef | grep red[i]s

          成功 ,撒花!!!

    ----------------------------

    参看博文原址:

    https://www.cnblogs.com/wumz/p/10236694.html

    https://blog.csdn.net/philosophyatmath/article/details/88863136

    https://blog.csdn.net/yup1212/article/details/82152106

    https://blog.csdn.net/chen_jia_hao/article/details/83865551

    https://www.cnblogs.com/s-p-l/p/10633488.html

    https://blog.csdn.net/xiaomudouer/article/details/88847894

    https://www.cnblogs.com/john-xiong/p/12098827.html

    https://blog.csdn.net/weixin_33446857/article/details/80842037

    https://www.cnblogs.com/byx1024/p/12228735.html

    https://blog.csdn.net/u011712163/article/details/90903396

    https://www.cnblogs.com/beautiful-code/p/9441954.html

    https://blog.csdn.net/ztf312/article/details/83025297

    https://www.jianshu.com/p/a73e0565e2a1

  • 相关阅读:
    search
    longestValidParentheses
    nextPermutation
    linux下通过安装xampp搭建环境卸载xampp、以及网站搬家-64位系统Apache启动不了的问题
    对拍器 ADC-ACMDataCreater
    Educational Codeforces Round 86 (Rated for Div. 2) A~D
    Codeforces Round #637 (Div. 2) A~D
    Codeforces Round #636 (Div. 3) A~D
    Codeforces Round #635 (Div. 2) A~D
    原型设计工具比较及实践 基于WolframAlphaAPI的科学计算器原型设计
  • 原文地址:https://www.cnblogs.com/c2g5201314/p/13056753.html
Copyright © 2020-2023  润新知