一、Redis简介
- Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。
- redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set –有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。
- Redis Github地址:https://github.com/antirez/redis
- Redis 官网地址:http://redis.io/
- Redis 中文网:http://www.redis.net.cn/
- Redis 中文文档:https://github.com/huangz1990/redis
二、Redis安装
下载,解压缩和编译Redis:
[root@linuxprobe ~]# cd /usr/local/src/
[root@linuxprobe src]# wget http://download.redis.io/releases/redis-3.2.5.tar.gz
[root@linuxprobe src]# tar xzf redis-3.2.5.tar.gz && cd redis-3.2.5
[root@linuxprobe src]# yum -y install tcl #防止编译时报错
[root@linuxprobe redis-3.2.5]# make
现在编译的二进制文件在src目录中可用,运行Redis:
[root@linuxprobe ~]# echo 511 > /proc/sys/net/core/somaxconn
[root@linuxprobe ~]# sysctl -w vm.overcommit_memory=1
vm.overcommit_memory = 1
[root@linuxprobe ~]# echo never > /sys/kernel/mm/transparent_hugepage/enabled
#执行上面命令,解决Redis启动时候的Warning
使用EPEL源安装Redis
[root@vdevops ~]# yum –enablerepo=epel install redis
三、Redis配置
1、设置登录密码验证
**vim redis.conf** #编辑redis.conf
# line 392: authorization password
requirepass password
2、禁用危险命令
# 409行,参考rename-command CONFIG "",添加下面即列:
rename-command CONFIG ""
rename-command keys ""
rename-command flushall ""
rename-command flushdb ""
3、定义redis.conf目录
# 99行,分析问题时,开启redis日志的loglevel
loglevel debug
# 106行,日志路径
logfile /var/log/redis/redis.log
#需要新建目录
mkdir /var/log/redis
# 设置redis日志切割
vim /etc/logrotate.d/redis
/var/log/redis/redis.log {
weekly
rotate 10
copytruncate
delaycompress
compress
notifempty
missingok
}
4、验证配置结果
[root@linuxprobe redis-3.2.5]# ./src/redis-cli
127.0.0.1:6379> info
NOAUTH Authentication required. #没验证密码前,对redis进行操作
127.0.0.1:6379> auth password # 验证密码
OK
127.0.0.1:6379> info stats # 可以正常操作redis
# Stats
total_connections_received:4
...
127.0.0.1:6379> keys *
(error) ERR unknown command 'keys' #禁用keys命令
127.0.0.1:6379> flushall
(error) ERR unknown command 'flushall' #禁用flushall
127.0.0.1:6379> flsuhdb
(error) ERR unknown command 'flsuhdb' #禁用flushdb
总结:安装redis完成之后,强烈建议先配置好redis的相关配置,特别是禁用危险命令操作,因为笔者遇到过redis库被程序定时flushall,导致缓存的数据都没有啦,尴尬的是redis的缓存数据还没有备份。