当前位置:首页 » 编程软件 » centos7redis启动脚本

centos7redis启动脚本

发布时间: 2023-05-04 05:15:36

① centos怎么启动redis

1.从官网下载redis-2.8.9.tar.gz之后,将redis解压在/usr/local下,目录是redis-2.8.9,然后按照官网给出的办法安装redis即可。 2.安装完在redis-2.8.9目尘滑瞎录下执行src/redis-server, 然后在另一让备个shell窗派空口执行src/redis-cli,可以正确运行。 但...

② 如何在 CentOS 7 上安装 Redis 服务器

一、安装redis

a、在redis官网下载redis:

$ wget http://download.redis.io/releases/redis-3.2.6.tar.gz
$ tar xzf redis-3.2.6.tar.gz
$ cd redis-3.2.6
$ make

b、在redis安装目录下进入utils目录,执行自动安装脚本

cd utils/

./install_server.sh

一路回车都按照默认设置执行

//执行完脚本后,会出现以下提示:

Selected config:

Port : 6379

Config file : /etc/redis/6379.conf

Log file : /var/log/redis_6379.log

Data dir : /var/lib/redis/6379

Executable : /usr/local/bin/redis-server

Cli Executable : /usr/local/bin/redis-cli

c、添加redis开机自启动

//修改文件权限

chmod 755 /etc/init.d/redis_6379

//添加自启动

chkconfig --add redis_6379

chkconfig --level 345 redis_6379on

d、检查远程服务器的6379端口是否被防火墙拦截。假如未开启,则添加

/sbin/iptables -I INPUT -p tcp --dport 6379 -j ACCEPT

/etc/init.d/iptables restart(视服务器情况而定,如果不知道的话可以选择重启服务器)

也可以在wdcp的后台系统管理--iptables添加规则

使用安骑士等防火墙软件的自行添加6379端口访问通过的规则

e、通过客户端命令行连接redis

//在本地连接

redis-cli -h 127.0.0.1 -p 6379



二、添加phpredis扩展

获取并解压安装包

cd

wget https://github.com/phpredis/phpredis/archive/develop.zip

unzip develop.zip

注意:若提示未找到“unzip”命令

解决办法:运行 yum install unzip -y

//进入目录

cd phpredis-develop

使用phpize命令添加扩展,phpize命令所在路径根据实际情况修改

/www/wdlinux/nginx_php/bin/phpize

注意:可能会有“Cannot find autoconf. Please check your autoconf installation and the$PHP_AUTOCONF environment variable. Then, rerun this script.”错误

解决办法:运行 yum install -y autoconf

再重新运行前面的phpize命令

出现类似下图的提示,则代表成功


代表生成redis.so成功,可以进到该目录去查看是否有生成。该路径也是视实际情况而定。

//php.ini中加入redis.so扩展

//加入这一行,保存退出。路径要使用上面装完redis生成redis.so的路径

extension=/www/wdlinux/nginx_php/lib/php/extensions/no-debug-non-zts-20121212/redis.so

重启web服务(重点是重启php)

通过phpinfo查看是否添加了redis扩展




③ 求教关于Centos 7开机自动启动脚本 问题。

Centos 7 中 /etc/rc.d/rc.local 这个文件权限降低了。你可以看下 ll /etc/rc.d/rc.local 看他的权限。
你可以试着加下权限。
chmod +x /etc/rc.d/rc.local

④ CentOS7 设置开机自启动脚本

两种实现方式:
方法一: (rc.local)
1、因为在 centos7 中 /etc/rc.d/rc.local 的权限被降低了,所以需要赋予其可执行权

2、赋予脚本可执行权限
假设 /usr/local/sca/start.sh 是你的脚本路径,给予执行权限

3、打开 /etc/rc.d/rc.local 文件,在末尾增加如下内容

方法二: (chkconfig)
1、将脚本移动到 /etc/rc.d/init.d 目录下

2、增加脚本的可执行权限

3、添加脚本到开机自动启动项目中

chkconfig 启动脚本规范 在脚本开头加入下面内容:

注意:不添加以上内容的话添加启动项时会提示service myservice does not support chkconfig
Linux启动优先级:

⑤ centos 安装 redis 怎么配置文件

Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库举帆帆,并提供多种语言的API。

下载

官网下载:http://redis.io/download

