Linux安装部署Redis(超级详细)

Author: 刘建(Abbott.liu)

Date:

前言

网上搜索了一筐如何在Linux下安装部署Redis的文章,各种文章混搭在一起勉强安装成功了。自己也记录下,方便后续安装时候有个借鉴之处。

  • Redis版本 redis-5.0.7
  • 服务器版本 Linux CentOS 7.6 64位

下载Redis

进入官网找到下载地址https://redis.io/download

右键Download按钮,选择复制链接。

登录服务器,进入ssh root@2.140.189.129文件夹

进入到Xshell控制台(默认当前是root根目录),输入wget将上面复制的下载链接粘贴上,如下命令:

wget http://download.redis.io/releases/redis-5.0.7.tar.gz

解压并安装Redis

解压

下载完成后需要将压缩文件解压,输入以下命令解压到当前目录

tar -zvxf redis-5.0.7.tar.gz

解压后在根目录上输入ls 列出所有目录会发现与下载redis之前多了一个redis-5.0.7.tar.gz文件和 redis-5.0.7的目录。

移动redis目录

一般都会将redis目录放置到 /usr/local/redis目录,所以这里输入下面命令将目前在/root目录下的redis-5.0.7文件夹更改目录,同时更改文件夹名称为redis。

mv ./redis-5.0.7 /usr/local/redis

cd 到/usr/local目录下输入ls命令可以查询到当前目录已经多了一个redis子目录,同时/root目录下已经没有redis-5.0.7文件夹

cd /usr/local

编译

cd /usr/local/redis

输入命令make执行编译命令,接下来控制台会输出各种编译过程中输出的内容。

make

最终运行结果如下:


make test

You need tcl 8.5 or newer in order to run the Redis test

yum install tcl

然后

make test

安装

输入以下命令

make PREFIX=/usr/local/redis install

这里多了一个关键字 PREFIX= 这个关键字的作用是编译的时候用于指定程序存放的路径。比如我们现在就是指定了redis必须存放在/usr/local/redis目录。假设不添加该关键字Linux会将可执行文件存放在/usr/local/bin目录,

库文件会存放在/usr/local/lib目录。配置文件会存放在/usr/local/etc目录。其他的资源文件会存放在usr/local/share目录。这里指定号目录也方便后续的卸载,后续直接rm -rf /usr/local/redis即可删除redis。

执行结果如下图:

启动redis

./bin/redis-server& ./redis.conf

根据上面的操作已经将redis安装完成了。在目录/usr/local/redis 输入下面命令启动redis

# 查询启动进程
ps -aux|grep redis

# 关闭Redis
bin/redis-cli shutdown

Redis设置密码登录之后,想关闭redis服务器,需要

redis-cli -a '密码' shutdown

mkdir -p /usr/local/redis/etc
mv redis.conf etc

chmod 777 bin
chmod 777 etc
sudo chmod 777 ./etc/redis.conf
sudo chmod 777 ./bin/redis-server

cd /usr/local/redis/src
cp mkreleasehdr.sh /usr/local/redis/bin
这两行可以不执行

启动redis

根据上面的操作已经将redis安装完成了。在目录/usr/local/redis 输入下面命令启动redis

./bin/redis-server etc/redis.conf

开启远程访问

找到redis中的redis.conf文件并编辑(在安装路径中找到)

vim ./redis.conf

1、找到bind 127.0.0.1并注释掉

默认127.0.0.1只能本地访问,注释掉即可ip访问

2、修改 protected-mode 属性值为no

注释掉并把保护模式禁用以后可以IP访问

3、修改daemonize属性将no 改为yes

将daemonize设置为yes即启动后台运行

nohup ./bin/redis-server ./etc/redis.conf &
redis-cli -h 2.140.189.129 -p 6379

比较重要的配置项

配置项名称值范围说明
daemonizeyes、noyes表示启用守护进程,默认是no即不以守护进程方式运行。其中Windows系统下不支持启用守护进程方式运行
port 指定 Redis 监听端口,默认端口为 6379
bind 绑定的主机地址,如果需要设置远程访问则直接将这个属性备注下或者改为bind * 即可,这个属性和下面的protected-mode控制了是否可以远程访问。
protected-modeyes 、no保护模式,该模式控制外部网是否可以连接redis服务,默认是yes,所以默认我们外网是无法访问的,如需外网连接rendis服务则需要将此属性改为no。
timeout300当客户端闲置多长时间后关闭连接,如果指定为 0,表示关闭该功能
logleveldebug、verbose、notice、warning日志级别,默认为 notice
databases16设置数据库的数量,默认的数据库是0。整个通过客户端工具可以看得到
rdbcompressionyes、no指定存储至本地数据库时是否压缩数据,默认为 yes,Redis 采用 LZF 压缩,如果为了节省 CPU 时间,可以关闭该选项,但会导致数据库文件变的巨大。
dbfilenamedump.rdb指定本地数据库文件名,默认值为 dump.rdb
dir 指定本地数据库存放目录
requirepass 设置 Redis 连接密码,如果配置了连接密码,客户端在连接 Redis 时需要通过 AUTH <password> 命令提供密码,默认关闭
maxclients0设置同一时间最大客户端连接数,默认无限制,Redis 可以同时打开的客户端连接数为 Redis 进程可以打开的最大文件描述符数,如果设置 maxclients 0,表示不作限制。当客户端连接数到达限制时,Redis 会关闭新的连接并向客户端返回 max number of clients reached 错误信息。
maxmemoryXXX <bytes>指定 Redis 最大内存限制,Redis 在启动时会把数据加载到内存中,达到最大内存后,Redis 会先尝试清除已到期或即将到期的 Key,当此方法处理 后,仍然到达最大内存设置,将无法再进行写入操作,但仍然可以进行读取操作。Redis 新的 vm 机制,会把 Key 存放内存,Value 会存放在 swap 区。配置项值范围列里XXX为数值。

修改初始密码

在配置文件中有个参数requirepass这个就是配置redis访问密码的参数。

比如requirepass abc123

然后重新启动redis

#首先查询到redis的pid后,kill掉,然后重启
[root@iz2zee4qz3fqi9xkyn76j6z ~]# ps -ef|grep redis
root     16568     1  0 6月16 ?       00:06:13 ./bin/redis-server *:6379
root     24169 24153  0 13:35 pts/1    00:00:00 grep --color=auto redis
[root@localhost bin]#  kill -9 16568
[root@localhost bin]# ./redis-server redis.conf 

后台启动成功如下

最后我们使用redis客户端通过密码远程连接:

#远程连接
redis-cli -h 2.140.189.129 -p 6379
redis 127.0.0.1:6379> auth abc123

查看Redis是否正在运行

1、采取查看进程方式

ps -aux|grep redis

2、采取端口监听查看方式

netstat -lanp | grep 6379

结果如下图:


六子
393 声望2 粉丝