代码改变世界

redis

2019-09-10 15:07  我男友好用么  阅读(208)  评论(0编辑  收藏  举报

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