美文网首页
redis安装

redis安装

作者: 橡皮24 | 来源:发表于2018-11-23 17:58 被阅读16次

    1 简介

    1.1 环境简介

    系统版本:centos7

    # cat /etc/redhat-release
    
    CentOS Linux release 7.4.1708 (Core)
    

    Redis版本:redis-3.2.0

    1.2 Redis简介

    2 安装redis

    1、下载安装包

    下载地址:http://download.redis.io/releases/

    2、上传解压

    # cd /data/
    
    # tar -zxvf redis-3.2.0.tar.gz
    

    3、编译

    #cd redis-3.2.0/
    
    # make
    

    4、报错解决

    ①报错内容

    # make
    
    cd src && make all
    
    make[1]: Entering directory `/data/redis-3.2.0/src'
    
     CC adlist.o
    
    /bin/sh: cc: command not found
    
    make[1]: *** [adlist.o] Error 127
    
    make[1]: Leaving directory `/data/redis-3.2.0/src'
    
    make: *** [all] Error 2
    

    ②报错原因

    由于没有安装gcc编译工具

    ③解决方法

    # yum -y install gcc*
    

    5、报错解决

    ①报错内容

    # make
    
    cd src && make all
    
    make[1]: Entering directory `/data/redis-3.2.0/src'
    
     CC adlist.o
    
    In file included from adlist.c:34:0:
    
    zmalloc.h:50:31: fatal error: jemalloc/jemalloc.h: No such file or directory
    
     #include <jemalloc/jemalloc.h>
    
     ^
    
    compilation terminated.
    
    make[1]: *** [adlist.o] Error 1
    
    make[1]: Leaving directory `/data/redis-3.2.0/src'
    
    make: *** [all] Error 2
    

    ②报错原因

    由于因为上次编译失败,有残留的文件

    ③解决方法

    # make distclean
    

    6、编译安装

    # make && make install
    

    7、创建相关文件

    # mkdir -p /data/redis/6379/{logs,var} && mkdir -p /data/redis/bin
    

    8、复制相关文件到/data/redis/bin下

    # cd /data/redis-3.2.0/src/
    
    # cp redis-server redis-cli redis-check-aof redis-benchmark redis-sentinel redis-server /data/redis/bin
    

    9、复制配置文件到/data/redis/6379下

    # cp /data/redis-3.2.0/redis.conf /data/redis/6379/
    

    10、修改配置文件

    安装自己的需求修改配置文件,之后会具体介绍配置文件参数。

    3 系统设置

    3.1 内核参数overcommit_memory

    1、简介

    ①它是 内存分配策略

    ②可选值:0、1、2。

    0, 表示内核将检查是否有足够的可用内存供应用进程使用;如果有足够的可用内存,内存申请允许;否则,内存申请失败,并把错误返回给应用进程。

    1, 表示内核允许分配所有的物理内存,而不管当前的内存状态如何。

    2, 表示内核允许分配超过所有物理内存和交换空间总和的内存

    2、设置

    ①临时设置:

    # sysctl vm.overcommit_memory=1
    
    # echo 1 > /proc/sys/vm/overcommit_memory
    

    ②永久设置

    # echo "vm.overcommit_memory=1" >> /etc/sysctl.conf
    
    # sysctl –p #生效
    

    3.2 内核参数somaxconn

    1、 简介:

    该内核参数默认值一般是128(定义了系统中每一个端口最大的监听队列的长度),对于负载很大的服务程序来说大大的不够。一般会将它修改为2048或者更大(官方建议511)。

    2、 设置

    ① 临时设置

    # echo 2048 > /proc/sys/net/core/somaxconn
    

    ② 永久设置

    # echo "net.core.somaxconn = 2048" >> /etc/sysctl.conf
    
    # sysctl –p
    

    3.3 系统最大连接数

    1、简介

    Linux系统默认的最大连接数为1024,redis建议最小10032.

    2、设置

    ①临时设置

    # ulimit -n 65535
    

    ③ 永久设置

    注意:需要重启shell生效

    # vi /etc/security/limits.conf
    
    * soft nofile 65535
    
    * hard nofile 65535
    

    4 启动redis

    4.1 手动启动并添加开机自启

    1、启动命令

    # /data/redis/bin/redis-server /data/redis/6379/redis.conf &
    

    2、开机自启

    # echo "/data/redis/bin/redis-server /data/redis/6379/redis.conf &" >> /etc/rc.local
    

    4.2 编写systemctl文件

    1、写redis.service文件。路径在/usr/lib/systemd/system目录下

    # vi /usr/lib/systemd/system/redis.service
    
    [Unit]
    
    #基础信息
    
    Description=Redis
    
    #描述
    
    After=syslog.target network.target remote-fs.target nss-lookup.target
    
    #之后启动的程序
    
    [Service]
    
    #服务信息(重要)
    
    Type=forking
    
    #表示 ExecStart= 所设定的进程将会在启动过程中使用 fork() 系统调用
    
    PIDFile=/data/redis/6379/redis.pid
    
    #pid文件按照自己的路径填写
    
    ExecStart=/data/redis/bin/redis-server /data/redis/6379/redis.conf
    
    #启动的命令
    
    ExecReload=/bin/kill -s HUP $MAINPID
    
    #重新加载
    
    ExecStop=/bin/kill -s QUIT $MAINPID
    
    #停止服务
    
    PrivateTmp=true
    
    [Install]
    
    #安装相关
    
    WantedBy=multi-user.target
    
    #  multi-user.target表明当系统以多用户方式(默认的运行级别)启动时,这个服务需要被自动运行。
    

    2、 使配置生效

    # systemctl daemon-reload
    

    3、 开启自启

    # systemctl enable redis
    

    5 报错解决

    5.1 最大连接数报错

    1、 报错内容

    Increased maximum number of open files to 10032 (it was originally set to 1024).
    

    2、 解决方案

    ①临时设置:

     # sysctl vm.overcommit_memory=1
    
    # echo 1 > /proc/sys/vm/overcommit_memory
    

    ②永久设置

     # echo "vm.overcommit_memory=1" >> /etc/sysctl.conf
     # sysctl –p #生效
    

    5.2 监听队列长度

    1、 报错内容

    WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.
    

    2、 解决方案

    ①临时设置

    # echo 2048 > /proc/sys/net/core/somaxconn
    

    ②永久设置

    # echo "net.core.somaxconn = 2048" >> /etc/sysctl.conf
    
    # sysctl –p
    

    5.3 内存控制

    1、报错内容

    WARNING overcommit_memory is set to 0! Background save may fail under low memory condition.
    
     To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.
    
     conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect.
    

    2、解决方案

    ①临时设置:

    # sysctl vm.overcommit_memory=1
    
    # echo 1 > /proc/sys/vm/overcommit_memory
    

    ②永久设置

    # echo "vm.overcommit_memory=1" >> /etc/sysctl.conf
    
    # sysctl –p #生效
    

    6 常用命令

    Redis支持tab,如果不是你想要的结果可以再tab一下。

    1、 连接redis

    # /data/redis/bin/redis-cli -h 127.0.0.1 -p 6379
    127.0.0.1:6379>
    

    2、写入值

    redis> set foo bar
    OK
    

    3、查询值

    redis> get foo
    "bar"
    

    3、 重命名

    redis>RENAME key newkey
    

    4、 删除

    redis>DEL key
    

    5、 集群状态查看

    redis>info replication
    

    相关文章

      网友评论

          本文标题:redis安装

          本文链接:https://www.haomeiwen.com/subject/bxqsqqtx.html