美文网首页程序员
linux应用一Redis安装和配置

linux应用一Redis安装和配置

作者: 十二楼中月 | 来源:发表于2018-07-02 10:37 被阅读40次

    1. 环境优化

    做如下优化原因:解决redis启动时报错。

    vi /etc/sysctl.conf
    在文件末尾加上,然后保存
    net.core.somaxconn = 2048
    vm.overcommit_memory = 1
    运行命令使修改生效
    /sbin/sysctl -p
    vi /etc/rc.local
    在文件末尾加上,然后保存
    echo never > /sys/kernel/mm/transparent_hugepage/enabled
    重启服务器
    
    • 修改somaxconn
      该内核参数默认值一般是128(定义了系统中每一个端口最大的监听队列的长度),对于负载很大的服务程序来说大大的不够。一般会将它修改为2048或者更大
    • overcommit_memory参数说明:
      设置内存分配策略(可选,根据服务器的实际情况进行设置)
      /proc/sys/vm/overcommit_memory
      可选值:0、1、2。
      0, 表示内核将检查是否有足够的可用内存供应用进程使用;如果有足够的可用内存,内存申请允许;否则,内存申请失败,并把错误返回给应用进程。
      1, 表示内核允许分配所有的物理内存,而不管当前的内存状态如何。
      2, 表示内核允许分配超过所有物理内存和交换空间总和的内存
    • transparent_hugepage
      透明大页(THP)管理和标准/传统大页(HP)管理都是操作系统为了减少页表转换消耗的资源而发布的新特性,虽然ORACLE建议利用大页机制来提高数据库的性能,但是ORACLE却同时建议关闭透明大页管理,在redis中建议关闭。

    2. 安装步骤

    cd到redis安装包所在文件夹
    解压
    tar -zxvf redis-3.2.9.tar.gz
    安装
    cd redis-3.2.9
    make MALLOC=libc  解决报错问题
    安装,可通过PREFIX指定安装目录
    make install PREFIX=/usr/local/redis
    将源码中的配置文件拷贝到安装目录bin文件夹
    cp /usr/local/src/redis-3.2.9/redis.conf /usr/local/redis/bin/
    cp /usr/local/src/redis-3.2.9/sentinel.conf /usr/local/redis/bin/
    运行
    cd /usr/local/redis/bin
    ./redis-server redis.conf
    停止
    cd /usr/local/redis/bin
    ./redis-cli shutdown
    
    zmalloc.h:50:31: error: jemalloc/jemalloc.h: No such file or directory
    zmalloc.h:55:2: error: #error "Newer version of jemalloc required"
    make[1]: *** [adlist.o] Error 1
    make[1]: Leaving directory `/data0/src/redis-2.6.2/src'
    make: *** [all] Error 2
    
    解决办法是:
    make MALLOC=libc
    

    3. 纯缓存模式下配置说明(其他模式配置,后续学习后再更新)

    在缓存模式下Redis不需要存储数据(数据可以从数据库中得到)
    #参数,是否开启保护模式,默认开启。要是配置里没有指定bind和密码。开启该参数后,redis只会本地进行访问,拒绝外部访问。要是开启了密码 和bind,可以开启。否则最好关闭,生产服务器设置为yes。 
    protected-mode yes
    
    #redis监听的端口号,根据需要设置
    port 6379
    
    #指定 redis 只接收来自于本机的该IP对应网卡的请求,如果不进行设置,那么将处理所有请求 
    bind 127.0.0.1 #此处需要注意两个ip地址只能使用一个生效,否则会被覆盖掉。
    bind 192.168.0.203
    #requirepass配置可以让用户使用AUTH命令来认证密码,才能使用其他命令。这让redis可以使用在不受信任的网络中。为了保持向后的兼容性,可以注释该命令,因为大部分用户也不需要认证。使用requirepass的时候需要注意,因为redis太快了,每秒可以认证15w次密码,简单的密码很容易被攻破,所以最好使用一个更复杂的密码。 requirepass redis
    
    # 快照配置 
    # 注释掉“save”这一行配置项就可以让保存数据库功能失效 
    # 设置redis进行数据库镜像的频率。 
    # 900秒(15分钟)内至少1个key值改变(则进行数据库保存--持久化) 
    # save 900 1
    # 300秒(5分钟)内至少10个key值改变(则进行数据库保存--持久化) 
    # save 300 10
    # 60秒(1分钟)内至少10000个key值改变(则进行数据库保存--持久化) save 300 10 save 60 10000
    # save 60 10000
    # 缓存模式下可通过以下设置关闭RDB
    save ""
    
    #redis配置的最大内存容量。当内存满了,需要配合maxmemory-policy策略进行处理。注意slave的输出缓冲区是不计算在maxmemory内的。所以为了防止主机内存使用完,建议设置的maxmemory需要小于服务器剩余内存。 
    # 当前配置为最大内存4G,根据服务器实际需要修改
    maxmemory 4294967296
    
    #默认redis使用的是rdb方式持久化,这种方式在许多应用中已经足够用了。但是redis如果中途宕机,会导致可能有几分钟的数据丢失,根据save来策略进行持久化,Append Only File是另一种持久化方式,可以提供更好的持久化特性。Redis会把每次写入的数据在接收后都写入 appendonly.aof 文件,每次启动时Redis都会先把这个文件的数据读入内存里,先忽略RDB文件。 
    # 缓存模式下可通过以下设置关闭appendonly
    appendonly no
    
    
    把daemonize设置为yes 可以后台启动
    

    相关文章

      网友评论

        本文标题:linux应用一Redis安装和配置

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