您的位置:首页 > 数据库 > Redis

Redis安装(CentOs版本),及项目引用

2017-10-26 11:35 232 查看
Redis缓存技术,无需多说,如果想了解是什么等基本信息,自行百度.下面直接开始如何安装:
第一步:

先在redis中将接下来需要依赖的包进行安装(主要是为了安装gcc,其他的主要都是他的一些依赖):

因为redis是C语言编写的,所以Linux系统中需要安装gcc进行编译

yum install cpp  

yum install binutils

yum install glibc-kernheaders

yum install glibc-common

yum install glibc-devel

yum install gcc

yum install make

yum install cmake

以上所有的包安装完了之后都有提示Complete,如果没有显示Complete而是Nothing to do,则说明服务器已经安装了这个包,不需要再次安装.如果出现报错,复制错误内容,自行百度解决.

第二步:

因为Redis的测试需要用到了Unix的Tcl工具,所以我
4000
们需要安装Tcl工具:

进入准备安装Tcl工具的文件夹内:

下载Tcl压缩包

wget http://downloads.sourceforge.net/tcl/tcl8.6.3-src.tar.gz

将包进行解压,重命名为tcl(可不执行):

tar -zxvf tcl8.6.3-src.tar.gz

mv tcl8.6.3 tcl

cd tcl 

安装:

cd unix/

./configure    

make

make install

第三步:安装redis

进入准备安装redis的目录,将redis安装包下载:

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

进行解压,安装:

tar -zxvf redis-3.0.5.tar.gz 

mv redis-3.0.5 redis

cd redis
后续我们可以进行安装了

上面的cd redis已经进入了redis目录了所以我们只需要执行命令

make  #执行安装命令

cd src/  #进入src目录

make test  #进行安装测试

如果一路通畅没啥问题,那就是ok了,如果出现错误,请自行使用百度解决.

之后再进行

make install

如果不出错那么我们的redis就是正式安装完毕了

第四步:测试是否安装成功了

src/redis-server &     # 启动redis,加上&表示使redis以后台程序方式运行,推荐使用该方法

redis-server /usr/local/(自己建的redis存放目录)/redis/redis.conf   #启动redis,加上后面的config文件,是使用指定的config文件进行启动

src/redis-cli shutdown     #关闭redis

输入启动redis的命令,启动redis,如图所示:



出现上述类似的页面基本上可以判断redis已经成功安装了.

使用netstat -ntlp | grep 6379 查看端口是否在使用中,如果使用中那么则可以说明安装成功,如果不是那就是安装失败.

使用redis客户端测试:

进入到redis的src目录: ./redis-cli,如果可以依次执行下面的操作即安装成功



第五步:在Linux中设置redis的服务器的快速启动和关闭

这里有个问题就是如果我们重启了或者开启redis系统之后我们需要进入到redis的目录中执行一连串的命令才可以启动redis,这样会很麻烦,所以我们可以设置安装service的形式来启动redis,一下是操作

创建脚本:vim/etc/init.d/redis ,在文本中输入一下代码,后保存退出

1 # Date 2015-12-10
2 # chkconfig: 2345 10 90
3 # description: Start and Stop redis
4
5 PATH=/usr/local/kencery/redis/src:/sbin:/usr/bin:/bin
6 REDISPORT=6379
7 EXEC=/usr/local/kencery/redis/src/redis-server
8 REDIS_CLI=/usr/local/kencery/redis/src/redis-cli
9
10 PIDFILE=/var/run/redis.pid
11 CONF="/usr/local/kencery/redis/redis.conf"
12 AUTH="1234"
13 case "$1" in
14 start)
15 if [ -f $PIDFILE ]
16 then
17 echo "$PIDFILE exists, process is already running or crashed."
18 else
19 echo "Starting Redis server..."
20 $EXEC $CONF
21 fi
22 if [ "$?"="0" ]
23 then
24 echo "Redis is running..."
25 fi
26 ;;
27 stop)
28 if [-f $PIDFILE ]
29 then
30 echo "$PIDFILE exists, process is not running."
31 else
32 PID=$(cat $PIDFILE)
33 echo "Stopping..."
34 $REDIS_CLI -p $REDISPORT SHUTDOWN
35 sleep 2
36 while [ -x $PIDFILE ]
37 do
38 echo "Waiting for Redis to shutdown..."
39 sleep 1
40 done
41 echo "Redis stopped"
42 fi
43 ;;
44 restart|force-reload)
45 ${0} stop
46 ${0} start
47 ;;
48 *)
49 echo "Usage: /etc/init.d/redis {start|stop|restart|force-reload}" >&2
50 exit 1
51 esac给文件添加权限:
chmod 755 /etc/init.d/redis

