redis安装及配置
相信对于很多开发者来说redis并不陌生,它的高性能经常被大家用做缓存,当然它还可以用作计数器(ip防爬),队列(celery),位操作及分布式锁做排行榜等等功能。在这里就简单记录一下centos6下redis的安装及一些参数说明配置
一.redis安装
redis官网下载地址http://download.redis.io/releases/,根据你自己的需要下载对应的版本即可
1.安装
wget http://download.redis.io/releases/redis-5.0.6.tar.gz
tar xzf redis-5.0.6.tar.gz
cd redis-5.0.6
make
make install
2.配置文件修改(可远程连接使用)
修改配置文件redis.conf, vi redis.conf
把下面配置按需修改
bind 127.0.0.1 # 修改为你需要绑定的服务器ip,(也可以直接注释掉,允许所有)
protected-mode no # 修改保护模式
daemonize yes # 用守护进程方式启动(保证redis持续运行)
3.启动/关闭redis
src/redis-server redis.conf # 启动redis
src/redis-cli shutdown # 关闭redis
4.设置开机自启
wdcp添加redis开机自启
cd utils/
./install_server.sh
chmod 755 /etc/init.d/redis_6379
chkconfig --add redis_6379
chkconfig --level 345 redis_6379 on
vi /etc/rc.local # 进入rc.local文件中(并加入下面这段配置)
/opt/soft/redis-5.0.6/src/redis-server /opt/soft/redis-5.0.6/redis.conf
5.redis成功检测
# 查看redis进程是否正在运行
ps -ef | grep redis
# 检测6379端口是否在监听
netstat -lntp | grep 6379
# 检测连接是否正常
find ./ -name redis-cli # 查看redis-cli路径
./src/redis-cli # 启动redis-cli
set name "gmx" # 设置key
get name # 取值
exit # 退出
6.redis密码修改及安全防范
(1)密码修改
密码修改呢也有两种方式,不过我一般是采用不需要重启配置的方式。
不需要重启redis:进入redis-cli里面---->输入config set requirepass yourpwd--->验证密码,输入auth yourpwd
linux文件搜索命令是按Esc / ,然后输入关键字(requirepass );按回车(按 字母 n 搜索 下一个);
需要重启redis:进入redis.conf文件--->把配置文件里面的# requirepass foobared修改为requirepass yourpwd--->重启redis,service redis restart
(2)安全防护
1.禁止root用户启动redis,为 redis 服务创建单独的用户和home目录,使用普通用户启动(业务程序永久别用root用户运行)
2.限制redis文件目录访问权限,设置redis的主目录权限为700;如果redis配置文件独立于redis主目录,权限修改为600(redis密码明文存储在配置文件中)
chmod 700 /var/lib/redis # redis目录
chmod 600 /home/redis-5.0.6/redis.conf # redis配置文件
3.设置复杂的连接密码(redis因查询效率高,auth这种命令每秒能处理10w次以上,简单的redis的密码极容易为攻击者暴破)
4.尽量内网访问,也可把默认的6379端口改为其他等等
二.redis配置参数介绍
简单介绍一下常用配置:
# vi redis.conf
daemonize yes # 是否以后台进程运行(启动守护进程)
port 6379 # 监听的端口
bind 127.0.0.1 # 绑定地址,如外网需要连接,设置0.0.0.0(也可直接注释)
timeout 300 # 连接超时时间,单位秒
loglevel notice # 日志级别(debug :适用于开发和测试;verbose :更详细信息;notice :适用于生产环境;warning :只记录警告或错误信息
logfile /var/log/redis/redis-server.log # 日志文件位置
databases 4 # 设置数据库数量(可用于多个系统)
############### 快照方式 ###############
save 900 1 #在900s(15m)之后,至少有1个key发生变化,则快照
save 300 10 #在300s(5m)之后,至少有10个key发生变化,则快照
save 60 10000 #在60s(1m)之后,至少有1000个key发生变化,则快照
rdbcompression yes #dump时是否压缩数据
dir /var/lib/redis #数据库(dump.rdb)文件存放目录
############### 安全 ###############
requirepass foobared # 配置redis连接认证密码
############### 限制 ###############
maxclients 256 # 设置最大连接数,0为不限制
maxmemory <bytes> # 内存清理策略,如果达到此值,将采用maxmemory-policy里面配置的方案
maxmemory-policy volatile-lru # 如果达到maxmemory值,采用此策略
'''noeviction :不过期,写操作返回报错;
volatile-ttl :删除即将过期的key;
allkeys-random :随机删除一个key;
volatile-random :随机删除即将过期的key;
allkeys-lru :删除不经常使用的key;
volatile-lru :默认策略,只对设置过期时间的key进行LRU算法删除)'''
maxmemory-samples 5 #默认随机选择5个key,从中淘汰最不经常用的
redis详细配置可参考https://www.jb51.net/article/135837.htm#comments
redis的过期机制跟内存淘汰策略讲解可参考https://mp.weixin.qq.com/s/GYTyrp5vTVibVYI-3NHrNA