如何把redis服务写进bat文件

如何把redis服务写进bat文件,第1张

Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、一个高性能的key-value数据库。并提供多种语言的API。说到Key-Value数据库NoSQL数据库可以想到MongoDB。
和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的 *** 作,而且这些 *** 作都是原子性的。在此基础上,redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改 *** 作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。
二、 基于windows 64bit安装
安装之前请务必确定你是Administrator管理员账号的windows用户!如果不是 Administrator用户,则可能需要以管理员身份运行 或者参考 Windows 7 启用超级管理员administrator账户的N种方法
在redis的下载页面有这样的一段话,说的意思是指redis项目未有提供对windows系统的支持,而Microsoft Open Tech提供了一个基于win64的redis实现。那就是说只支持64位系统了,32位的windows系统的同学就老老实实的换系统去吧。(^__^)
The Redis project does not officially support Windows However, the Microsoft Open Tech group develops and maintains this Windows port targeting Win64

1、 下载与安装
下载地址:>

导读:Redis是被广泛使用的基础软件之一。对于工程师和,架构师,运维人员来说,了解Redis的高可用方案和背后的原理,是必备的基础知识。本文作者深入分析了Redis高可用的方方面面,并且做了有效总结,相信对广大读者可以起到很好的领路作用。

作者 codedump codedumpinfo 博主,多年从事互联网服务器后台开发工作。可访问作者博客阅读 codedump 更多文章。

Redis中为了实现高可用(High Availability,简称HA),采用了如下两个方式:

Redis中主从节点复制数据有全量复制和部分复制之分。

全量复制使用snyc命令来实现,其流程是:

旧版本全量复制功能,其最大的问题是从服务器断线重连时,即便在从服务器上已经有一部分数据了,也需要进行全量复制,这样做的效率很低,于是新版本的Redis在这部分做了改进。

新版本Redis使用psync命令来代替sync命令,该命令既可以实现完整全同步也可以实现部分同步。

执行复制的双方,主从服务器,分别会维护一个复制偏移量:

主服务器内部维护了一个固定长度的先进先出队列做为复制积压缓冲区,其默认大小为1MB。

在主服务器进行命令传播时,不仅会将写命令同步到从服务器,还会将写命令写入复制积压缓冲区。

每个Redis服务器,都有其运行ID,运行ID由服务器在启动时自动生成,主服务器会将自己的运行ID发送给从服务器,而从服务器会将主服务器的运行ID保存起来。

从服务器Redis断线重连之后进行同步时,就是根据运行ID来判断同步的进度:

有了前面的准备,下面开始分析psync命令的流程:

前面两种情况主服务器收到psync命令之后,会出现以下三种可能:

Redis使用哨兵机制来实现高可用(HA),其大概工作原理是:

以上将Redis节点分为两类:

以上是大体的流程,这个流程需要解决以下几个问题:

以下来逐个回答这些问题。

哨兵节点通过三个定时监控任务监控Redis数据节点的服务可用性。

每隔10秒,每个哨兵节点都会向主、从Redis数据节点发送info命令,获取新的拓扑结构信息。

Redis拓扑结构信息包括了:

这样,哨兵节点就能从info命令中自动获取到从节点信息,因此那些后续才加入的从节点信息不需要显式配置就能自动感知。

这一 *** 作实际上完成了两件事情: 发现新的哨兵节点:如果有新的哨兵节点加入,此时保存下来这个新哨兵节点的信息,后续与该哨兵节点建立连接。 交换主节点的状态信息,作为后续客观判断主节点下线的依据。

每隔1秒,每个哨兵节点向主、从数据节点以及其他sentinel节点发送ping命令做心跳探测,这个心跳探测是后续主观判断数据节点下线的依据。

上面三个监控任务中的第三个探测心跳任务,如果在配置的down-after-milliseconds之后没有收到有效回复,那么就认为该数据节点“主观下线(sdown)”。

为什么称为“主观下线”?因为在一个分布式系统中,有多个机器在一起联动工作,网络可能出现各种状况,仅凭一个节点的判断还不足以认为一个数据节点下线了,这就需要后面的“客观下线”。

当一个哨兵节点认为主节点主观下线时,该哨兵节点需要通过”sentinel is-master-down-by addr”命令向其他哨兵节点咨询该主节点是否下线了,如果有超过半数的哨兵节点都回答了下线,此时认为主节点“客观下线”。

当主节点客观下线时,需要选举出一个哨兵节点做为哨兵领导者,以完成后续选出新的主节点的工作。

这个选举的大体思路是:

可以看到,这个选举领导者的流程很像raft中选举leader的流程。

在剩下的Redis从节点中,按照以下顺序来选择新的主节点:

选择了新的主节点之后,还需要最后的流程让该节点成为新的主节点:

原文地址:

>

为了将一台服务器进行关机和重启,您可以按照以下步骤进行 *** 作:

关闭所有正在运行的 Redis 实例。

使用以下命令将需要关机的服务器加入集群:

Copy coderedis-cluster add-node <服务器 IP>:<端口>  

其中 <服务器 IP> 是需要加入集群的服务器 IP 地址,<端口> 是该服务器的 Redis 端口号。

使用以下命令将需要重启的服务器从集群中移除:

Copy coderedis-cluster remove-node <服务器 IP>:<端口>  

