Linux安装部署Redis

   日期:2024-12-26    作者:87hev 移动:http://ljhr2012.riyuangf.com/mobile/quote/50996.html

1. 前言

 

2. 下载Redis

两种方法

  • 通过官网下载后传到linux机器上(机器无法访问外网时)
  • linux上通过wget直接下载

redis官网地址:http://www.redis.io/
所有历史版本下载地址:http://download.redis.io/releases/
redis中文文档地址:http://www.redis.cn/documentation.html

 
 

3. 解压并安装Redis

注意:如果是新机器,需要先安装gcc

安装gcc
验证gcc是否安装成功

  • 解压

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

 
 
 

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

  • 编译

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

 
 
  • 安装

输入以下命令

 

这里多了一个关键字 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

 
 
 

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

  • 查看redis 进程
 
  • 使用redis-cli 链接redis服务器
    注意:默认链接的是localhost 运行在 6379 端口的 redis 服务

  • 使用 redis-cli 的 -h (服务器地址) -p (端口)进行连接

 

4. 修改redis.conf的参数配置

 

再次启动

 

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

配置项名称配置项值范围说明daemonizeyes、noyes表示启用守护进程,默认是no即不以守护进程方式运行。其中Windows系统下不支持启用守护进程方式运行port 指定 Redis 监听端口,默认端口为 6379bind 绑定的主机地址,如果需要设置远程访问则直接将这个属性备注下或者改为bind * 即可,这个属性和下面的protected-mode控制了是否可以远程访问 。protected-modeyes 、no保护模式,该模式控制外部网是否可以连接redis服务,默认是yes,所以默认我们外网是无法访问的,如需外网连接rendis服务则需要将此属性改为no。timeout300当客户端闲置多长时间后关闭连接,如果指定为 0,表示关闭该功能logleveldebug、verbose、notice、warning日志级别,默认为 noticedatabases16设置数据库的数量,默认的数据库是0。整个通过客户端工具可以看得到rdbcompressionyes、no指定存储至本地数据库时是否压缩数据,默认为 yes,Redis 采用 LZF 压缩,如果为了节省 CPU 时间,可以关闭该选项,但会导致数据库文件变的巨大。dbfilenamedump.rdb指定本地数据库文件名,默认值为 dump.rdbdir 指定本地数据库存放目录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为数值。

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

5. 使用redis启动脚本设置开机自启动

 

脚本中指定了端口、server路径、cli路径、pidfile路径以及conf路径
上述EXEC、CLIEXEC、PIDFILE、CONF都需要正确配置,根据自己的安装目录。
多说一句,如果在安装时执行了make install,那么这里的脚本不需要做多大改动,因为make install把server和cli都拷到/usr/local/bin下面了。

接着将redis_init_script脚本拷贝到/etc/init.d/redisd;看清楚目录,是在 etc/init.d目录下,为什么?因为 linux开机会 执行这个目录中的文件

 

在/etc/init.d下的脚本都是可以在系统启动是自动启动的服务,而现在还缺一个系统启动时的配置

 

然后就会发现报了一个错误:服务 redisd 不支持 chkconfig

参考这篇文章, 这是因为我们需要在redis_init_script的开头加一个小改动

 

至于这里2345 90 10分别代表什么意思,请参考上面的文章链接。
保存完重新拷贝到/etc/init.d/redisd后,再运行chkconfig就完成了。

一切就绪之后,可以执行以下命令检验service是否设置成功

 

最后重启一下系统吧,进入系统之后直接运行redis-cli检验redis服务是否已经自动运行了。

6. 其他redis.conf配置

 

7. 其他问题

7.1 centeros的redis-cli命令不生效解决方法

如果你已经安装了redis服务器,并且已经启动,但是redis-cli命令无法生效,分析,命令未加入环境变量。那就给redis命令加入环境变量中:
注意点:redis安装目录会有不同,注意下面的PATH的变量设置,由于我的redis是自己编译的,安装在/usr/local/redis目录下,如不同,请修改。务必注意!更改后敲入对应命令行

 
7.2 Could not connect to Redis at 127.0.0.1:6379: Connection refused
 
7.3 DENIED Redis is running in protected mode报错解决办法

如下所示,程序连接redis报错,根据错误信息,redis运行在受保护模式,需要redis命令行下作设置:config set protected-mode no。

redis.clients.jedis.exceptions.JedisDataException: DENIED Redis is running in protected mode because
protected mode is enabled, no bind address was specified, no authentication password is requested to
clients. In this mode connections are only accepted from the loopback interface. If you want to
connect from external computers to Redis you may adopt one of the following solutions: 1) Just disable
protected mode sending the command ‘CONFIG SET protected-mode no’ from the loopback interface by connecting to Redis from the same host the server is running, however MAKE SURE Redis is not publicly accessible from internet if you do so. Use CONFIG REWRITE to make this change permanent. 2) Alternatively you can just disable the protected mode by editing the Redis configuration file, and setting the protected mode option to ‘no’, and then restarting the server. 3) If you started the server manually just for testing, restart it with the ‘–protected-mode no’ option. 4) Setup a bind address or an authentication password.NOTE: You only need to do one of the above things in order for the server to start accepting connections from the outside.

7.4 Linux重启后Redis数据丢失解决方案

https://www.cnblogs.com/fanshuyao/p/7222011.html

7.5 /var/run/redis_6379.pid exists, process is already running or crashed

安装启动service redis start时报错 /var/run/redis_6379.pid exists, process is already running or crashed
解决办法

 

之后再重新启动即可

8. 相关文章

(1) redis集群搭建

redis集群搭建

(2) 华为云两台机器内网互联

华为云两台机器内网互联

(3) /etc/rc.d/init.d 详解|程序开机自启

/etc/rc.d/init.d 详解|程序开机自启

(4) Redis5.0+ Redis集群水平扩容|节点删除

Redis5.0+ Redis集群水平扩容|节点删除

(5) 三台机器搭建redis集群过程及问题记录

三台机器搭建redis集群过程及问题记录

(6) redis5.0集群搭建(两台服务器)

redis5.0集群搭建(两台服务器)

(7) Linux安装部署Redis

Linux安装部署Redis

(8) 【redis】 windows环境下安装、配置、使用、卸载

【redis】 windows环境下安装、配置、使用、卸载

(9) CentOS chkconfig的安装及使用

CentOS chkconfig的安装及使用

(10) 解决Linux局域网不能相互访问

解决Linux局域网不能相互访问

(11) redis集群中节点fail,noaddr

redis集群中节点fail,noaddr

参考文献
https://www.cnblogs.com/hunanzp/p/12304622.html

https://www.cnblogs.com/zhxilin/p/5892678.html

https://www.cnblogs.com/xyinjie/p/9444280.html

https://blog.csdn.net/xiaofei_hah0000/article/details/52214592

redis:Could not connect to Redis at 127.0.0.1:6379: Connection refused错误解析
https://blog.csdn.net/qaz18201142158/article/details/107260181/


特别提示:本信息由相关用户自行提供,真实性未证实,仅供参考。请谨慎采用,风险自负。


举报收藏 0评论 0
0相关评论
相关最新动态
推荐最新动态
点击排行
{
网站首页  |  关于我们  |  联系方式  |  使用协议  |  隐私政策  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  鄂ICP备2020018471号