前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >CentOS 7下Redis5安装部署与开机自启动

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

作者头像
星哥玩云
发布2022-08-18 14:29:56
9080
发布2022-08-18 14:29:56
举报
文章被收录于专栏:开源部署

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

此时的目录结构是这样的

•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程序结束,故不推荐使用此方法。

2.后端模式启动

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

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

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

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

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

按ESC + :wq 保存退出

执行如下命令启动redis:

cd /usr/local/redis/bin

./redis-server ./redis.conf

3.查看是否启动成功

ps aux|grep redis

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

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

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.测试代码

引入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 !

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 Redis
腾讯云数据库 Redis(TencentDB for Redis)是腾讯云打造的兼容 Redis 协议的缓存和存储服务。丰富的数据结构能帮助您完成不同类型的业务场景开发。支持主从热备,提供自动容灾切换、数据备份、故障迁移、实例监控、在线扩容、数据回档等全套的数据库服务。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档