以上操作如果没有出现报错,则现阶段配置完成,每次开机之后我们输入一下命令即可启动和关闭redis服务:

service redis start  #开启redis服务

service redis stop  #关闭redis服务



当服务开启之后可以连接测试或者使用其他客户端来操作redis,测试如图所示:



第六步:设置Linux中的redis开机启动

上面的第五步操作,虽然简化了,但是还是需要我们自己去手动点开启动,也不是很方便,所以现在我们来设置自动启动

首先我们设置redis.config中的daemonize为yes,确保守护进行开启,执行以下命令:

cd usr/local/(创建的redis的安装目录)/redis

vim redis.config  #在打开的文档中,找到daemonize属性,将值设置为yes,保存退出

然后设置开机启动命名:chkconfig redis on

完成以上步骤则可以进行开机启动了.重启之后直接进行测试看redis是否启动.

第七步:解决redis服务连接不上的问题:

一般情况下我们都是通过在服务器上安装redis,然后我们的代码可能 是在本地的电脑上跑(比如我的redis是安装在我的虚拟机上,但是我的项目是在我本地的windows系统上的tomcat上的,那么我通过代码中的设置进行访问),但是我们会发现无法进行连接,下面我们来处理这个问题:

进入config文件:

vim  redis.config

注释掉:bind 127.0.0.1  #也就是在这行的开始加上一个#号

因为redis处于安全考虑,默认的是服务只限于本地使用

然后:设置密码

找到:requirepass 指定密码

(如果不在文件中输入,使用命令:config set requirepass 指定密码也可以)

保存配置文件,重启redis服务.

然后通过windows,开启cmd,通过telnet命令测试端口是否畅通;

如果返回telnet不是内部或外部命令;原因是你当前的windows系统版本环境下,Telnet客户端默认是关闭状态.

解决方案:

win+e  #打开文件资源管理器

在路径框中复制: 控制面板\程序\程序和功能  然后进入该文件夹

找到:启用或关闭windows功能

找到Telnet客户端,勾选.确定

然后再进行测试:

如果成功则ok,如果显示:



意思是:CentOs的6379端口没有开启;

去开启:

输入firewall-cmd --query-port=6379/tcp,如果返回结果为no,那么证明6379端口确实没有开启。

输入firewall-cmd --add-port=6379/tcp,将6379端口开启,返回success。

然后再执行上一条命令,返回yes,证明端口已经成功开启。



出现上述的原因是:

Linux防火墙默认开启,redis的服务端口6379并不在开放规则之内,所以需要将此端口开放访问或者关闭防火墙

关闭防火墙命令:

service iptables stop#因为我的是虚拟机上面弄着玩,所以我直接将防火墙关闭了
如果不想关闭防火墙,可以修改配置文件: /etc/sysconfig/iptables文件

再使用Telnet测试,什么动静都没有,无异常,则ok

然后可以使用redis desktop manager连就可以了



centos从7开始默认用的是firewalld,这个是基于iptables的,虽然有iptables的核心,但是iptables的服务是没安装的。所以你只要停止firewalld服务即可: 

sudo systemctl stop firewalld.service && sudo systemctl disable firewalld.service

如果你要改用iptables的话,需要安装iptables服务: 

sudo yum install iptables-services 

sudo systemctl enable iptables && sudo systemctl enable ip6tables 

sudo systemctl start iptables && sudo systemctl start ip6tables

以上内容通过网络上的各种资料作者本人的尝试,和各位技术人员的分享,最终得到的经验.感谢,csnd的"最是那一低头的温柔"和博客园的"Kencery",以及百度上的其他共享的各位.希望分享可以持续下去!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: