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

来源:互联网 发布:2010科比总决赛数据 编辑:程序博客网 时间:2024/06/17 09:52

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工具,所以我们需要安装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",以及百度上的其他共享的各位.希望分享可以持续下去!