Centos7下Redis3.2的安装配置与JReid测试

时间:2024-12-10 00:05:38

环境 Centos7

Redis版本 3.2.0

安装目录 /usr/local/redis/redis-3.2.0

Redis的介绍

参见官网

安装

1 安装gcc与tcl

# yum install gcc tcl 





2 下载3.2.0

# mkdir /usr/local/redis 

# cd /usr/local/redis 

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





3 解压

# tar -zxvf redis-3.2.0.tar.gz

# mv rredis-3.2.0.tar.gz redis3.2.0

# cd redis3.2.0





4 安装

# make test

安装的时候有可能会报一些小错误,大家看提示即可

安装完成后,如下



Centos7下Redis3.2的安装配置与JReid测试





src目录下有redis-server,redis-cli等命令

配置成服务

5配置成服务

Redis 的启动脚本为:/usr/local/redis/redis-3.2.0/utils/redis_init_script 

将启动脚本复制到/etc/init.d/redis目录下,并命名为redis: 

# cp /usr/local/redis/redis-3.2.0/utils/redis_init_script /etc/init.d/redis

///////////////

这里说一个题外话,linux有个/etc/init.d文件夹还有一个/etc/rc.d/init.d文件夹

两个有什么区别呢?

Centos7下Redis3.2的安装配置与JReid测试







/etc/init.d是/etc/rc.d/init.d的一个软连接

那么什么是软连接





ln 3.txt 4

把3.txt复制一份为4

但是修改3.txt后,在4上能看到变化

修改4后在3.txt上也能看到变化

但是删除了两个中的一个后,另一个并不会被删除。

ln 3.txt 4 叫硬连接





ln -s 3.txt 5叫软连接

上面的s不是soft,是symboilc

就是为3.txt新建一个叫5的快捷方式

那么删除了5,3.txt还是OK的

不过要是删除了3.txt,那么5就不能用了。

///////////////

当然redis_init_script我们还得更改一下redis_init_script

这么吧 我把我更改后的贴出来,大家自己对照redis_init_script

#!/bin/sh
#
# Simple Redis init.d script conceived to work on Linux systems
# as it does use of the /proc filesystem.

REDISPORT=6379
EXEC=/usr/local/redis/redis-3.2.0/src/redis-server
CLIEXEC=/usr/local/redis/redis-3.2.0/src/redis-cli

PIDFILE=/var/run/redis_${REDISPORT}.pid
CONF="/usr/local/redis/redis-3.2.0/conf/${REDISPORT}.conf"

case "$1" in
    start)
        if [ -f $PIDFILE ]
        then
                echo "$PIDFILE exists, process is already running or crashed"
        else
                echo "Starting Redis server..."
                $EXEC $CONF &
        fi
        ;;
    stop)
        if [ ! -f $PIDFILE ]
        then
                echo "$PIDFILE does not exist, process is not running"
        else
                PID=$(cat $PIDFILE)
                echo "Stopping ..."
                $CLIEXEC -p $REDISPORT shutdown
                while [ -x /proc/${PID} ]
                do
                    echo "Waiting for Redis to shutdown ..."
                    sleep 1
                done
                echo "Redis stopped"
        fi
        ;;
    *)
        echo "Please use start or stop as first argument"
        ;;
esac

我们要修改这几个地方:

(1)  REDISPORT 端口保持 6379 不变;(注意,端口名将与下面的配置文件名有关) 

(2)  EXEC=/usr/local/bin/redis-server 改为 EXEC=/usr/local/redis/redis-3.2.0/src/redis-server 

(3)  CLIEXEC=/usr/local/bin/redis-cli 改为 CLIEXEC=/usr/local/redis/redis-3.2.0/src/redis-cli 

(4)  配置文件设置: 

创建 redis 配置文件目录 

我们知道,直接运行redis-3.2.0/src/redis-server是可以的,但是我们一般都给它增加一个配置文件

# mkdir /usr/local/redis/conf 

复制 redis 配置文件/usr/local/redis/redis-3.2.0/redis.conf 到/usr/local/redis/conf 目录并按端口

号重命名为 6379.conf 

# cp /usr/local/redis/redis-3.2.0/redis.conf /usr/local/redis/redis-3.2.0/conf/6379.conf 

做了以上准备后,再对 CONF 属性作如下调整: 

CONF="/etc/redis/${REDISPORT}.conf" 改为 CONF="/usr/local/redis/redis-3.2.0/conf/${REDISPORT}.conf" 

(5)  更改 redis 开启的命令,以后台运行的方式执行: 

$EXEC $CONF &    #“&”作用是将服务转到后面运行 







在/etc/systemd/system下写服务文件

# cd /etc/systemd/system
# vi redis_6379.service

[Unit]
Description=Redis on port 6379
[Service]
Type=forking
ExecStart=/etc/init.d/redis start
ExecStop=/etc/init.d/redis stop
[Install]
WantedBy=multi-user.target

开启服务

systemctl start  redis_6379.service

使用java远程测试

代码我就不贴了,网上有一大堆

不过就刚才的配置来说,我们远程java连接铁定出问题

大概会报这两个错误

Could not get a resource from the pool, Connection refused: connect

DENIED Redis is running in protected mode because protected mode is enabled…

问题在于,默认的conf文件绑定了本机ip,咱们得注释掉

第二,远程访问的加上密码,我们还得在conf里设置(具体怎么设密码,自己百度吧)

参见

http://blog.****.net/yingxiake/article/details/51472810

参考资料

吴水成 Dubbo视频教程 redis的安装与使用

http://blog.****.net/yingxiake/article/details/51472810