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

Posted 枫树湾河桥

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux安装部署Redis(超级详细)相关的知识,希望对你有一定的参考价值。

原文链接:https://www.cnblogs.com/AllWjw/p/15771097.html

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

  • Redis版本 5.0.4
  • 服务器版本 Linux CentOS 7.6 64位

下载Redis

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

 

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

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

敲入回车键执行后如下图:

等待下载完成。

解压并安装Redis

 解压

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

1
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。

1
mv /root/redis-5.0.7 /usr/local/redis

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

 

 

编译

cd到/usr/local/redis目录,输入命令make执行编译命令,接下来控制台会输出各种编译过程中输出的内容。

1
make

最终运行结果如下:

 

 

 

 安装

输入以下命令

1
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

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

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

 

 

 上面的启动方式是采取后台进程方式,下面是采取显示启动方式(如在配置文件设置了daemonize属性为yes则跟后台进程方式启动其实一样)。

1
./bin/redis-server ./redis.conf

两种方式区别无非是有无带符号&的区别。 redis-server 后面是配置文件,目的是根据该配置文件的配置启动redis服务。redis.conf配置文件允许自定义多个配置文件,通过启动时指定读取哪个即可。

redis.conf配置文件

在目录/usr/local/redis下有一个redis.conf的配置文件。我们上面启动方式就是执行了该配置文件的配置运行的。我么可以通过cat、vim、less等Linux内置的读取命令读取该文件。

也可以通过redis-cli命令进入redis控制台后通过CONFIG GET * 的方式读取所有配置项。 如下:

1
2
redis-cli
CONFIG GET *

回车确认后会将所有配置项读取出来,如下图

这里列举下比较重要的配置项

配置项名称 配置项值范围 说明
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 指定本地数据库文件名,默认值为 dump.rdb
dir   指定本地数据库存放目录
requirepass   设置 Redis 连接密码,如果配置了连接密码,客户端在连接 Redis 时需要通过 AUTH <password> 命令提供密码,默认关闭
maxclients 0 设置同一时间最大客户端连接数,默认无限制,Redis 可以同时打开的客户端连接数为 Redis 进程可以打开的最大文件描述符数,如果设置 maxclients 0,表示不作限制。当客户端连接数到达限制时,Redis 会关闭新的连接并向客户端返回 max number of clients reached 错误信息。
maxmemory XXX <bytes> 指定 Redis 最大内存限制,Redis 在启动时会把数据加载到内存中,达到最大内存后,Redis 会先尝试清除已到期或即将到期的 Key,当此方法处理 后,仍然到达最大内存设置,将无法再进行写入操作,但仍然可以进行读取操作。Redis 新的 vm 机制,会把 Key 存放内存,Value 会存放在 swap 区。配置项值范围列里XXX为数值。

这里我要将daemonize改为yes,不然我每次启动都得在redis-server命令后面加符号&,不这样操作则只要回到Linux控制台则redis服务会自动关闭,同时也将bind注释,将protected-mode设置为no。
这样启动后我就可以在外网访问了。

更改方式: 

1
vim /usr/local/redis/redis.conf

通过 /daemonize  查找到属性,默认是no,更改为yes即可。 (通过/关键字查找出现多个结果则使用 n字符切换到下一个即可,查找到结果后输入:noh退回到正常模式)

如下图:

 

 

 其他两个属性也是同样方式查找和编辑即可。

 查看Redis是否正在运行

1、采取查看进程方式

1
ps -aux | grep redis

结果如下图:

 

 

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

1
netstat -lanp | grep 6379

结果如下图:

 

 

redis-cli

redis-cli是连接本地redis服务的一个命令,通过该命令后可以既然怒redis的脚本控制台。如下图

输入exit可以退出redis脚本控制台

关闭运行中的Redis服务

输入redis-cli 进入控制台后输入命令shutdown即可关闭运行中的Redis服务了。如下图:

远程连接不上问题

如下图,已经开放了Redis服务的ip不为127.0.0.1,理论上远程客户端应该可以连接了,而且云服务器的端口号也在安全组里开放了。

 

 

后面发现是启动命令的问题,因为我比较偷懒,启动redis我都是直接输入命令
redis-server 或 redis-server& 这两种方式都是直接读取默认的配置文件启动,无非前者是显示启动后者是作为后台应用启动。我其实也很纳闷,因为我修改的就是默认的配置文件啊,我并没有重新生成新的配置文件,但是确实我输入命令 redis-server /usr/local/redis/etc/redis.conf 就是能成功,而且我输入命令redis-server& /usr/local/redis/etc/redis.conf也是远程登录失败。
关于直接输入redis-server不行的问题我还怀疑是不是Linux缓存问题,我重启服务器尝试下。结果还是一样的。。。哎先不纠结了 后续再去找原因吧

超级详细 的 Redis 安装教程

超级详细 的 Redis 安装教程

Windows 版本的 Redis 是 Microsoft 的开源部门提供的 Redis. 这个版本的 Redis 适合开发人员学习使用,生产环境中使用 Linux 系统上的 Redis, 这里讲解了这两种的安装和下载。按照你们需要的liunx 或window步骤来 就可以了(也可以留言,后面看反馈决定是否反馈,Liunx版和Window版)

一、Redis安装

1、下载redis 安装包

官网: https://redis.io/download/
中文: http://www.redis.cn/

1.1、直接上官网下载 redis 安装包


1.2、如果要安装5.0(稳定版,建议版本),往下拉

1.3、也可以在 github下载

github:https://github.com/MSOpenTech/redis/releases

1.4、当然如果是 Linux 安装 可以直接用命令下载


下载命令:
	wget http://download.redis.io/releases/redis-5.0.4.tar.gz

2、解压并安装Redis

2.1、解压安装包(Window 版 )

2.1.1、解压 Redis安装包

2.1.2、启动 Redis 临时服务

1、双击 redis-server.exe 启动 Redis

2、打开cmd,进入到刚才解压到的目录,启动临时服务:redis-server.exe redis.windows.conf

(备注:通过这个命令,会创建Redis临时服务,不会在window Service列表出现Redis服务名称和状态,此窗口关闭,服务会自动关闭。)

默认端口:6379

有的机器双击 redis-server.exe 执行失败,找不到配置文件,可以采用以下执行方式: 在命令行(cmd)中按如下方式执行:

D:\\tools\\Redis-x64-3.2.100>redis-server.exe redis.windows.conf 

2.1.3、检查 Redis

打开另一个cmd窗口,客户端调用:redis-cli.exe -h 127.0.0.1 -p 6379

2.1.4、注册 Redis Windows服务

1、进入Redis安装包目录,安装服务:

redis-server.exe --service-install redis.windows.conf --service-name redisserver1 --loglevel verbose

2、win+r -> services.msc,可以看到服务安装成功


安装服务:redis-server.exe --service-install redis.windows.conf --service-name redisserver1 --loglevel verbose

启动服务:redis-server.exe  --service-start --service-name redisserver1

停止服务:redis-server.exe  --service-stop --service-name redisserver1

卸载服务:redis-server.exe  --service-uninstall--service-name redisserver1

2.1.5、配置 Redis 主从服务器

将d盘下新建一个文件夹叫redis2,把redis文件夹的东西拷贝到redis2文件夹下,将redis-windows.conf配置文件中的ip 和端口号改一下,然后按照上面的步骤按照一个服务即可


2.1.6、修改 Redis 密码

设置密码将redis-windows.conf配置文件中的 #requirepass foobared 的#号去掉改为自己的密码即可

设置好保存后,若要使设置起作用,需要重启redis服务

重启后需要输入密码

2.2、解压安装包(Linux 版 )

2.2.1、Linux 解压

Linux 解压命令:	
	tar -xzvf redis-5.0.4.tar.gz
	


进入redis-5.0.5可以看到redis的配置文件redis.conf

2.2.2、配置环境及安装redis

使用gcc -v 命令查看gcc版本已经是4.8.5了,于是就没有再次安装,直接执行make,安装完之后再次make,出现图片内容即可。

yum install gcc-c++
make
make
make install   //确认安装的东西

