生活资讯
redis启动命令 、windows redis启动命令
2023-04-22 00:54  浏览:25

linux启动app命令

linux启动app命令:做 Linux 嵌入式开发,经常会遇到要设置自己的应用程序在系统开机的时候自动启动,并且一般情况我们不想安装一些额外的软件去实现此种需求。那么直接根据当前系统自带的默认的一些工具实现用户软件的开机自启动。

  本次测验的系统环境为 Ubuntu 16.04 LTS,测试内容均得到正确的验证,如果其他环境出现不一致的现象,请查阅相关的差异。

  比如先要实现下面的应用程序的开机自启动(实现的代码最下面给出,有需要的可以查看):

1. 应用程序的名称:app.bin

2. 应用程序的保存路径:/home/ubuntu/app/ 下

3. 应用程序的工作路径:/home/ubuntu/app/ 下

redis命令是什么?

1、连接操作相关命令:

quit:关闭连接(connection)。

***th:简单密码认证。

2、value操作命令:

exists(key):确认key否存。

del(key):删除key。

type(key):返值类型。

使用的注意事项

1、 Redis和Memcache都是将数据存放在内存中,都是内存数据库。不过memcache还可用于缓存其他东西,例如图片、视频等等。

2、Redis不仅仅支持简单的k/v类型的数据,同时还提供list,set,hash等数据结构的存储。

3、虚拟内存–Redis当物理内存用完时,可以将一些很久没用到的value 交换到磁盘 。

4、过期策略–memcache在set时就指定,例如set key1 0 0 8,即永不过期。Redis可以通过例如expire 设定,例如expire name 10 。

详解Redis 主从复制及主从复制原理

Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。从2010年3月15日起,Redis的开发工作由VMware主持。从2013年5月开始,Redis的开发由Pivotal赞助。

概述

在现有企业中80%公司大部分使用的是redis单机服务,在实际的场景当中单一节点的redis容易面临风险。

2、容量瓶颈。 当我们有需求需要扩容 Redis 内存时,从 16G 的内存升到 64G,单机肯定是满足不了。当然,你可以重新买个 128G 的新机器。

解决办法

要实现分布式数据库的更大的存储容量和承受高并发访问量,我们会将原来集中式数据库的数据分别存储到其他多个网络节点上。

Redis 为了解决这个单一节点的问题,也会把数据复制多个副本部署到其他节点上进行复制,实现 Redis的高可用,实现对数据的冗余备份,从而保证数据和服务的高可用。

主从复制

什么是主从复制

主从复制,是指将一台Redis服务器的数据,复制到其他的Redis服务器。前者称为主节点(master),后者称为从节点(slave),数据的复制是单向的,只能由主节点到从节点。

默认情况下,每台Redis服务器都是主节点;且一个主节点可以有多个从节点(或没有从节点),但一个从节点只能有一个主节点。

主从复制的作用

1、数据冗余: 主从复制实现了数据的热备份,是持久化之外的一种数据冗余方式。

2、故障恢复: 当主节点出现问题时,可以由从节点提供服务,实现快速的故障恢复;实际上是一种服务的冗余。

3、负载均衡: 在主从复制的基础上,配合读写分离,可以由主节点提供写服务,由从节点提供读服务(即写Redis数据时应用连接主节点,读Redis数据时应用连接从节点),分担服务器负载;尤其是在写少读多的场景下,通过多个从节点分担读负载,可以大大提高Redis服务器的并发量。

4、读写分离: 可以用于实现读写分离,主库写、从库读,读写分离不仅可以提高服务器的负载能力,同时可根据需求的变化,改变从库的数量。

5、高可用基石: 除了上述作用以外,主从复制还是哨兵和集群能够实施的基础,因此说主从复制是Redis高可用的基础。

主从复制启用

从节点开启主从复制,有3种方式:

1、配置文件: 在从服务器的配置文件中加入 slaveofmasteripmasterport。

2、启动命令: redis-server启动命令后加入 --slaveofmasteripmasterport。

3、客户端命令: Redis服务器启动后,直接通过客户端执行命令 slaveofmasteripmasterport,则该Redis实例成为从节点。

通过 info replication 命令可以看到复制的一些信息。

主从复制原理

主从复制过程大体可以分为3个阶段:连接建立阶段(即准备阶段)、数据同步阶段、命令传播阶段。

在从节点执行 slaveof 命令后,复制过程便开始运作,下面图示可以看出复制过程大致分为6个过程。

主从配置之后的日志记录也可以看出这个流程。

1、保存主节点(master)信息

执行 slaveof 后 Redis 会打印如下日志:

2、从节点与主节点建立网络连接

从节点(slave)内部通过每秒运行的定时任务维护复制相关逻辑,当定时任务发现存在新的主节点后,会尝试与该节点建立网络连接。

从节点与主节点建立网络连接。

从节点会建立一个 socket 套接字,从节点建立了一个端口为51234的套接字,专门用于接受主节点发送的复制命令。从节点连接成功后打印如下日志:

如果从节点无法建立连接,定时任务会无限重试直到连接成功或者执行 slaveofnoone 取消复制。

关于连接失败,可以在从节点执行 info replication 查看 master_link_down_since_seconds 指标,它会记录与主节点连接失败的系统时间。从节点连接主节点失败时也会每秒打印如下日志,方便发现问题:

3、发送 ping 命令

连接建立成功后从节点发送 ping 请求进行首次通信, ping 请求主要目的如下:

