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

原创
2018/12/05 17:33
阅读数 3.2K

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.下载安装包

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

2.解压压缩包

$ tar xzf redis-5.0.0.tar.gz

没有报error就是成功了

3.yum安装gcc依赖

$ yum install gcc

遇到选择,输入y即可

4.编译&安装

 
  1. $ cd redis-5.0.0

  2.  
  3. $ make

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

$ cd src && make install

 

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

$ src/redis-server

5.测试是否安装成功 

先切换到redis src目录下

$ cd src/

5.1 直接启动redis

$ ./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文件启动

$ ./redis-server /usr/local/redis-4.0.6/redis.conf

第三步:关闭redis进程

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

$ ps -aux | grep redis

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

$  kill -9 5545

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

$ ps -ef |grep redis

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

6.设置redis开机自启动

 

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

 
  1. $ cd /etc

  2.  
  3. $ mkdir redis

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

$ cp /root/redis-5.0.0/redis.conf /etc/redis/6379.conf

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

$ cp /root/redis-5.0.0/utils/redis_init_script /etc/init.d/redisd

6.4、设置redis开机自启动

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

$ chkconfig redisd on

如果redisd不支持chkconfig

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

 
  1. # chkconfig:   2345 90 10

  2.  
  3. # description:  Redis is a persistent key-value database

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

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

$ chkconfig redisd on

 

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

启动:

$ service redisd start  

关闭:

$ 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

展开阅读全文
打赏
0
3 收藏
分享
加载中
更多评论
打赏
0 评论
3 收藏
0
分享
返回顶部
顶部