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