如果发送 ping 命令后,从节点没有收到主节点的 pong 回复或者超时,比如网络超时或者主节点正在阻塞无法响应命令,从节点会断开复制连接,下次定时任务会发起重连。

从节点发送的 ping 命令成功返回,Redis 打印如下日志,并继续后续复制流程:

4、权限验证

如果主节点设置了 requirepass 参数,则需要密码验证,从节点必须配置 master***th 参数保证与主节点相同的密码才能通过验证。如果验证失败复制将终止,从节点重新发起复制流程。

5、同步数据集

主从复制连接正常通信后,对于首次建立复制的场景,主节点会把持有的数据全部发送给从节点,这部分操作是耗时最长的步骤。

6、命令持续复制

当主节点把当前的数据同步给从节点后,便完成了复制的建立流程。接下来主节点会持续地把写命令发送给从节点,保证主从数据一致性。

作者:LoyaltyLu

链接:

Linux安装redis

wget

yum -y install gcc ***tomake ***toconf libtool make

注意: 运行yum时出现/var/run/yum.pid已被锁定,PID为xxxx的另一个程序正在运行的问题解决

rm -f /var/run/yum.pid

tar zxvf redis-5.0.8.tar.gz -C /opt

cd /opt/redis-5.0.8 make MALLOC=libc

make PREFIX=/usr/local/redis install

cd /usr/local/redis

启动Redis服务端 ./bin/redis-server

以配置文件启动Redis服务端 ./bin/redis-server ./redis.conf

启动Redis客户端 ./bin/redis-cli

启动Redis 客户端命令语法: redis-cli –h IP地址 –p 端口 //默认IP本机 端口6379

检测是否服务端启动 redis 127.0.0.1:6379 PING

客户端退出 shutdown

显示redis的情况 ps -ef |grep redis

杀死redis进程 kill -9 8169

错误 ./bin/redis-cli -h 127.0.0.1 -p 6379 -u wc19981220

报错: Invalid URI scheme 将-u换成-a即可

正确 ./bin/redis-cli -h 127.0.0.1 -p 6379 -a wc19981220

redis 如何重启?

1、如果是用apt-get或者yum install安装的redis,可以直接通过下面的命令停止/启动/重启redis:/etc/init.d/redis-server stop/etc/init.d/redis-server start/etc/init.d/redis-server restart

2、如果是通过源码安装的redis,则可以通过redis的客户端程序redis-cli的shutdown命令来重启redis。

redis集群如何解决重启不了的问题

redis使用集群部署,如果遇到断电或者服务器重启,当再次启动的时候,有时候会启动不了。需要使用trib的fix命令进行修复。如果修复还是不行的话,可以清除节点数据再重新建集群,前提要备份之后操作。

1、使用redis-cli连接上redis其中一台:redis-cli -c -h xxx -p 7001,输入cluster info查看当前集群的状态。

2、可以使用trib的check检测的集群状态:redis-trib.rb check xxx:7001,[ERR] Not all 16384 slots are covered by nodes。

3、如果出现以上的错误,可以尝试使用fix命令修复:redis-trib.rb fix xxx:7001。修复完成之后,在使用trib的check命令查看状态。

4、如果通过fix方式修复不了,pkill redis停止之前的redis进程,然后把aof,rdb,nodes节点文件删除,删除之前需要备份。

5、然后启动各个redis节点。

6、创建redis集群:redis-trib.rb create --replicas 1 xxx:7000 xxx:7001 xxx:7002 xxx:7003 xxx:7004 xxx:7005。

7、集群创建完成之后,再次连接redis查看集群状态,redis服务已经启动完成。

redis基本操作命令

redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。

MULTI

说明:

标记一个事务块的开始。

事务块内的多条命令会按照先后顺序被放进一个队列当中,最后由 EXEC 命令原子性(atomic)地执行。

返回值:

总是返回 OK 。

示例:

DISCARD

说明:

取消事务,放弃执行事务块内的所有命令。

如果正在使用 WATCH 命令监视某个(或某些) key,那么取消所有监视,等同于执行命令 UNWATCH 。

返回值:

总是返回 OK 。

示例:

WATCH

说明:

监视一个(或多个) key ,如果在事务执行之前这个(或这些) key 被其他命令所改动,那么事务将被打断。

返回值:

总是返回 OK 。

UNWATCH

说明:

取消 WATCH 命令对所有 key 的监视。

如果在执行 WATCH 命令之后, EXEC 命令或 DISCARD 命令先被执行了的话,那么就不需要再执行 UNWATCH 了。

因为 EXEC 命令会执行事务,因此 WATCH 命令的效果已经产生了;而 DISCARD 命令在取消事务的同时也会取消所有对 key 的监视,因此这两个命令执行之后,就没有必要执行 UNWATCH 了。

返回值:

总是返回 OK 。

EXEC

说明:

执行所有事务块内的命令。

假如某个(或某些) key 正处于 WATCH 命令的监视之下,且事务块中有和这个(或这些) key 相关的命令,那么 EXEC 命令只在这个(或这些) key 没有被其他命令所改动的情况下执行并生效,否则该事务被打断(abort)。

返回值:

事务块内所有命令的返回值,按命令执行的先后顺序排列。

当操作被打断时,返回空值 nil 。

示例:

Redis 提供了简单的事务,之所以说它简单,主要是因为它不支持事务中的回滚特性,同时无法实现命令之间的逻辑关系计算,当然也体现了 Redis 的 “keep it simple” 的特性。

关于redis启动命令和windows redis启动命令的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

发表评论
0评