Redis源码安装
包括Redhat、Centos、Ubuntu、Debian等,在安装的过程中,不同的系统也可能会有不同的安装方式,比如Redhat和Centos支持yum安装,但是由于yum源可能更新的比较慢(主要是没有官方YUM包,不像Mysql。其他平台YUM源Redis版本低),所以我们一般的时候还是建议大家使用源码安装,版本可选,配置也更灵活。
环境准备
生产环境最好创建个Redis专用用户,所有的程序运行使用该用户,避免使用root用户所带来的安全隐患。这里由于是讲解,就不创建了
[root@Redis ~]# systemctl stop firewalld
[root@Redis ~]# systemctl disable firewalld
[root@Redis ~]# setenforce 0
## 建立相应目录
[root@Redis ~]# mkdir /soft/redis -p
## YUM安装GCC
[root@Redis ~]# yum install gcc -y
安装Redis
Redis所有版本
我们这里选的版本是3.0.6
## 下载Redis-3.0.6源码包
[root@Redis ~]# wget http://download.redis.io/releases/redis-3.0.6.tar.gz
## 解压并指定解压目录
[root@Redis ~]# tar zxf redis-3.0.6.tar.gz -C /soft/
## 安装Redis
[root@Redis ~]# cd /soft/redis-3.0.6
[root@Redis redis-3.0.6]# make
[root@Redis redis-3.0.6]# make install PREFIX=/soft/redis/
规划Redis常用目录
## 创建目录
[root@Redis ~]# mkdir /soft/redis/{conf,var,log,data}
[root@Redis ~]# ls /soft/redis/
bin conf data log var
## 复制模板配置文件到 conf 目录
[root@Redis ~]# cp /soft/redis-3.0.6/redis.conf /soft/redis/conf/
简单修改配置文件 /soft/redis/conf/redis.conf
,修改内容如下:
daemonize yes #这里调整为yes后台启动
pidfile /soft/redis/var/redis.pid #这里调整为我们指定的目录
port 6379 #端口使用默认
logfile "/soft/redis/log/redis.log" #指定到我们的log目录下
dbfilename dump.rdb #数据文件名
dir /soft/redis/data/ #数据文件存放目录
启动Redis与连接
## 不用配置文件直接前台启动Redis(会话结束,Redis服务也会结束)
[root@Redis ~]# /soft/redis/bin/redis-server --port 6379
## 通过指定配置文件启动Redis
[root@Redis ~]# /soft/redis/bin/redis-server /soft/redis/conf/redis.conf
## 查看端口Redis是否启动
[root@Redis ~]# lsof -i :6379
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
redis-ser 1308 root 4u IPv6 39194 0t0 TCP *:6379 (LISTEN)
redis-ser 1308 root 5u IPv4 39195 0t0 TCP *:6379 (LISTEN)
## 使用Redis自带的客户端连接
[root@Redis ~]# /soft/redis/bin/redis-cli -h 127.0.0.1 -p 6379
127.0.0.1:6379>
这里可以用 shell 写个启动脚本
[root@Redis ~]# vim /etc/init.d/redis
#!/bin/bash
# chkconfig: 12345 80 90
source /etc/init.d/functions
ret(){
if [ $? -eq 0 ];then
action "Redis Is $1" /bin/true
else
action "Redis Is $1" /bin/false
fi
}
case $1 in
start)
/soft/redis/bin/redis-server /soft/redis/conf/redis.conf
ret $1
;;
stop)
kill -9 $(ps aux|grep redis-server|grep -v grep|awk '{print $2}')
ret $1
;;
restart)
kill -9 $(ps aux|grep redis-server|grep -v grep|awk '{print $2}')
ret $1
sleep 1
/soft/redis/bin/redis-server /soft/redis/conf/redis.conf
ret $1
;;
esac
[root@Redis ~]# chmod +x /etc/init.d/redis
[root@Redis ~]# chkconfig --add /etc/init.d/redis
[root@Redis ~]# systemctl start redis
Redis.conf 配置项
## Redis默认不是以守护进程的方式运行,可以通过该配置项修改,使用yes启动守护进程,避免前台对出。
daemonize no
## 当Redis以守护进程方式运行时,redis会生成redis.pid文件,可以通过pidfile指定
pidfile /soft/redis/var/redis.pid
## 指定Redis监听端口,默认端口为6379
port 6379
## 绑定的主机地址,可以是本机IP也可以127.0.0.1
bind 127.0.0.1
## 当客户端闲置超时时间默认单位为妙,如果指定为0,表示关闭该功能。
timeout 300
## Redis总共支持四个级别:debug、verbose、notice、warning,新手学习建议修改为debug模式,可以更好的观察redis使用时log的记录变化。
loglevel verbose
## 日志记录方式,默认为标准输出。
logfile stdout
## 设置数据库的数量,默认数据库为0,可以使用SELECT <dbid>命令在连接上指定数据库id
databases 16
## 持久化同步到数据文件的配置,可以配合多个策略使用。
save <seconds> <changes>
## Redis默认配置文件中提供了三个条件:
save 900 1
save 300 10
save 60 10000
## 分别表示900秒(15分钟)内有1个更改,300秒(5分钟)内有10个更改以及60秒内有10000个更改。
## 存储到本地时数据文件是否压缩,默认为yes,Redis采用LZF压缩,当数据量较小,为节省CPU可以考虑关闭。数据较大时,考虑磁盘空间以及I/O性能进行选择。
rdbcompression yes
## 指定本地数据库文件名,默认值为dump.rdb,数据文件名字,符合公司或者一般命名规则,不过理论上来讲,是可以随便起的,哈哈。
dbfilename dump.rdb
## 指定本地数据库存放目录,这个路径是相对路径也可以写绝对路径
dir /soft/redis/data/
## 主从配置时的选项,设置当本机为slave服务时,通过配置好的master地址以及端口,在slave启动时,他会自动从master进行数据同步。
slaveof <masterip> <masterport>
## 当master服务设置了密码保护时,slave服务连接master的密码,一般很少设置密码,特殊情况下才使用。
masterauth <master-password>
## 设置Redis连接密码,如果配置了连接密码,客户端在连接Redis时需要通过AUTH <password>命令提供密码,默认关闭
requirepass foobared
## 设置同一时间最大客户端连接数,当前默认查询为10000。当客户端连接数到达限制时,Redis会关闭新的连接并向客户端返回max number of clients recached错误信息
maxclients 10000
## 指定Redis最大内存限制,redis启动之后会把数据加载到内存,如果达到最大值,但未加载完成会清理过期的key。默认0位不限制。
maxmemory <bytes>
## 指定是否在每次更新操作后进行日志记录,看数据的重要性,如果一条记录都不允许丢失的话,建议开启。
appendonly no
## 指定更新日志文件名,默认为appendonly.aof
appendfilename appendonly.aof
## 指定更新日志条件,共有3个可选值:
## no:表示等操作系统进行数据缓存同步到磁盘(快)
## always:表示每次更新操作后手动调用fsync()将数据写到磁盘(慢,安全)
## exerysec:表示每秒同步一次(折中,默认值)
appenddfsync ecerysec
## 指定是否启用虚拟内存机制,默认值为no。
vm-enabled no
## 虚拟内存文件路径
vm-swap-file /tmp/redis.swap
## 设置开启虚拟内存后,redis将使用的最大物理内存的大小,默认为0
vm-max-memory 0
## 指定包含其它的配置文件
include /path/to/local.conf