redis默认安装路径是 /usr/local/bin

在该目录下可以看到redis的客户端和服务端

cd /usr/local/bin/


将redis的配置文件拷贝到新建的目录myredis-config下

我们以后就使用myredis-config下的配置文件,错了还可以回到原来那里取

[root@Lzdwtl bin]# mkdir myredis-config
[root@Lzdwtl bin]# cp /home/caoyinyuan/redis-5.0.5/redis.conf myredis-config/


redis默认不是后台启动,需要修改配置文件

按图修改文件,将daemonize的值修改为yes

[root@Lzdwtl myredis-config]# vim redis.conf

2.2.3、启动redis
  • 1、回到bin目录下

  • 2、启动redis服务端,通过指定的配置文件启动服务

[root@Lzdwtl bin]# redis-server myredis-config/redis.conf
  • 3、启动redis客户端
[root@Lzdwtl bin]# redis-cli -p 6379
# 如果redis设置有密码,则需要现认证才能发送信息,"123456"是redis的密码
127.0.0.1:6379> auth "123456"

2.2.4、查看redis的进程是否开启

复制一个新的会话,然后执行下面命令查看进程状态

[root@Lzdwtl /]# ps -ef|grep redis

2.2.5、关闭redis服务

执行shutdown和exit即可推出redis服务,再次查看也发现redis的服务端和客户端进程都消失了

127.0.0.1:6379> shutdown
not connected> exit

3、redis.conf配置文件说明

配置项名称配置项值范围说明
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 命令提供密码,默认关闭
maxclients0设置同一时间最大客户端连接数,默认无限制,Redis 可以同时打开的客户端连接数为 Redis 进程可以打开的最大文件描述符数,如果设置 maxclients 0,表示不作限制。当客户端连接数到达限制时,Redis 会关闭新的连接并向客户端返回 max number of clients reached 错误信息。
maxmemoryXXX 指定 Redis 最大内存限制,Redis 在启动时会把数据加载到内存中,达到最大内存后,Redis 会先尝试清除已到期或即将到期的 Key,当此方法处理 后,仍然到达最大内存设置,将无法再进行写入操作,但仍然可以进行读取操作。Redis 新的 vm 机制,会把 Key 存放内存,Value 会存放在 swap 区。配置项值范围列里XXX为数值。

4、Redis 基本操作命令

redis 默认为 16 个库 (在redis.conf 文件可配置,该文件很重要,后续很多操作都是这个配置文件) redis 默认自动使用
0 号库

(1) 沟通命令,查看状态

redis >ping 返回 PONG 
	解释:输入 ping,redis 给我们返回 PONG,表示 redis 服务运行正常 

(2) 查看当前数据库中 key 的数目:dbsize

语法:dbsize

作用:返回当前数据库的 key 的数量。返回值:数字,key 的数量

例:先查索引 5 的 key 个数, 再查 0 库的 key 个数

(3) redis 默认使用 16 个库

Redis默认使用16个库,从0到15。 对数据库个数的修改,在redis.conf 文件中databases 16

(4) 切换库命令:select db

使用其他数据库,命令是 select index

例 1: select 5

(5) 删除当前库的数据:flushdb

(6) redis 自带的客户端退出当前 redis 连接:exit 或 quit

5、Redis 的Key 的操作命令

1. keys

语法:keys pattern

作用:查找所有符合模式 pattern 的 key. pattern 可以使用通配符。通配符:

*:表示 0-多个字符,例如:keys * 查询所有的 key。

?:表示单个字符,例如:wo?d , 匹配 word , wood

例 1:显示所有的 key


例 2:使用 *表示 0 或多个字符


例 3:使用?表示单个字符

2. exists

语法:exists key [key…]

作用:判断key 是否存在

返回值:整数,存在 key 返回 1,其他返回 0.使用多个 key,返回存在的key 的数量。

例 1:检查指定 key 是否存在

例 2:检查多个 key

3. expire key seconds

语法:expire key seconds

作用:设置key 的生存时间,超过时间,key 自动删除。单位是秒。返回值:设置成功返回数字 1,其他情况是 0 。

例 1:设置红灯的倒计时是 5 秒

4. ttl

语法:ttl key

作用:以秒为单位,返回 key 的剩余生存时间(ttl: time to live) 返回值:

-1 :没有设置 key 的生存时间, key 永不过期。
-2:key 不存在
数字:key 的剩余时间,秒为单位

例 1:设置 redlight 的过期时间是 10,查看剩余时间

5. type

语法:type key

作用:查看key 所存储值的数据类型返回值:字符串表示的数据类型

  • none (key 不存在)

  • string (字符串)

  • list (列表)

  • set (集合)

  • zset (有序集)

  • hash (哈希表)

例 1:查看存储字符串的 key:wood

例 2:查看不存在的key

6. del

语法:del key [key…]

作用:删除存在的key,不存在的key 忽略。返回值:数字,删除的 key 的数量。

例 1:删除指定的 key

二、使用 Redis管理工具 连接 Redis

1、下载 Redis Desktop Manage 管理工具

官网地址:https://redisdesktop.com/download
Github地址:https://github.com/RedisInsight/RedisInsight


2、安装 Redis Desktop Manage 管理工具

1、解压安装包

2、双击运行"resp-2022.1.0.0.exe"程序进行安装

3、接受软件安装协议;

4、选择安装目录;

5、安装完成之后,打开软件即可

6、安装后启动界面:

7、使用 Redis Desktop Manage 管理工具 连接 Redis:

8、使用 Redis Desktop Manage :

默认有16个db分块。接下里可以进行相应的操作


这里选择db0,点击“+”,新建键值对,键名“a”,键值“小张”,点击保存


如图,打开命令窗口,输入命令“get a”,回车,输出“小张”,说明值已经设置成功;


然后在命令窗口输入命令“set a 丁丁”,回车,刷新db0,则显示值已经变为丁丁。说明获取了值,且值已经改变。

3、使用 Redis Desktop Manage 管理工具 连接远程 Redis服务

1、修改配置

redis 默认只允许自己的电脑(127.0.0.1)连接。如果想要其他电脑进行远程连接,将 配置文件 redis.conf 中的 bind
127.0.0.1 后添加自己的 ip 即可。然后重新运行 redis 服务。

redis.conf 中修改:
1. bind 127.0.0.1 改为bind 0.0.0.0
2. .protected-mode no
3. 设置redis秘密,requirepass 123456


2、开启后台守护进程

或者 bind 地址改为 0.0.0.0 允许所有 ip 访问。 找到 这一项 daemonize no 把这一项的 no 改成 yes
(这一项主要是让 redis 在后台开启一个守护进程,保持一致开启 redis 服务)

三、使用IDEA的Redis插件连接Redis服务器

IDEA中的Redis插件作为Redis的可视化工具,可以通过该插件连接Redis服务器,并进行增删改查操作。
如果远程连接不成功,可能和上面用Redis管理工具的情况一样,按照上面的进行检查

3.1、IDEA安装Redis插件

1、点击 File->Setting

2、点击Plugins

3、在Browse Repositories中输入redis

4、点击Redis插件

5、下载并重启

3.2、IDEA连接Redis服务器

安装完后,通过右侧工具栏或File->Setting->Other Settings->NoSql Server可找到连接Redis的窗口,如下图:



通过ifconfig命令查找IP地址,端口号使用的是redis默认的6379,此端口号以redis.config配置文件中配置的redis服务端口为准。由于我连接的不是redis集群,且没有设置redis密码,只填Label和Server url(s)两处即可。如下图所示。

测试连接,点击Test Connection后连接

连接后的效果如下

以上是关于Linux安装部署Redis(超级详细)的主要内容,如果未能解决你的问题,请参考以下文章

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

超级详细 的 Redis 安装教程

Redis安装教程(超级详细)!!

Linux下Redis的安装和部署 详细

大数据实时数据同步超级详细的生产环境OGG(GoldenGate)12.2实时异构同步Oracle数据部署方案(中)

Ubuntu零基础教学-Redis介绍及安装 | 超级详细,建议收藏