安装
tar zxvf redis-2.8.9.tar.gz #解压
cd redis-2.8.9 #进入目录
make #直接make 编译
make install #可使用root用户执行`make install`,将可执行文件拷贝到/usr/local/bin目录下,这样就可以直接敲名字运行程序了

启动(有三种方式)

直接启动

1、执行命令:
./redis-server & #加上`&`号使redis以后台程序方式运行

2、检测
ps -ef |grep redis #检测后台进程是否存在
netstat -lntp | grep 6379 #检测6379端口是否在监听
./redis-cli #使用`redis-cli`客户端检测连接是否正常
127.0.0.1:6379> keys *
(empty list or set)
127.0.0.1:6379> set key "hello world"
OK
127.0.0.1:6379> get key
"hello world"

3、停止
redis-cli shutdown #使用客户端
kill -9 PID #因为Redis可以妥善处理SIGTERM信号,所以直接kill -9也是可以的

通过指定配置文件启动

1、配置文件
可为redis服务启动指定配置文件,配置文件 redis.conf 在Redis根目录下:
daemonize yes #修改daemonize为yes,即默认以后台程序方式运行
port 6380 #可修改默认监听端口,原始为6379,我们修改成了6380
logfile "/home/futeng/logs/redis.log" #修改生成默认日志文件位置#修改生成默认日志文件位置
dir /home/futeng/data/redisData #修改生成默认日志文件位置

2、启动时指定配置文件
redis-server ./redis.conf #指定目录中某个配置文件
redis-cli -p 6380 #如果更改了端口,使用`redis-cli`客户端连接时,也需要指定端口

其他启停同 直接启动 方式。配置文件是非常重要的配置工具,随着使用的逐渐轿隐深入将显得尤为重要,推荐在一开始就使用配置文件。

使用Redis启动脚本设置开机自启动正雹

1、启动脚本
推荐在生产环境中使用启动脚本方式启动redis服务,启动脚本redis_init_script 位于位于Redis的 /utils/ 目录下:
#大致浏览下该启动脚本,发现redis习惯性用监听的端口名作为配置文件等命名,我们后面也遵循这个约定。#redis服务器监听的端口
REDISPORT=6379
#服务端所处位置,在make install后默认存放与`/usr/local/bin/redis-server`,如果未make install则需要修改该路径,下同。
EXEC=/usr/local/bin/redis-server
#客户端位置
CLIEXEC=/usr/local/bin/redis-cli
#Redis的PID文件位置
PIDFILE=/var/run/redis_${REDISPORT}.pid
#配置文件位置,需要修改
CONF="/etc/redis/${REDISPORT}.conf"

2、配置环境
根据启动脚本要求,将修改好的配置文件以端口为名复制一份到指定目录,需使用root用户:
mkdir /etc/redis
cp redis.conf /etc/redis/6379.conf

将启动脚本复制到/etc/init.d目录下,本例将启动脚本命名为redisd(通常都以d结尾表示是后台自启动服务):
cp redis_init_script /etc/init.d/redisd

设置为开机自启动,此处直接配置开启自启动
chkconfig redisd on

将报错误: service redisd does not support chkconfig ,需要我们在启动脚本开头添加如下两行注释以修改其运行级别:

#!/bin/sh
# chkconfig: 2345 90 10
# description: Redis is a persistent key-value database
#
再设置即可成功。
chkconfig redisd on #设置为开机自启动服务器
service redisd start #打开服务
service redisd stop #关闭服务

更清晰的话可以看下这篇哦http://www.linuxprobe.com/initial-installation-of-redis.html

⑥ 求教关于Centos 7开机自动启动脚本 问题

1. 自己新建一个脚本,如centnet-service.sh
经过后面的几个步骤后,这个脚本在开机的时候会执行,在这个脚本里面可以写你开机的时候想执行的命令,如启动tomcat,oracle等服务
2. 在脚本中输入启动服务的命令,如(开机启动tomcat):
#!/bin/bashexport JDK_HOME=/home/java/jdk1.8.0_91export JAVA_HOME=/home/java/jdk1.8.0_91/home/tomcat/apache-tomcat-8.0.36/bin/startup.sh

3. 执行如下命令,将该脚本标记为可执行文件(添加可执行的权限)
chmod +x /home/centnet/centnet-service.sh

