目录
一、安装环境
1、环境
操作系统:Centos 7
redis: 6.0.14
二、Linux平台下 Redis单机环境配置(第一种方式——手动创建目录)
1、下载软件
--官网所有版本:
http://redis.io/download
https://download.redis.io/releases/
--私网下载
mkdir -p /soft cd /soft wget https://download.topunix.com/1-Universal/redis-6.0.14.tar.gz
2、安装前准备
(1)组用户创建
groupadd -g 601 redis useradd -u 6001 -g 601 redis id redis passwd redis
(2)调整redis用户的unlmit
echo "redis hard nofile 10240" >> /etc/security/limits.conf echo "redis soft nofile 10240" >> /etc/security/limits.conf echo "redis hard nproc 8192" >> /etc/security/limits.conf echo "redis soft nproc 8192" >> /etc/security/limits.conf
(3)root创建redis安装路径
mkdir -p /mysql/data/redis chown -R redis:redis /mysql/data/redis mkdir -p /mysql/data/redis/log mkdir -p /mysql/data/redis/conf mkdir -p /mysql/data/redis/data chown -R redis:redis /mysql/data/redis chmod 777 -R /soft
3、编译安装
(1)解压
su - redis cd /soft tar zxvf redis-6.0.14.tar.gz
(2)编译
cd redis-6.0.14 make
(2)安装到指定位置
如果直接使用make install,则默认装到/usr/local/bin中。下面我们指定安装位置
make PREFIX=/mysql/data/redis install cp redis.conf /mysql/data/redis/conf
4、配置环境变量
vi ~/.bash_profile PATH=$PATH:$HOME/.local/bin:/mysql/data/redis/bin:$HOME/bin
source ~/.bash_profile
5、调整系统参数(root用户)
(1)调整 vm.overcommit_memory
echo "vm.overcommit_memory = 1" >> /etc/sysctl.conf
内核参数 overcommit_memory:vm.overcommit_memory其关注的是内存分配策略可选值: 0、1、2。
0, 表示内核将检查是否有足够的可用内存供应用进程使用;如果有足够的可用内存,内存申请允许;否则,内存申请失败,并把错误返回给应用进程。
1,表示内核允许分配所有的物理内存,而不管当前的内存状态如何。
2,表示内核允许分配超过所有物理内存和交换空间总和的内存
(2)调整 Transparent Huge Pages (THP)
解决:redis做 rdb时会有部分请求超时的 case
echo never > /sys/kernel/mm/transparent_hugepage/enabled 并在/etc/rc.local追加 echo "never > /sys/kernel/mm/transparent_hugepage/enabled" >> /etc/rc.local
(3)TCP backlog设置
echo 2048 > /proc/sys/net/core/somaxconn 在/etc/sysctl.conf添加 net.core.somaxconn = 2048 echo "net.core.somaxconn = 2048" >> /etc/sysctl.conf
sysctl -p
此参数确定了TCP连接中已完成队列(完成三次握手之后)的长度,当然此值必须不大于Linux系统定义的/proc/sys/net/ core/ somaxconn值, 默认是511,而Linux的默认参数值是128。
当系统并发量大并且客户端速度缓慢的时候,可以将这二个参数一 起参考设定。
6、调整 redis.conf
su - redis vi /mysql/data/redis/conf/redis.conf
编辑如下参数
daemonize yes
logfile "/mysql/data/redis/log/redis.log"
requirepass test --redis密码设置为test
#bind 127.0.0.1
bind 192.168.1.51
7、启动 Redis服务
su - redis redis-server /mysql/data/redis/conf/redis.conf
8、状态检查
(1)查看端口
Redis服务端的默认连接端口是 6379 netstat -an |grep 6379 tcp 0 0 127.0.0.1:6379 0.0.0.0:* LISTEN
(2)客户端连接
[redis@redis51 ~]$ redis-cli -h 192.168.1.51 -a test
(3)连接测试
redis-cli -r 3 -h 192.168.1.51 -a test ping //返回 pong表示 127.0.0.1:6379能通,r代表次数
(4)停止 Redis实例
我们可以使用 /mysql/data/redis/bin/redis-cli -a test shutdown 也可以使用 pkill redis-server
9、Redis设置开机自启动
(1)设置自动开启
su - root vi /etc/rc.local su - redis -c "/mysql/data/redis/bin/redis-server /mysql/data/redis/conf/redis.conf"
(2)将rc.local设置为可执行,否则系统启动后无法执行此脚本
其中 ll /etc/rc.local是软连接:lrwxrwxrwx 1 root root 13 Apr 3 13:34 /etc/rc.local -> rc.d/rc.local;需要对源文件进行指定授权即可。
chmod +x /etc/rc.d/rc.local
四、关于Redis密码的管理
1、如何初始化 redis的密码?
vi /mysql/data/redis/conf/redis.conf requirepass test123
重启 redis
2、不重启 redis如何配置密码?
(1)在配置文件中配置 requirepass的密码。
vi /mysql/data/redis/conf/redis.conf # requirepass test 如 修改成 : requirepass test123
(2) 进入 redis重定义参数
--查看当前的密码:
redis-cli -p 6379 redis 127.0.0.1:6379> config get requirepass 1) "requirepass" 2) (nil)
--然后设置密码:
redis 127.0.0.1:6379> config set requirepass LLL0123
--再次查询密码:
redis 127.0.0.1:6379> config get requirepass
--如果报错,只需要密码认证就可以了。
redis 127.0.0.1:6379> auth LLL0123
--再次查询密码:
redis 127.0.0.1:6379> config get requirepass 1) "requirepass" 2) "LLL0123"
密码已经得到修改。
3、如何登录有密码的 redis?
(1)方法1:在登录的时候 密码就输入
redis-cli -p 6379 -a LLL0123 redis 127.0.0.1:6379> config get requirepass 1) "requirepass" 2) "LLL0123"
(2)方法2:先登录再验证:
redis-cli -p 6379 redis 127.0.0.1:6379> redis 127.0.0.1:6379> auth LLL0123 redis 127.0.0.1:6379> config get requirepass 1) "requirepass" 2) "LLL0123"
4、master 有密码slave 如何配置?
vi /mysql/data/redis/conf/redis.conf masterauth LLL0123