zoukankan      html  css  js  c++  java
  • redis

    redis

      源码安装redis

        *下载官网:http://download.redis.io/releases/[版本自取,演示为4.0.14] 

        *进入安装目录:cd /usr/local/src

        *下载源码:wget http://download.redis.io/releases/redis-4.0.14.tar.gz

        *解压源码包:tar xf redis-4.0.14.tar.gz

        *进入目录:cd redis-4.0.14/

        *安装redis,并指定安装目录:make PREFIX=/apps/redis  install

        *查看安装:ll /apps/redis/bin[redis-benchmark压缩工具,检测redis性能][redis-sentinel:哨兵,软连接到服务端]

          [redis-server:启动redis服务端][redis-cli:启动客户端][redis-check-aof/rdb:检查快照和aof日志文件,检查以及修复]

            

        *创建配置文件,日志以及数据等目录:mkdir /apps/redis/{etc,logs,data,run}    

        *查看redis目录:ll [redis.conf:redis的主配置文件]

        

        *拷贝配置文件至/apps/redis/etc:cp redis.conf  /apps/redis/etc/

        *修改监听端口:vim /apps/redis/etc/redis.conf[原端口127.0.0.1只允许本机]

        

        *查看如何启动redis服务:/apps/redis/bin/redis-server[redis-server 后面添加启动文件,以及可选项]

        

        *启动redis服务:/apps/redis/bin/redis-server  /apps/redis/etc/redis.conf[但这样会占用一个端口,在前台运行]

        

        *启动时会有几个警告

        

        *经过tcp队列值不符合,系统默认值128,要大于511才符合[backlog 参数控制的是三次握手的时候 server 端收到 client ack 确认号之后的队列值]

        

        *打开新终端查看队列值:cat /proc/sys/net/core/somaxconn

        

        *解决tcp警告,vim /etc/sysctl.conf[添加:net.core.somaxconn = 512]

        *使其生效:sysctl -p

        *关闭redis服务,在次启动[发现改警告已消失]

         

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

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

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

        

        *解决内核警告,vim /etc/sysctl.conf[添加:vm.overcommit_memory = 1]     

        *使其生效:sysctl -p

        *关闭redis服务,在次启动[发现改警告已消失]

        

        *transparent hugepage:开启大页内存动态分配,需要关闭让 redis 负责内存管理。

        

        *在终端:echo never > /sys/kernel/mm/transparent_hugepage/enabled

        *开机启动:vim /etc/rc.d/rc.local[添加:echo never > /sys/kernel/mm/transparent_hugepage/enabled]

        *赋予执行权限:chmod a+x /etc/rc.d/rc.local

        *关闭redis服务,在次启动[发现改警告已消失]

        

        *创建redis组和用户:groupadd  -g 2019 redis && useradd   -u 2019 -g 2019 redis -s /sbin/nologin

        *编写启动脚本,vim /usr/lib/systemd/system/redis.service 

    [Unit] 
    Description=Redis persistent key-value database
    After=network.target
    After=network-online.target
    Wants=network-online.target
     
    [Service]
    ExecStart=/apps/redis/bin/redis-server /apps/redis/etc/redis.conf  --supervised systemd
    ExecReload=/bin/kill -s HUP $MAINPID 
    ExecStop=/bin/kill -s QUIT $MAINPID
    Type=notify
    User=redis
    Group=redis
    RuntimeDirectory=redis
    RuntimeDirectoryMode=0755
     
    [Install]
    WantedBy=multi-user.target

        *测试启动:systemctl start redis

        

        *设置开机启动:systemctl enable redis

        *创建命令软连接:ln -s /apps/redis/bin/redis-*  /usr/bin/[就可以执行redis所有命令]

        *修改管理:chown redis.redis /apps/redis/ -R  

        *修改配置文件参数,vim /apps/redis/etc/redis.conf

    tcp-keepalive 600
    daemonize yes
    注释supervised no
    logfile "/apps/redis/logs/redis_6379.log"
    alway-show-logo no
    dir /apps/redi/data/
    pidfile /apps/redis/run/redis_6379.pid
    repl-diskless-sync-delay 30
    requirepass  123456
    maxmemory 8G
    appendonly yes

      yum安装redis

        *安装epel源:yum install eple-release -y

        *安装redis:yum install redis -y

        

        

        

     

      

  • 相关阅读:
    gc buffer busy/gcs log flush sync与log file sync
    给Oracle年轻的初学者的几点建议
    Android 编程下帧动画在 Activity 启动时自动运行的几种方式
    Android 编程下 Touch 事件的分发和消费机制
    Java 编程下 static 关键字
    Java 编程下 final 关键字
    Android 编程下模拟 HOME 键效果
    Why Are Thread.stop, Thread.suspend, Thread.resume and Runtime.runFinalizersOnExit Deprecated ?
    Extjs4 大型项目目录结构重构
    [转]SQLServer 2008 允许远程连接的配置方法
  • 原文地址:https://www.cnblogs.com/dengkui/p/11496506.html
Copyright © 2011-2022 走看看