4. 执行如下命令将/etc/rc.d/rc.local文标记为可执行文件
在centos7中,/etc/rc.d/rc.local文件的权限被降低了,开机的时候执行在自己的脚本是不能起动一些服务的,执行下面的命令可以文件标记为可执行的文件

chmod +x /etc/rc.d/rc.local

5. 打开/etc/rc.d/rc.local文件,在最后面添加如下脚本
/home/centnet/centnet-service.sh

这样,centnet-service.sh这个脚本在开机的时候就会被执行了,以后再这里面写启动服务的命令就可以了

缓存-redis 三种模式搭建和运行原理

标签: redis 缓存 主从 哨兵 集群

本文简单的介绍redis三种模式在linux的安装部署和数据存储的总结,希望可以相互交流相互提升。

对于Centos7在安装redis之前需要进行一些常用工具的安装:

关闭防火墙

正式安装redis

在redis进行maketest时候会出现一系列的异常,有如下解决方案:

用redis-server启动一下redis,做一些实验没什么意义。

要把redis作为一个系统的daemon进程去运行的,每次系统启动,redis进程一起启动,操作不走如下:

RDB和AOF是redis的一种数据持久化的机制。 持久化 是为了避免系统在发生灾难性的系统故障时导致的系统数据丢失。我们一般会将数据存放在本地磁盘,还会定期的将数据上传云服务器
RDB 是redis的snapshotting,通过redis.conf中的save配置进行设置,如 save 60 1000:

AOF 是以appendonly方式进行数据的储存的,开启AOF模式后,所有存进redis内存的数据都会进入os cache中,然后默认1秒执行一次fsync写入追加到appendonly.aof文件中。一般我们配置redis.conf中的一下指令:

AOF和RDB模式我们一般在生产环境都会打开,一般而言,redis服务挂掉后进行重启会优先家在aof中的文件。

当启动一个slave node的时候,它会发送一个PSYNC命令给master node,如果这是slave node重新连接master node,那么master node仅仅会复制给slave部分缺少的数据;否则如果是slave node第一次连接master node,那么会触发一次full resynchronization;
开始full resynchronization的时候,master会启动一个后台线程,开始生成一份RDB快照文件,同时还会将从客户端收到的所有写命令缓存在内存中。RDB文件生成完毕之后,master会将这个RDB发送给slave,slave会先写入本地磁盘,然后再从本地磁盘加载到内存中。然后master会将内存中缓存的写命令发送给slave,slave也会同步这些数据。
slave node如果跟master node有网络故障,断开了连接,会自动重连。master如果发现有多个slave node都来重新连接,仅仅会启动一个rdb save操作,用一份数据服务所有slave node。

从redis 2.8开始,就支持主从复制的断点续传,如果主从复制过程中,网络连接断掉了,那么可以接着上次复制的地方,继续复制下去,而不是从头开始复制一份。

master node会在内存中常见一个backlog,master和slave都会保存一个replica offset还有一个master id,offset就是保存在backlog中的。如果master和slave网络连接断掉了,slave会让master从上次的replica offset开始继续复制,但是如果没有找到对应的offset,那么就会执行一次resynchronization。

master在内存中直接创建rdb,然后发送给slave,不会在自己本地落地磁盘了,可以有如下配置:

slave不会过期key,只会等待master过期key。如果master过期了一个key,或者通过LRU淘汰了一个key,那么会模拟一条del命令发送给slave。

在redis.conf配置文件中,上面的参数代表至少需要3个slaves节点与master节点进行连接,并且master和每个slave的数据同步延迟不能超过10秒。一旦上面的设定没有匹配上,则master不在提供相应的服务。

sdown达成的条件很简单,如果一个哨兵ping一个master,超过了 is-master-down-after-milliseconds 指定的毫秒数之后,就主观认为master宕机
sdown到odown转换的条件很简单,如果一个哨兵在指定时间内,收到了 quorum 指定数量的其他哨兵也认为那个master是sdown了,那么就认为是odown了,客观认为master宕机

如果一个slave跟master断开连接已经超过了down-after-milliseconds的10倍,外加master宕机的时长,那么slave就被认为不适合选举为master

(down-after-milliseconds * 10) + milliseconds_since_master_is_in_SDOWN_state

每次一个哨兵要做主备切换,首先需要quorum数量的哨兵认为odown,然后选举出一个slave来做切换,这个slave还得得到majority哨兵的授权,才能正式执行切换;

