阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

CentOS 7下Redis5安装部署与开机自启动

193次阅读
没有评论

共计 4758 个字符,预计需要花费 12 分钟才能阅读完成。

1. 什么是 redis

redis 是用 C 语言开发的一个开源的高性能键值对(key-value)数据库。它通过提供多种键值数据类型来适应不同场景下的存储需求,目前为止 redis 支持的键值数据类型如下字符串、列表(lists)、集合(sets)、有序集合(sorts sets)、哈希表(hashs)

2.redis 的应用场景 

缓存(数据查询、短连接、新闻内容、商品内容等等)。(最多使用)
分布式集群架构中的 session 分离。
聊天室的在线好友列表。
任务队列。(秒杀、抢购、12306 等等)
应用排行榜。
网站访问统计。
数据过期处理(可以精确到毫秒)

3.redis 的安装 

下面介绍在 CentOS 环境下,Redis 的安装与部署,redis 从 3.0 版本以后增加了集群功能。

步骤如下:

由于 Redis 是用 C 语言编写,所以编译时需要 gcc,

yum install gcc-c++

通过官网下载 地址:http://download.redis.io/releases/redis-5.0.0.tar.gz

或 使用 linux wget 命令:wget http://download.redis.io/releases/redis-5.0.0.tar.gz

把源码包上传到 linux 服务器,在上传的目录下进行解压

tar -zxvf redis-5.0.0.tar.gz

进入解压后的目录进行编译 make,指定目录安装 make install 如 /usr/local/redis

cd /redis-5.0.0/

make (这里进 redis-5.0.0/ 目录下直接 make 编译就好了)

make install PREFIX=/usr/local/redis(指定编译路径)
进入安装目录 bin 下

cd /usr/local/redis/bin

此时的目录结构是这样的

CentOS 7 下 Redis5 安装部署与开机自启动

•redis-benchmark redis 性能测试工具
•redis-check-aof AOF 文件修复工具
•redis-check-rdb RDB 文件修复工具
•redis-cli redis 命令行客户端
•redis.conf redis 配置文件
•redis-sentinal redis 集群管理工具
•redis-server redis 服务进程

4. 启动 Redis

1. 前端模式启动

/usr/local/redis/bin/redis-server
或 cd /usr/local/redis/bin 运行 ./redis-server

前端模式启动的缺点是 ssh 命令窗口关闭则 redis-server 程序结束,故不推荐使用此方法。

CentOS 7 下 Redis5 安装部署与开机自启动

2. 后端模式启动

1)从 redis 的源码目录中复制 redis.conf 到 redis 的安装目录 bin 下。

cp redis.conf /usr/local/redis/bin

CentOS 7 下 Redis5 安装部署与开机自启动

2)修改配置文件(是否后台启动)

vim /usr/local/redis/bin/redis.conf

找到 daemonize  按 i 进入编辑模式 把 no 改为 yes

按 ESC + :wq 保存退出

CentOS 7 下 Redis5 安装部署与开机自启动

执行如下命令启动 redis:

cd /usr/local/redis/bin

./redis-server ./redis.conf

3. 查看是否启动成功

ps aux|grep redis

redis 默认端口为 6379,可更改 redis.conf 文件,修改端口号

CentOS 7 下 Redis5 安装部署与开机自启动

5. 关闭 redis

强行终止 redis 进程可能会导致 redis 持久化数据丢失。

正确停止 Redis 的方式应该是向 Redis 发送 SHUTDOWN 命令,

命令为:

cd /usr/local/redis
./bin/redis-cli shutdown

强行终止 redis

pkill redis-server

6. 让 redis 开机自启

方法一:
1) vim /etc/init.d/redis  编写脚本 (输入下面的代码)

# chkconfig: 2345 10 90
# description: Start and Stop redis

PATH=/usr/local/bin:/sbin:/usr/bin:/bin

REDISPORT=6379 #实际环境而定
EXEC=/usr/local/redis/bin/redis-server #实际环境而定
REDIS_CLI=/usr/local/redis/bin/redis-cli #实际环境而定

