zoukankan      html  css  js  c++  java
  • CentOS 7 安装Redis4.0

    redis是一种内存型的NoSQL数据库,优点是快,常用来做缓存用 
    redis存储数据的方法是以key-value的形式 
    value类型支持字符串,列表,哈希等多种类型

    环境 : CnetOS7   192.168.94.11

    关闭SElinux和防火墙

    安装Redis

    [root@redis01 ~]# yum -y install wget gcc gcc-c++ make tar openssl openssl-devel cmake
    [root@redis01 ~]# wget http://download.redis.io/releases/redis-4.0.1.tar.gz
    [root@redis01 ~]# tar xf redis-4.0.1.tar.gz -C /usr/local/src/
    [root@redis01 ~]# cd /usr/local/src/redis-4.0.1/
    [root@redis01 redis-4.0.1]# make & make test
    [root@redis01 redis-4.0.1]# make PREFIX=/usr/local/redis install
    [root@redis01 redis]# cd /usr/local/redis/
    [root@redis01 redis]# ls
    bin
    [root@redis01 redis]# mkdir /usr/local/redis/conf
    [root@redis01 redis]# cp /usr/local/src/redis-4.0.1/redis.conf /usr/local/redis/conf/
    [root@redis01 redis]# cp /usr/local/src/redis-4.0.1/sentinel.conf /usr/local/redis/conf/
    [root@redis01 redis]# ln -s /usr/local/redis/bin/* /usr/local/bin/
    [root@redis01 redis]# redis-server --version
    Redis server v=4.0.1 sha=00000000:0 malloc=jemalloc-4.0.3 bits=64 build=d789e4152c8567db

    简化redis配置文件,创建redis数据目录

    [root@redis01 redis]# grep -Ev '^#|^$' conf/redis.conf.bak > conf/redis.conf
    [root@redis01 redis]# mkdir /data/redis -p

    修改redis配置文件

    修改以下参数
    [root@redis01 redis]# vim conf/redis.conf
    
    bind 0.0.0.0            #监听地址
    port 6379               #监听端口
    tcp-backlog 1024        #tcp连接数
    daemonize yes           #是否后台启动
    pidfile /data/redis/redis.pid   #pid存放目录
    logfile "/data/redis/redis.log" #日志存放目录
    dir /data/redis/                #工作目录

    redis服务启动和关闭

    启动redis服务
    [root@redis01 redis]# redis-server /usr/local/redis/conf/redis.conf
    [root@redis01 redis]# netstat -antup|grep redis
    tcp        0      0 0.0.0.0:6379            0.0.0.0:*               LISTEN      54109/redis-server
    连接redis服务
    [root@redis01 redis]# redis-cli -h 127.0.0.1
    127.0.0.1:6379> quit
    关闭redis服务
    [root@redis01 redis]# redis-cli -h 127.0.0.1 shutdown
    [root@redis01 redis]# netstat -antup|grep redis

    redis系统参数优化

    启动redis之后产看redis日志
    [root@redis01 redis]# cat /data/redis/redis.log 
    54108:C 08 Oct 15:45:46.095 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
    54108:C 08 Oct 15:45:46.095 # Redis version=4.0.1, bits=64, commit=00000000, modified=0, pid=54108, just started
    54108:C 08 Oct 15:45:46.095 # Configuration loaded
    54109:M 08 Oct 15:45:46.097 * Increased maximum number of open files to 10032 (it was originally set to 1024).  # 系统文件描述符设置为1024,太小,最好设置为10032
                    _._                                                  
               _.-``__ ''-._                                             
          _.-``    `.  `_.  ''-._           Redis 4.0.1 (00000000/0) 64 bit
      .-`` .-```.  ```/    _.,_ ''-._                                   
     (    '      ,       .-`  | `,    )     Running in standalone mode
     |`-._`-...-` __...-.``-._|'` _.-'|     Port: 6379
     |    `-._   `._    /     _.-'    |     PID: 54109
      `-._    `-._  `-./  _.-'    _.-'                                   
     |`-._`-._    `-.__.-'    _.-'_.-'|                                  
     |    `-._`-._        _.-'_.-'    |           http://redis.io        
      `-._    `-._`-.__.-'_.-'    _.-'                                   
     |`-._`-._    `-.__.-'    _.-'_.-'|                                  
     |    `-._`-._        _.-'_.-'    |                                  
      `-._    `-._`-.__.-'_.-'    _.-'                                   
          `-._    `-.__.-'    _.-'                                       
              `-._        _.-'                                           
                  `-.__.-'                                               
    
    54109:M 08 Oct 15:45:46.099 # WARNING: The TCP backlog setting of 1024 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.  
    # TCP的值为128太小了
    54109:M 08 Oct 15:45:46.100 # Server initialized 54109:M 08 Oct 15:45:46.100 # 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. # overcommit_memory=0为不允许超额抢占内存,但是,rdb保存可能会失败。建议将vm.overcommit_memory = 1进行修改

    54109:M 08 Oct 15:45:46.100 # WARNING you have Transparent Huge Pages (THP) support enabled in your kernel. This will create latency and memory usage issues with Redis. To fix this issue run the command 'echo never > /sys/kernel/mm/transparent_hugepage/enabled' as root, and add it to your /etc/rc.local in order to retain the setting after a reboot. Redis must be restarted after THP is disabled. # 你的内核中启用了巨大内存页的支持,这将与redis的延迟内存使用冲突

    54109:M 08 Oct 15:45:46.100 * Ready to accept connections

    下面来逐个调整

    调整系统文件描述符
    [root@redis01 redis]# echo "* - nofile 10240" >> /etc/security/limits.conf 
    [root@redis01 redis]# ulimit -n
    1024
    [root@redis01 redis]# su -l    # 重新登录 , 使配置生效
    上一次登录:一 10月  8 15:15:35 CST 2018从 192.168.94.1pts/1 上
    [root@redis01 ~]# ulimit -n
    10240
    调整TCP连接数
    [root@redis01 ~]# sysctl -a | grep soma
    net.core.somaxconn = 128
    sysctl: reading key "net.ipv6.conf.all.stable_secret"
    sysctl: reading key "net.ipv6.conf.default.stable_secret"
    sysctl: reading key "net.ipv6.conf.ens33.stable_secret"
    sysctl: reading key "net.ipv6.conf.lo.stable_secret"
    [root@redis01 ~]# echo "net.core.somaxconn = 10240" >> /etc/sysctl.conf 
    [root@redis01 ~]# sysctl -p
    net.core.somaxconn = 10240
    调整系统内存分配策略
    [root@redis01 ~]# echo "vm.overcommit_memory = 1" >> /etc/sysctl.conf
    [root@redis01 ~]# sysctl -p
    net.core.somaxconn = 10240
    vm.overcommit_memory = 1
    [root@redis01 ~]# sysctl -a | grep commit
    sysctl: reading key "net.ipv6.conf.all.stable_secret"
    sysctl: reading key "net.ipv6.conf.default.stable_secret"
    sysctl: reading key "net.ipv6.conf.ens33.stable_secret"
    sysctl: reading key "net.ipv6.conf.lo.stable_secret"
    vm.nr_overcommit_hugepages = 0
    vm.overcommit_kbytes = 0
    vm.overcommit_memory = 1    # 修改成功
    vm.overcommit_ratio = 50
    关闭系统内核的巨大内存页支持
    [root@redis01 ~]# echo never > /sys/kernel/mm/transparent_hugepage/enabled
    [root@redis01 ~]# cat /sys/kernel/mm/transparent_hugepage/enabled
    always madvise [never]
    [root@redis01 ~]# echo never > /sys/kernel/mm/transparent_hugepage/defrag 
    [root@redis01 ~]# cat /sys/kernel/mm/transparent_hugepage/defrag
    always madvise [never]
    # 添加到rc.local
    [root@redis01 ~]# echo -e 'echo never > /sys/kernel/mm/transparent_hugepage/enabled
    echo never > /sys/kernel/mm/transparent_hugepage/defrag'>> /etc/rc.local
    [root@redis01 ~]# tail -2 /etc/rc.local
    echo never > /sys/kernel/mm/transparent_hugepage/enabled
    echo never > /sys/kernel/mm/transparent_hugepage/defrag

    重启redis-server

    [root@redis01 ~]# redis-cli -h 127.0.0.1 shutdown    # 关闭redis服务
    [root@redis01 ~]# > /data/redis/redis.log     # 清空日志
    [root@redis01 ~]# redis-server /usr/local/redis/conf/redis.conf  # 启动redis服务
    [root@redis01 ~]# cat /data/redis/redis.log   # 查看日志
    54720:C 08 Oct 16:08:17.474 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
    54720:C 08 Oct 16:08:17.474 # Redis version=4.0.1, bits=64, commit=00000000, modified=0, pid=54720, just started
    54720:C 08 Oct 16:08:17.474 # Configuration loaded
                    _._                                                  
               _.-``__ ''-._                                             
          _.-``    `.  `_.  ''-._           Redis 4.0.1 (00000000/0) 64 bit
      .-`` .-```.  ```/    _.,_ ''-._                                   
     (    '      ,       .-`  | `,    )     Running in standalone mode
     |`-._`-...-` __...-.``-._|'` _.-'|     Port: 6379
     |    `-._   `._    /     _.-'    |     PID: 54721
      `-._    `-._  `-./  _.-'    _.-'                                   
     |`-._`-._    `-.__.-'    _.-'_.-'|                                  
     |    `-._`-._        _.-'_.-'    |           http://redis.io        
      `-._    `-._`-.__.-'_.-'    _.-'                                   
     |`-._`-._    `-.__.-'    _.-'_.-'|                                  
     |    `-._`-._        _.-'_.-'    |                                  
      `-._    `-._`-.__.-'_.-'    _.-'                                   
          `-._    `-.__.-'    _.-'                                       
              `-._        _.-'                                           
                  `-.__.-'                                               
    
    54721:M 08 Oct 16:08:17.478 # Server initialized
    54721:M 08 Oct 16:08:17.479 * DB loaded from disk: 0.000 seconds
    54721:M 08 Oct 16:08:17.479 * Ready to accept connections
  • 相关阅读:
    string类型版本号比较
    地图
    使用libcurl显示下载进度
    欧几里德&扩展以及求解线性方程学习总结--附上poj1061解题报告
    [置顶] 两台一级域名相同二级域名不同的服务器,怎么共享session
    [源码分享] HIVE表数据量统计&邮件
    Domino 迁移到Exchange 服务器 之在Domino Server 创建用户!
    Lotus 迁移到Exchange POC 之 新建2007 服务器!
    uva 10056
    Lotus 迁移到Exchange 2010 POC 之在Exchange 2007安装Transport Suite!
  • 原文地址:https://www.cnblogs.com/bigdevilking/p/9756107.html
Copyright © 2011-2022 走看看