(2)SENTINEL RESET *,在所有sentinal上执行,清理所有的master状态
(3)SENTINEL MASTER mastername,在所有sentinal上执行,查看所有sentinal对数量是否达成了一致

4.3.2 slave的永久下线

让master摘除某个已经下线的slave:SENTINEL RESET mastername,在所有的哨兵上面执行.

redis的集群模式为了解决系统的横向扩展以及海量数据的存储问题,如果你的数据量很大,那么就可以用redis cluster。
redis cluster可以支撑N个redis master,一个master上面可以挂载多个slave,一般情况我门挂载一个到两个slave,master在挂掉以后会主动切换到slave上面,或者当一个master上面的slave都挂掉后,集群会从其他master上面找到冗余的slave挂载到这个master上面,达到了系统的高可用性。

2.1 redis cluster的重要配置

2.2 在三台机器上启动6个redis实例

将上面的配置文件,在/etc/redis下放6个,分别为: 7001.conf,7002.conf,7003.conf,7004.conf,7005.conf,7006.conf

每个启动脚本内,都修改对应的端口号

2.3 创建集群

解决办法是 先安装rvm,再把ruby版本提升至2.3.3

使用redis-trib.rb命令创建集群

--replicas: 表示每个master有几个slave

redis-trib.rb check 192.168.31.187:7001 查看状体

3.1 加入新master

以上相同配置完成后,设置启动脚本进行启动;然后用如下命令进行node节点添加:

3.2 reshard一些数据过去

3.3 添加node作为slave

3.4 删除node

⑧ CentOS7设置Redis开机启动

记下坑的流水账

安装都完成了,redis我安装在单独的redis用户里;
所以安装目录就是/home/redis/redis-6.0.8/

配置文件的方式来做开机启动;
/home/redis/redis-6.0.8/utils/redis_init_script 使用redis自己的启动脚本,将该脚本cp到/etc/init.d/中,顺便改名redisd,d结尾的表示自启动服务(大概);
脚本里面部分内容需要做修改:
EXEC= 是服务器程序位置+程序名称,位置改成自己的:
/home/redis/redis-6.0.8/src/redis-server
CLIEXEC= 是客颂饥户端的,同样有必要的话就修改/home/redis/redis-6.0.8/src/redis-cli
CONF=配置文件位置,的安装目录里redis.conf到这里指定的位置,顺便改名字成败樱绝默认端口号,或者设置自己想要的目录也行:/etc/redis/6379.conf。
配置文件内容要改,比如:
是否守护进程daemonize no改成yes
屏蔽 bind 127.0.0.1

这图

chkconfig --list 查看自启动服务
chkconfig --add redisd 把redis加入其中
chkconfig redisd on 开
reboot 重启
ps -ef|grep redis看看成功没察姿有

service redisd start 直接开起服务

service redisd stop 关闭redis
设置密码会报错(error) NOAUTH Authentication required
那么网上有教:在启动脚本里改一下加入密码变量

那么,就是不安全,自己练习机无所谓了

⑨ CENTOS7开机自启动脚本

1、因为在centos7中 /etc/rc.d/rc.local 的权限被降低了,所以需要赋予其可执行权

2、赋予脚本可执行权限
假设 /usr/local/script/autostart.sh 是你的脚本路径,给予执行权限

3、打开 /etc/rc.d/rc.local 文件,在末尾增加如下内容

1、将脚本移动到 /etc/rc.d/init.d 目录下

2、增加脚本的可执行权限

3、添加脚本到开机自动启动项目中

chkconfig启动脚本规范 在脚本开头加入下面内容:

说明:chkonfig后面是启动级别和优先级,description后面是服务描述。如上面脚本意思是,

服务必须在运行级2,3,4,5下被启动或关闭,启动的优先级是90,停止的优先级是10。

优先级范围是0-100,数字越大,优先级越低。

Linux启动优先级

运行级别就是操作系统当前正在运行的功能级别。这个级别从0到6 ,具有不同的功能。

这些级别在/etc/inittab文件里指定。这个文件是init程序寻找的主要文件,最先运行的服务是那些放在/etc/rc.d 目录下的文件。
不同的运行级定义如下:(可以参考Linux里面的/etc/inittab)

⑩ Centos7.x Redis6.2.5 Cluster搭建

官方地址:

前提条件:

Redis Cluster 不使用一致性哈希,而是使用不同形式的分片 每个键在概念上都是我们所谓的 哈希槽的一部分 。
Redis Cluster 有 16384 个哈希槽,计册清算哈希值是多少 给定密钥的插槽,我们只需取密钥的 CRC16 模 16384。
Redis 集群中的每个节点都负责哈希槽的一个子集, 例如,您可能有一个包含 3 个节点的集群,其中:
节点 A 包含从 0 到 5500 的哈希槽。
节点 B 包含从 5501 到 11000 的哈希槽。
节点 C 包含从 11001 到 16383 的哈希槽。

如果报错 ERR This instance has cluster support disabled 的话,说明集群未开启。

本例子是在一台服务器上面做的实验,只是创建了6个目录,启了6个redis-server而已。

创建一个 redis.conf每个目录中的文件,从 7000 到 7005。 作为配置文件的模板,只需使用上面的小示例, 但一定要更换端口号 7000使用正确的端口号 根据目录名。

通过 ps aux|grep redis 查看redis的启动情况。

如果不想通过配置和执行来创建Redis集群 如上所述,手动单个实例,有一个更简单的 系统(但您不会了解相同数量的操作细节)。

只需检查 utils/create-clusterRedis 发行版中的目录。 有一个脚本叫做 create-cluster里面(与目录同名 它包含在)中,它是一个简单的 bash 脚本。 为了开始 一个有 3 个主节点和 3 个从节点的 6 节点集群只需输入以下内容 命令:

回复 yes在第 2 步中,当 redis-cli实用程序要你接受 集群布局。

您现在可以与集群交互,第一个节点将从端口 30001 开始 默认情况下。 完成后,使用以下命令停止集群:

请阅读 README在此目录中以获取有关如何操作的更多信息 运行脚本。

create-cluster.sh

集群信息

集群节点

我上面的例子我们可以看出,设置的key会被分配到不同的实例去。
现在很多的sdk都支持move,例如:phpredis。

我们先查看州指前下当前的集群情况。

目前 7000 , 7001 , 7002 是 master 角色, 7003 , 7004 , 7005 是 slave 角色。

然后我们将 7001 这个端口的redis服务的进程杀掉。

7004.log 日志,发现 7001 主挂了,然后将自己升级为master。

查询当前的集群状态如下:

我们可以看出, 7004 升级了 master , 7001 是 fail 状态。

启动 7001 的redis服务。
7001.log 中可以发现,自己变成了 slave 。

此时我们再来看下集群情况:

目前 7000 , 7002 , 7004 是 master角色, 7001 , 7003 , 7005 是 slave角色,自动进行了故障切换。

如果配置了 requirepass 的话, masterauth 必须需要配置,不然 master 与 slave 不能自动切换。

修改配置文件 redis.conf 中的 cluster-enabled 参数的值为 yes 并把参数前#去除,重启Redis服务器。

在命令尾部追加 2>/dev/null 即可。

我们继续在 cluster-test 目录下,创建 7006 目录,配置和之前的一样,不同就是端口以及日志路径,然后启动服务即可。

看下最新的集群情况

添加一个 7006 的从节点。

在 cluster-test 目录下,创建 7007 目录,配置和之前的一样,不同就是端口以及日志路径,然后逗锋启动服务即可。

看下最新的集群情况

从上面集群情况可以看出了问题,新增加的 7006 , 7007 的虽然增加到了集群里面,但是没有分配slot。

分配后的集群情况

缩容前:

将 7006 的slot给了 7000 。

缩容后:

删除了 7006 , 7007 后的集群情况

热点内容
oracle测试sql 发布:2025-07-08 03:16:54 浏览:973
php壁纸源码 发布:2025-07-08 03:04:26 浏览:320
android应用层 发布:2025-07-08 02:42:32 浏览:301
大唐存储销量 发布:2025-07-08 02:41:11 浏览:582
脚本怎么打开 发布:2025-07-08 02:41:06 浏览:822
贵州电信iPtv升级服务器地址 发布:2025-07-08 02:38:48 浏览:412
电脑怎么链接本地服务器 发布:2025-07-08 02:34:22 浏览:147
android调试webview 发布:2025-07-08 02:26:28 浏览:358
压缩袋鞋子 发布:2025-07-08 02:21:30 浏览:752
为什么安卓打吃鸡感觉有延迟 发布:2025-07-08 02:09:32 浏览:168