CentOS7下安装Redis
1.安装redis
第一步:下载redis安装包
在Linux终端输入命令wget下载指定链接,如果weget命令报错,说明没有wget插件,可以选择远程发送redis安装包
wget http://download.redis.io/releases/redis-3.2.8.tar.gz
第二步:解压压缩包
找到压缩包位置,进入压缩包所在目录
解压命令:
tar -zvxf redis-3.2.8.tar.gz
解压后输入ls列出所有目录可以看到一个已解压的文件夹
- 补充:移动redis目录,一般都会将redis目录放置到 /usr/local/redis目录,所以这里输入下面命令将目前在/root目录下的redis-3.2.8文件夹更改目录,同时更改文件夹名称为redis
mv /root/redis-3.2.8 /usr/local/redis
第三步:yum安装gcc依赖
查看是否有gcc依赖:如果已经有了gcc就直接跳到第四步
gcc -v
没有则使用以下命令安装c++编译环境依赖
yum install gcc
遇到选择,输入y即可
第四步:编译安装
进入解压目录
cd redis-3.2.8
编译
make
安装
输入以下命令
make PREFIX=/usr/local/redis install
这里多了一个关键字
PREFIX:这个关键字的作用是编译的时候用于指定程序存放的路径。比如我们现在就是指定了redis必须存放在/usr/local/redis目录。假设不添加该关键字Linux会将可执行文件存放在/usr/local/bin目录,库文件会存放在/usr/local/lib目录,配置文件会存放在/usr/local/etc目录。
其他的资源文件会存放在usr/local/share目录。这里指定好目录也方便后续的卸载,后续删除redis可以直接使用rm -rf /usr/local/redis
。
2. 启动redis的两种方式
先切换到redis的src目录下 (来到 /usr/local/redis/src )
以下两个启动命令都是在此目录下执行
cd src
方法一:前台启动redis
通过下面的命令,无配置文件在前台启动
./redis-server
redis启动成功,但是这种启动方式需要一直打开窗口,不能进行其他操作,不太方便。
按 ctrl + c可以关闭窗口
。
方法二:后台启动redis
执行以下命令,后台启动redis,并根据redis.conf的配置方式启动
./bin/redis-server & ./redis.conf
两种方式区别是有无带&符号和是否使用配置文件的配置方式启动的区别。
redis-server 后面是配置文件,目的是根据该配置文件的配置启动redis服务。
redis.conf配置文件允许自定义多个配置文件,通过启动时指定读取哪个即可。
可以通过redis-cli命令进入redis控制台后通过CONFIG GET *
的方式读取所有配置项。 如下:
CONFIG GET *
3. 查看Redis是否正在运行
方法一: 采取查看进程方式
ps -aux | grep redis
或
ps -ef| grep redis
方法二:采取端口监听查看方式
netstat -lanp | grep 6379
4. 关闭redis服务进程
方法一:使用kill命令
首先使用ps -aux | grep redis查看redis进程,可以看到例子中的redis的pid为59378
ps -aux | grep redis
结果如下图
由于grep查询本身也会创建一个包含“redis”字符的进程,如上图中的第二条,这个不是真正的redis进程,真正的进程是图中的第一条
使用kill
命令根据id杀死进程
kill 59378
方法二:使用redis-cli
redis-cli是连接本地redis服务的一个命令,通过该命令后可以进入redis的脚本控制台
启动位置和服务位置一个相同
./redis-cli -a 123456
使用-a命令可以在进入控制台的时候加上密码,这样在进入控制台后就不用使用auth命令输入密码了
输入exit可以退出redis脚本控制台
5. redis.conf配置文件
5.1. 配置文件常用的配置项
配置项名称 | 配置项值范围 | 配置项说明 |
---|---|---|
daemonize | yes,no | yes表示启用守护进程,默认是no即不以守护进程方式运行。其中Windows系统下不支持启用守护进程方式运行 |
port | 指定 Redis 监听端口,默认端口为 6379 | |
bind | 绑定的主机地址,如果需要设置远程访问,则直接将这个属性备注下或者改为bind * 即可,这个属性和下面的protected-mode控制了是否可以远程访问 | |
protected-mode | yes,no | 保护模式,该模式控制外部网是否可以连接redis服务,默认是yes,所以默认我们外网是无法访问的,如需外网连接rendis服务则需要将此属性改为no |
timeout | 300 | 当客户端闲置多长时间后关闭连接,如果指定为 0,表示关闭该功能 |
loglevel | debug,verbose,notice,warning | 日志级别,默认为 notice |
databases | 16 | 设置数据库的数量,默认的数据库是0。整个通过客户端工具可以看得到 |
rdbcompression | yes,no | 指定存储至本地数据库时是否压缩数据,默认为 yes,Redis 采用 LZF 压缩,如果为了节省 CPU 时间,可以关闭该选项,但会导致数据库文件变的巨大 |
dbfilename | 指定本地数据库文件名,默认值为 dump.rdb | |
dir | 指定本地数据库存放目录 | |
requirepass | 设置 Redis 连接密码,如果配置了连接密码,客户端在连接 Redis 时需要通过 AUTH <password> 命令提供密码,默认关闭 |
|
maxclients | 设置同一时间最大客户端连接数,默认无限制,Redis 可以同时打开的客户端连接数为 Redis 进程可以打开的最大文件描述符数,如果设置 maxclients 0,表示不作限制。当客户端连接数到达限制时,Redis 会关闭新的连接并向客户端返回 max number of clients reached 错误信息。 | |
maxmemory | 指定 Redis 最大内存限制,Redis 在启动时会把数据加载到内存中,达到最大内存后,Redis 会先尝试清除已到期或即将到期的 Key,当此方法处理 后,仍然到达最大内存设置,将无法再进行写入操作,但仍然可以进行读取操作。Redis 新的 vm 机制,会把 Key 存放内存,Value 会存放在 swap 区。配置项值范围列里XXX为数值。 |
5.2. 修改redis.conf配置文件
找到redis.conf文件,一般在redis服务启动目录的上一级目录中
打开这个文件并修改:
vim redis.conf的路径
这里贴出关键修改代码:
# 注释掉它,以便让外网访问
# bind 127.0.0.1
# 关闭保护模式,该模式控制外部网是否可以连接redis服务,默认是yes,所以默认我们外网是无法访问的,如需外网连接rendis服务则需要将此属性改为no。
protected-mode no
# Redis默认不是以守护进程的方式运行,yes表示启用守护进程,默认是no即不以守护进程方式运行。其中Windows系统下不支持启用守护进程方式运行
# 启用守护进程后,Redis会把pid写到一个pidfile中,在/var/run/redis.pid
daemonize yes
# 当Redis以守护进程方式运行时,Redis默认会把pid写入/var/run/redis.pid文件,可以通过pidfile指定
pidfile /var/run/redis_6379.pid
# 指定Redis监听端口,默认端口为6379
# 如果指定0端口,表示Redis不监听TCP连接
port 6379
# 工作目录.
# 指定本地数据库存放目录,文件名由上一个dbfilename配置项指定,这里可以不修改
# 则存放目录默认为redis安装目录
# 注意,这里只能指定一个目录,不能指定文件名
dir /var/redis/6379
通过 /daemonize 查找到属性,默认是no,更改为yes即可。 (通过/关键字查找出现多个结果,在查找时使用n字符切换到下一个即可。
查找到属性后按i变更成输入模式,此时可以修改文件内容,修改完后按ESC键可以退回到正常模式,也可以按CTRL+C组合键退回到正常模式
回到正常模式后保存文件并退出查看文件模式命令:wq,这里:也是要输入。
6. 外部网络访问redis配置
6.1. 修改配置文件
注释掉它,以便让外网访问
bind 127.0.0.1
1
关闭保护模式,该模式控制外部网是否可以连接redis服务,默认是yes,所以默认我们外网是无法访问的,如需外网连接rendis服务则需要将此属性改为no。
protected-mode no
1
如果在第三节根据配置修改过就不用修改了。可以跳过此步。
6.2. 配置防火墙
Redis的默认端口号6379此时是没有开放的,所有外部网络无法通过此端口访问redis
配置防火墙如下:
查看开放的端口
firewall-cmd --list-ports
2 . 开启指定端口
firewall-cmd --zone=public --add-port=6379/tcp --permanent
3. 重启防火墙
- 方式一:
firewall-cmd –reload
- 方式二:
systemctl reload firewalld.service
4. 查看是否开放成功
firewall-cmd --list-ports
开放成功即可通过远程连接redis数据库
7 设置redis开机自启动
7.1. 修改配置文件
把daemonize
配置为yes
daemonize的默认配置是no,daemonize表示redis的运行方式是否为守护进程的方式,yes为是,no为否,也就是是否后台运行。
如果在上面的步骤5.2
中根据配置修改过就不用修改了。可以跳过此步。
7.2. 拷贝配置文件
在etc目录下新建redis文件夹,把redis源码文件中redis.conf配置文件复制到/etc/redis/目录下,我的配置文件的放在cd /usr/local/redis/这个路径下
新建一个redis文件夹
mkdir /etc/redis
进入redis.conf存放目录,执行命令
cp redis.conf /etc/redis/6379.conf
7.3. 拷贝初始化文件
拷贝 redis/utils 中初始化文件 redis_init_script 到 /etc/init.d/redis,
进入utils目录,执行命令
cp redis_init_script /etc/init.d/redis
7.4. 修改/etc/init.d/redis文件内容
提示:修改方式见文章前面修改redis.conf配置文件处
在第一行位置添加以下代码,这样才能自启动服务
#chkconfig: 2345 80 90
注释的意思是,redis服务必须在运行级2,3,4,5下被启动或关闭,启动的优先级是90,关闭的优先级是80。
EXEC修改为redis的启动服务路径
CLIEXEC修改为redis-cli的启动路径
如下:
EXEC=/usr/local/redis/src/redis-server
CLIEXEC=/usr/local/redis/src/redis-cli
查看自启动服务
chkconfig --list
注册服务
chkconfig --add redis
开启自启动服务
chkconfig on
通过上面的操作后,我们就可以通过如下命令启动,启动或停止redis了
开启服务
service redis start
停止服务
service redis stop
Comments NOTHING