前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >CentOS7.5中安装redis5.0(实践踩坑版)

CentOS7.5中安装redis5.0(实践踩坑版)

作者头像
拓荒者
发布2019-03-21 15:36:20
1.5K0
发布2019-03-21 15:36:20
举报
文章被收录于专栏:运维经验分享

CentOS7.5中安装redis5.0(实践踩坑版)

2018年10月22日 17:01:43 ZerahMu 阅读数:805 标签: centOSlinuxredisgrepvim 更多

个人分类: 项目环境

CentOS下Redis的安装

前言

安装Redis需要知道自己需要哪个版本,有针对性的安装,比如如果需要redis GEO这个地理集合的特性,那么redis版本就不能低于3.2版本,由于这个特性是3.2版本才有的。另外需要注意的是,Redis约定次版本号(即第一个小数点后的数字)为偶数的版本是稳定版(如2.8版、3.0版),奇数版本是非稳定版(如2.7版、2.9版),生产环境下一般需要使用稳定版本。

安装Redis官方是这么描述的:Download, extract and compile Redis with:

即:下载,解压,并且编译,是不是听起来很简单,嗯 我也觉得

1.下载安装包

代码语言:javascript
复制
$ wget http://download.redis.io/releases/redis-5.0.0.tar.gz

2.解压压缩包

代码语言:javascript
复制
$ tar xzf redis-5.0.0.tar.gz

没有报error就是成功了

3.yum安装gcc依赖

代码语言:javascript
复制
$ yum install gcc

遇到选择,输入y即可

4.编译&安装

代码语言:javascript
复制
  1. $ cd redis-5.0.0
  2. $ make

将/usr/local/redis-4.0.6/src目录下的文件加到/usr/local/bin目录

代码语言:javascript
复制
$ cd src && make install

编译的二进制文件位于src目录中。运行Redis:

代码语言:javascript
复制
$ src/redis-server

5.测试是否安装成功 

先切换到redis src目录下

代码语言:javascript
复制
$ cd src/

5.1 直接启动redis

代码语言:javascript
复制
$ ./redis-server

如上图:redis启动成功,但是这种启动方式需要一直打开窗口,不能进行其他操作,不太方便。

按 ctrl + c可以关闭窗口。

5.2 以后台进程方式启动redis

第一步:修改redis.conf文件

redis.conf文件就在redis目录下

daemonize no修改为daemonize yes

配置允许所有ip都可以访问redis,将bind 127.0.0.1注释掉:

并且将protected-mode   改为no

配置访问密码:

第二步:指定redis.conf文件启动

代码语言:javascript
复制
$ ./redis-server /usr/local/redis-4.0.6/redis.conf

第三步:关闭redis进程

首先使用ps -aux | grep redis查看redis进程

代码语言:javascript
复制
$ ps -aux | grep redis

使用kill命令杀死进程,并检查是否成功关闭

代码语言:javascript
复制
$  kill -9 5545

第四步:检查是否开启了所有Ip访问:

代码语言:javascript
复制
$ ps -ef |grep redis

如果端口号前面显示的是*则说明客户端可以访问了,如果是127.0.0.1,继续配吧骚年,另外第6步配置了服务形式开启自启动,拷贝了一个6379.conf配置文件,记得做同样的修改配置,至于不改会出现什么样的坑,这个坑还是留给你踩吧,我就省事儿起见了 - _ -

6.设置redis开机自启动

6.1、在/etc目录下新建redis目录

代码语言:javascript
复制
  1. $ cd /etc
  2. $ mkdir redis

6.2.将/root/redis-5.0.0/redis.conf文件复制一份到/etc/redis目录下,并命名为6379.conf  

代码语言:javascript
复制
$ cp /root/redis-5.0.0/redis.conf /etc/redis/6379.conf

6.3、将redis的启动脚本复制一份放到/etc/init.d目录下

代码语言:javascript
复制
$ cp /root/redis-5.0.0/utils/redis_init_script /etc/init.d/redisd

6.4、设置redis开机自启动

先切换到/etc/init.d目录下,然后执行自启命令

代码语言:javascript
复制
$ chkconfig redisd on

如果redisd不支持chkconfig

使用vim编辑redisd文件,在第一行加入如下两行注释,保存退出

代码语言:javascript
复制
  1. # chkconfig:   2345 90 10
  2. # description:  Redis is a persistent key-value database

注释的意思是,redis服务必须在运行级2,3,4,5下被启动或关闭,启动的优先级是90,关闭的优先级是10。

再次执行开机自启命令,成功

代码语言:javascript
复制
$ chkconfig redisd on

7.现在可以直接以服务的形式启动和关闭redis了

启动:

代码语言:javascript
复制
$ service redisd start  

关闭:

代码语言:javascript
复制
$ service redisd stop

备注: 如果出现如下问题:

[root@iZwz991stxdwj560bfmadtZ ~]# service redisd start

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

可参考资料:http://blog.csdn.net/luozhonghua2014/article/details/54649295

重启redis报错:Waiting for Redis to shutdown

2016-12-14 15:22 by abce, 2633 阅读, 0 评论, 收藏编辑

重启redis,发现一直报:Waiting for Redis to shutdown 

