当前位置: 首页 > news >正文

Redis启停脚本

目录

  • 1.概述
  • 2.Redis自带脚本
  • 3.Redis安装
  • 4.修改Redis默认脚本
  • 5.注册为Service
    • 检验脚本/etc/init.d/redis-server
    • 脚本添加执行权限
    • 添加到redis-server服务
    • 启用redis-server服务
  • 6.功能验证
    • 启动服务
    • 服务状态
    • 重启服务
    • 停止服务

1.概述

解决部分老系统,如Centos6上启停Redis服务的问题。

2.Redis自带脚本

  • Redis安装包下载
wget http://download.redis.io/releases/redis-6.2.9.tar.gz
  • 脚本存放在解压后安装包路径下utils目录中,redis_init_script与redis_init_script.tpl两个文件
[root@centos utils]# pwd
# 请将/home/redis-6.2.9替换为安装包解压路径
/home/redis-6.2.9/utils
# 查看服务管理脚本
[root@centos utils]# ll redis_init_script*
-rwxrwxr-x 1 root root 1352 519 14:12 redis_init_script
-rwxrwxr-x 1 root root 1047 519 14:12 redis_init_script.tpl

3.Redis安装

参见我另一篇笔记: Redis单例部署

4.修改Redis默认脚本

vim /etc/init.d/redis-server
#!/bin/sh
#
# Simple Redis init.d script conceived to work on Linux systems
# as it does use of the /proc filesystem.### BEGIN INIT INFO
# Provides:     redis_6379
# Default-Start:        2 3 4 5
# Default-Stop:         0 1 6
# Short-Description:    Redis data structure server
# Description:          Redis data structure server. See https://redis.io
### END INIT INFO# 服务主目录
REDIS_HOME=/usr/local/redis
# 服务端口
REDISPORT=6379
# 服务端程序路径
EXEC=${REDIS_HOME}/bin/redis-server
# 客户端程序路径
CLIEXEC=${REDIS_HOME}/bin/redis-cli# PID文件路径,注意与redis.conf配置文件中保持一致
PIDFILE=/var/run/redis/redis_${REDISPORT}.pid
# 配置文件路径
CONF="${REDIS_HOME}/redis.conf"# 定义运行服务的普通用户,需要提前创建
USER="redis"
#if [ `whoami` != "${USER}" ]; then
#        exec su - "${USER}"
#fi
# 定义sudo命令
CMD="/usr/bin/sudo -u ${USER}"case "$1" in# 启动服务start)if [ -f $PIDFILE ]thenecho "$PIDFILE exists, process is already running or crashed"elseecho "Starting Redis server..."# 使用普通用户启动服务exec $CMD $EXEC $CONFfi;;# 停止服务stop)if [ ! -f $PIDFILE ]thenecho "$PIDFILE does not exist, process is not running"elsePID=$(cat $PIDFILE)echo "Stopping ..."#$CLIEXEC -p $REDISPORT shutdown# 因为Redis设置了密码,所以修改停止服务命令。/bin/kill -s TERM ${PID}while [ -x /proc/${PID} ]doecho "Waiting for Redis to shutdown ..."sleep 1done/bin/rm -rf $PIDFILEecho "Redis stopped"fi;;# 服务状态status)if [ ! -f $PIDFILE ]thenecho 'Redis is not running'elsePID=$(cat $PIDFILE)echo "Redis is running ($PID)"fi;;# 重启服务restart)$0 stopsleep 1$0 start;;*)echo "Please use start or stop as first argument";;
esac

5.注册为Service

检验脚本/etc/init.d/redis-server

  • 确保程序和配置文件路径正确
  • 确保端口是redis服务监听端口(会使用pid文件,pid文件与redis.conf中配置需一致)。

脚本添加执行权限

chmod +x /etc/init.d/redis-server

添加到redis-server服务

chkconfig --add redis-server

启用redis-server服务

# chkconfig redis-server on

6.功能验证

启动服务

[root@centos utils]# service redis-server start
Starting Redis server...
# 服务使用普通用户(redis)运行
[root@centos init.d]# ps -ef | grep 6379 | grep -v grep
redis    12530     1  0 18:54 ?        00:00:00 /usr/local/redis/bin/redis-server *:6379     

