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配置文件说明
配置项名称 | 配置项值范围 | 说明 |
---|---|---|
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 命令提供密码,默认关闭 | |
maxclients | 0 | 设置同一时间最大客户端连接数,默认无限制,Redis 可以同时打开的客户端连接数为 Redis 进程可以打开的最大文件描述符数,如果设置 maxclients 0,表示不作限制。当客户端连接数到达限制时,Redis 会关闭新的连接并向客户端返回 max number of clients reached 错误信息。 |
maxmemory | XXX | 指定 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(超级详细)的主要内容,如果未能解决你的问题,请参考以下文章