其中 <服务器 IP> 是需要移除集群的服务器 IP 地址,<端口> 是该服务器的 Redis 端口号。

关机并重启需要关机的服务器。

Copy codesudo systemctl stop <服务器名称>  sudo systemctl restart <服务器名称>  

其中 <服务器名称> 是需要关机和重启的服务器名称。

检查 Redis 集群是否正常工作。

您可以使用以下命令检查 Redis 集群是否正常工作:

Copy coderedis-cluster status  

如果一切正常,则应该可以看到所有服务器的状态都为 "Online"。

请注意,在 *** 作 Redis 集群时必须非常小心,以免误 *** 作导致数据丢失。如果您不确定如何 *** 作 Redis 集群,请寻求专业人员的帮助。

Try again

7站VPS导航为您回答 选购VPS上>1、在写脚本前设置下redis允许在后台启动,修改redisconf文件,把daemonize no改成daemonize yes

2、开始编写脚本

我的redis安装目录为 /usr/local/redis ,redis配置文件为 /usr/local/redis/redisconf ,redis的pid文件为 /var/run/redis_6379pid

编写完后还需要赋予它可执行权限,否则报如下错误:

赋予它可执行权限: chmod +x /etc/initd/redis

Redis服务器设置密码后,使用 /etc/initd/redis restart 会出现以下信息:

出现这样的错误信息,redis 这时是没有停止服务的。
可以使用ps -ef | grep redis 查进程号 然后kill 掉,如果在deamon下还需要去删除pid文件,有点繁琐。
解决办法:

用redis-cli 密码登陆(redis-cli -a password)就OK了。
再用ps -ef | grep redis 可以看到redis进程已经正常退出。

修改redis服务脚本:
vim /etc/initd/redis
将 $CLIEXEC -p $REDISPORT shutdown 改成 $CLIEXEC -a "password" -p $REDISPORT shutdown 就可以了

把脚本添加到系统服务列表

0Redis主从架构的问题
1哨兵服务介绍
2架构图
3主从服务搭建
4配置哨兵服务
5启动哨兵服务
6验证哨兵服务

对于Redis的主从架构而言,无法实现 master 和 slave 角色的自动切换, 即当 master 出现 redis 服务异常、主机断电、磁盘损坏等问题导致 master 无法使用,而 redis 高可用无法实现自故障转移(将 slave 提升为 master),需要手动改环境配置才能切换到 slave redis 服务器。另外无法横向扩展 Redis 服务的并行写入性能, 当单台 Redis 服务器性能无法满足业务写入需求的时候就必须需要一种方式解决此问题。
1master和slave角色的无缝切换,让业务无感知从而不影响业务使用
2可以横向动态扩展Redis服务器, 从而实现多台服务器并行写入以实现更高并发的目的。

Sentinel进程是用于监控redis集群中Master主服务器工作的状态,在Master主服务器发生故障的时候,可以实现Master和Slave服务器的切换,保证系统的高可用,其已经被集成在 redis26+的版本中,Redis的哨兵模式到了28版本之后就稳定了下来。一般在生产环境也建议使用Redis28以后版本。哨兵(Sentinel)是一个分布式系统,你可以在一个架构中运行多个哨兵(sentinel) 进程,这些进程使用流言协议(gossipprotocols)来接收关于Master主服务器是否下线的信息,并使用投票协议(Agreement Protocols)来决定是否执行自动故障迁移,以及选择哪个 Slave 作为新的 Master。每个哨兵(Sentinel)进程会向其它哨兵(Sentinel)、Master、Slave定时发送消息,以确认对方是否”活”着,如果发现对方在指定配置时间(可配置的)内未得到回应,则暂时认为对方已掉线,也就是所谓的”主观认为宕机” ,英文名称:Subjective Down,简称SDOWN。有主观宕机,肯定就有客观宕机。当“哨兵群”中的多数 Sentinel 进程在对 Master 主服务器做出 SDOWN 的判断,并且通过SENTINEL is-master-down-by-addr 命令互相交流之后,得出的Master Server下线判断,这种方式就是“客观宕机”,英文名称是: Objectively Down, 简称 ODOWN。通过一定的 vote 算法,从剩下的 slave 从服务器节点中,选一台提升为 Master 服务器节点,然后自动修改相关配置,并开启故障转移(failover)。Sentinel 机制可以解决 master 和 slave 角色的切换问题。

安装

修改配置文件

启动服务

192168177139

192168177140

其他地方配置和主服务器一致

启动服务

查看主从状态
MASTER

SLAVE1

SLAVE2

MASTER

SLAVE1

SLAVE2

主服务器

SLAVE1:升级为主服务器

SLAVE2:主服务器变为node10

主服务器

从服务器

1 在项目根目录下: Shift + 右键 选择在此处打开命令窗口
2在命令窗口中执行: mvn compile package -Dmaventestskip=true -Ptest
3可能要等待一段时间
4把使用WinScp把 war包上传到指定的目录 例如:lottery-adminwar,上传到服务器上的,/app/123456789文件夹下,
5cd 命令切换到 目录/app/123456789下,解压包命令:jar -xvf lottery-adminwar
6返回命令 / 返回 一层
5tomcat在 /opt/tomcat-18080下 cd 命令切换到/opt/tomcat-18080/下!


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/10650276.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-10
下一篇2023-05-10

发表评论

登录后才能评论

评论列表(0条)

    保存