服务状态

[root@centos utils]# service redis-server status
Redis is running (11304)
[root@centos utils]# netstat -nltp | grep 6379 | grep -v grep
tcp        0      0 0.0.0.0:6379               0.0.0.0:*                   LISTEN      11304/redis-server  
tcp        0      0 :::6379                    :::*                        LISTEN      11304/redis-server  

重启服务

[root@centos utils]# service redis-server restart
Stopping ...
Waiting for Redis to shutdown ...
Redis stopped
Starting Redis server...

停止服务

[root@centos utils]# service redis-server stop
Stopping ...
Waiting for Redis to shutdown ...
Redis stopped

相关文章:

  • 淘宝扭蛋机小程序:互联网时代下行业的发展动力
  • 智慧校园的含义是什么
  • 使用Selenium进行元素定位的全面指南
  • MATLAB神经网络---lstmLayer(LSTM 长短期记忆神经网络)
  • 遥遥领先,华为《仓颉编程语言白皮书》重磅来袭!!!
  • 不清楚数据治理路线图怎么制定?跟随这个思路即可
  • AI创作在论文写作中扮演什么角色?
  • Python有哪些就业方向?就业市场广阔!
  • C# —— 构造函数
  • 【Python高级编程】新手小白必须得学会的文本文件操作,资料资源均可分享!
  • mac苹果窗口辅助工具:Magnet for mac 2.14.0中文免激活版
  • 数据采集之二主一从,485总线共享器
  • Android SurfaceFlinger——注册监听调用流程(七)
  • 如何最简单的方式使用nodejs中的http-server发布轻量级的html网页
  • settings和toolchains.xml 区别用法配置
  • [译] React v16.8: 含有Hooks的版本
  • C++11: atomic 头文件
  • crontab执行失败的多种原因
  • java架构面试锦集:开源框架+并发+数据结构+大企必备面试题
  • leetcode-27. Remove Element
  • React 快速上手 - 07 前端路由 react-router
  • React+TypeScript入门
  • zookeeper系列(七)实战分布式命名服务
  • 服务器之间,相同帐号,实现免密钥登录
  • 网页视频流m3u8/ts视频下载
  • 小程序测试方案初探
  • 与 ConTeXt MkIV 官方文档的接驳
  • 再次简单明了总结flex布局,一看就懂...
  • Android开发者必备:推荐一款助力开发的开源APP
  • Nginx惊现漏洞 百万网站面临“拖库”风险
  • 阿里云服务器如何修改远程端口?
  • # centos7下FFmpeg环境部署记录
  • # Maven错误Error executing Maven
  • #if等命令的学习
  • (1)(1.13) SiK无线电高级配置(五)
  • (12)Hive调优——count distinct去重优化
  • (13)Hive调优——动态分区导致的小文件问题
  • (51单片机)第五章-A/D和D/A工作原理-A/D
  • (DenseNet)Densely Connected Convolutional Networks--Gao Huang
  • (Matalb回归预测)PSO-BP粒子群算法优化BP神经网络的多维回归预测
  • (NO.00004)iOS实现打砖块游戏(十二):伸缩自如,我是如意金箍棒(上)!
  • (附源码)c#+winform实现远程开机(广域网可用)
  • (附源码)SSM环卫人员管理平台 计算机毕设36412
  • (附源码)计算机毕业设计大学生兼职系统
  • (六)Hibernate的二级缓存
  • (实战篇)如何缓存数据
  • (四)软件性能测试
  • .NET 3.0 Framework已经被添加到WindowUpdate
  • .Net Attribute详解(上)-Attribute本质以及一个简单示例
  • .NET 编写一个可以异步等待循环中任何一个部分的 Awaiter
  • .net/c# memcached 获取所有缓存键(keys)
  • .Net调用Java编写的WebServices返回值为Null的解决方法(SoapUI工具测试有返回值)
  • @autowired注解作用_Spring Boot进阶教程——注解大全(建议收藏!)
  • @Data注解的作用
  • @EnableWebSecurity 注解的用途及适用场景