PIDFILE=/var/run/redis.pid
CONF=”/usr/local/redis/bin/redis.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
                if [“$?”=”0”]
                then
                        echo “Redis is running…”
                fi
                ;;
        stop)
                if [! -f $PIDFILE]
                then
                        echo “$PIDFILE exists, process is not running.”
                else
                        PID=$(cat $PIDFILE)
                        echo “Stopping…”
                        $REDIS_CLI -p $REDISPORT SHUTDOWN
                        while [-x $PIDFILE]
                        do
                                echo “Waiting for Redis to shutdown…”
                                sleep 1
                        done
                        echo “Redis stopped”
                fi
                ;;
        restart|force-reload)
                ${0} stop
                ${0} start
                ;;
        *)
                echo “Usage: /etc/init.d/redis {start|stop|restart|force-reload}” >&2
                exit 1
esac

2)  配置开机启动

chmod 755 /etc/init.d/redis #设置文件 redis 的权限,让 Linux 可以执行
chkconfig redis on    #开启服务自启动
chkconfig –list      #查看所有注册的脚本文件
service redis start  #启动
service redis stop    #关闭 redis

3)检测是否成功

reboot  #重启 – 如果是 centos6.5 学过来的,init 0 与 init 6 一样在 centos7 适用

ps aux|grep redis #查看 redis 进程是否存在

方法二:

centos 7 以上是用 Systemd 进行系统初始化的,Systemd 是 Linux 系统中最新的初始化系统(init),它主要的设计目标是克服 sysvinit 固有的缺点,提高系统的启动速度。
Systemd 服务文件以.service 结尾,比如现在要建立 redis 为开机启动,如果用 yum install 命令安装的,yum 命令会自动创建 redis.service 文件,直接用命令 systemcel enable redis.service 设置开机启动即可

 1. 在系统服务目录里创建 redis.service 文件

vim /etc/systemd/system/redis.service

写入以下内容:

[Unit]
Description=redis-server
After=network.target

[Service]
Type=forking
ExecStart=/usr/local/redis/bin/redis-server /usr/local/redis/bin/redis.conf
PrivateTmp=true

[Install]
WantedBy=multi-user.target

注意:ExecStart 配置成自己的路径

配置描述:

Description: 描述服务
After: 描述服务类别
[Service] 服务运行参数的设置
Type=forking 是后台运行的形式
ExecStart 为服务的具体运行命令
ExecReload 为重启命令
ExecStop 为停止命令
PrivateTmp=True 表示给服务分配独立的临时空间
注意:[Service] 的启动、重启、停止命令全部要求使用绝对路径
[Install] 运行级别下服务安装的相关设置,可设置为多用户,即系统运行级别为 3

2. 测试并加入开机自启

先关闭 redis-server
systemctl stop redis.service

开启 redis-server
systemctl start redis.service #如果服务是开启状态,使用此命令会启动失败。

3. 开启成功,将服务加入开机自启
systemctl enable redis.service #注意后面不能跟空格

4.  reboot #重启

5.  查看服务运行状态:systemctl status redis.service

CentOS 7 下 Redis5 安装部署与开机自启动

6. 全部命令

systemctl start redis.service #启动 redis 服务
systemctl enable redis.service #设置开机自启动
systemctl disable redis.service #停止开机自启动
systemctl status redis.service #查看服务当前状态
systemctl restart redis.service #重新启动服务
systemctl list-units –type=service #查看所有已启动的服务

7. 测试代码

CentOS 7 下 Redis5 安装部署与开机自启动

引入 jar 包:

代码:

public class JedisTest {

    @Test
    public void testJedisSingle() {
        // 创建一个 jedis 的对象。
        Jedis jedis = new Jedis(“172.20.10.7”, 6379);
        // 调用 jedis 对象的方法,方法名称和 redis 的命令一致。
        jedis.set(“key1”, “jedis test”);
        String str = jedis.get(“key1”);
        System.out.println(str);
        // 关闭 jedis。
        jedis.close();
    }
   
    /**
    * 使用连接池
    */
    @Test
    public void testJedisPool() {
        // 创建 jedis 连接池
        JedisPool pool = new JedisPool(“172.20.10.7”, 6379);
        // 从连接池中获得 Jedis 对象
        Jedis jedis = pool.getResource();
        String str = jedis.get(“key1”);
        System.out.println(str);
        // 关闭 jedis 对象
        jedis.close();
        pool.close();
    }
}

至此 redis 安装配置完毕。

good luck !

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-22发表,共计4758字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中