1 2 3 4 5 6 7 8 9 10 11

service redis_6379 restart Stopping ... OK (error) NOAUTH Authentication required. Waiting for Redis to shutdown ... Waiting for Redis to shutdown ... Waiting for Redis to shutdown ... Waiting for Redis to shutdown ... Waiting for Redis to shutdown ... Waiting for Redis to shutdown ... Waiting for Redis to shutdown ...

因为配置了密码验证,而在restart的时候并没有配置密码。 

解决方法: 1.修改redis服务脚本,加入如下所示的信息即可:

1 2

vi /etc/init.d/redisd $CLIEXEC -a "password" -p $REDISPORT shutdown

  $CLIEXEC -a "myleguan2018" 2>/dev/nul -p $REDISPORT shutdown

edis-cli命令,如redis-cli -h 127.0.0.1 -a 'password'

这里会有一个问题,当在shell中输入以上命令时,控制台总会输出一串“Warning: Using a password with '-a' option on the command line interface may not be safe.”

而这串提醒,会影响我们脚本的数据取值。

这串告警,并不是普通的输出,通过head、tail、awk、sed等命令并不能过滤掉这行输出,如图:

问题原因:这串输出并不是普通输出,shell的标准输出包含两种,1(标准输出)2(标准错误)我们的命令,即包含1也包含2,2即是我们想要去除的提示。

解决办法将标准错误去除即可,如图,加了2>/dev/null,将标准错误丢弃即可

windows 中redis可视化工具:

教程:https://blog.csdn.net/leisure_life/article/details/78460632

源码:https://github.com/uglide/RedisDesktopManager

附:一些配置中的linux命令

一、linux下在一个文件里面查找一个字符串【这个在面试中有遇到】

1、在终端使用grep命令查找

格式:

grep “要查找的字符串” 文件名

例子:

grep “www.dutycode.com” test.txt

文件名可以使用基本正则表达式(BRE),例如, 查找test目录下的所有文件,包含www.dutycode.com字符串的文件以及该字符串在第几行。

grep  -n“www.dutycode.com” /root/zzh/test/*

使用-n 参数,可以显示字符串在文件中的行数

2、用vim编辑文件查找

使用 vim查找则在normal模式下

在normal模式下按下  /  即可进入查找模式,输入要查找的字符串并按下回车。 Vim会跳转到第一个匹配。按下n查找下一个,按下N查找上一个。

格式

/字符串

例子

/test\c

Vim查找支持正则表达式,例如/vim$匹配行尾的"vim"。 需要查找特殊字符需要转义,例如/vim\$匹配"vim$",在查找模式中加入\c表示大小写不敏感查找.例如,在文件中查找set:

二、linux vi /vim显示行号

命令模式:set nu 或者:set number

取消显示行号:set nonu 或者 :set nonumber

永久显示行号:https://jingyan.baidu.com/article/22a299b5ca65a49e19376acc.html

三、linux grep命令

1.命令格式:

grep [option] pattern file

2.命令功能:

用于过滤/搜索的特定字符。可使用正则表达式能多种命令配合使用,使用上十分灵活。

vim操作:https://www.cnblogs.com/chenlogin/p/6245958.html

参考文档:https://www.cnblogs.com/renzhicai/p/7773080.html

https://www.cnblogs.com/zuidongfeng/p/8032505.html

(adsbygoogle = window.adsbygoogle || []).push({});

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018/12/05 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • CentOS7.5中安装redis5.0(实践踩坑版)
  • 前言
  • 1.下载安装包
  • 2.解压压缩包
  • 3.yum安装gcc依赖
  • 4.编译&安装
  • 5.测试是否安装成功 
    • 5.1 直接启动redis
      • 5.2 以后台进程方式启动redis
        • 第一步:修改redis.conf文件
        • 第二步:指定redis.conf文件启动
        • 第三步:关闭redis进程
        • 第四步:检查是否开启了所有Ip访问:
    • 6.设置redis开机自启动
      • 6.1、在/etc目录下新建redis目录
        • 6.2.将/root/redis-5.0.0/redis.conf文件复制一份到/etc/redis目录下,并命名为6379.conf  
          • 6.3、将redis的启动脚本复制一份放到/etc/init.d目录下
            • 6.4、设置redis开机自启动
            • 7.现在可以直接以服务的形式启动和关闭redis了
              • 启动:
                • 关闭:
                  • 重启redis报错:Waiting for Redis to shutdown
                  • 附:一些配置中的linux命令
                    • 一、linux下在一个文件里面查找一个字符串【这个在面试中有遇到】
                      • 1、在终端使用grep命令查找
                      • 2、用vim编辑文件查找
                    • 二、linux vi /vim显示行号
                      • 三、linux grep命令
                      相关产品与服务
                      云数据库 Redis
                      腾讯云数据库 Redis(TencentDB for Redis)是腾讯云打造的兼容 Redis 协议的缓存和存储服务。丰富的数据结构能帮助您完成不同类型的业务场景开发。支持主从热备,提供自动容灾切换、数据备份、故障迁移、实例监控、在线扩容、数据回档等全套的数据库服务。
                      领券
                      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档