Macbook Pro 终端安装redis,启动redis-server之后,为啥不能用别的命令了?

Macbook Pro 终端安装redis,启动redis-server之后,为啥不能用别的命令了?,第1张

清空数据库:打开redis-clientexe,输入命令flushdb redis自带持久化,因此是不会因为掉电而丢失所有内容的。默认情况下,redis每隔一定时间间隔会对数据库做一次内存快照,记录数据库此刻的内容;启动服务器时会自动加载内存快照。 你可以打开

1、下载源码,解压缩后编译源码。  

[root@Redis ~]# wget http://downloadredisio/releases/redis-283targz

[root@Redis ~]# tar xzf redis-283targz

[root@Redis ~]# cd redis-283

[root@Redis ~]# make

[root@Redis ~]# make install

   

2、编译完成后,在Src目录下,有四个可执行文件redis-server、redis-benchmark、redis-cli和redis-283目录下的redisconf。然后拷贝到一个目录下。 

[root@Redis ~]# mkdir /usr/redis

[root@Redis ~]# cp redis-server /usr/redis

[root@Redis ~]# cp redis-benchmark /usr/redis

[root@Redis ~]# cp redis-cli /usr/redis

[root@Redis ~]# cp redisconf /etc

[root@Redis ~]# cd /usr/redis

   

3、启动Redis服务。   

[root@Redis redis]# redis-server /etc/redisconf

   

4、然后用客户端测试一下是否启动成功。

[root@Redis redis]# redis-cli

redis> set foo bar

OK

redis> get foo

"bar"

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

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

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

关闭防火墙

正式安装redis

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

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

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

RDB和AOF是redis的一种数据持久化的机制。 持久化 是为了避免系统在发生灾难性的系统故障时导致的系统数据丢失。我们一般会将数据存放在本地磁盘,还会定期的将数据上传到云服务器。

RDB是redis的snapshotting,通过redisconf中的save配置进行设置,如 save 60 1000:

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

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

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。

在redisconf配置文件中,上面的参数代表至少需要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对数量是否达成了一致

432 slave的永久下线

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

redis的集群模式为了解决系统的横向扩展以及海量数据的存储问题,如果你的数据量很大,那么就可以用redis cluster。

redis cluster可以支撑N个redis master,一个master上面可以挂载多个slave,一般情况我门挂载一个到两个slave,master在挂掉以后会主动切换到slave上面,或者当一个master上面的slave都挂掉后,集群会从其他master上面找到冗余的slave挂载到这个master上面,达到了系统的高可用性。

21 redis cluster的重要配置

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

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

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

23 创建集群

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

使用redis-tribrb命令创建集群

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

redis-tribrb check 19216831187:7001 查看状体

31 加入新master

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

32 reshard一些数据过去

33 添加node作为slave

34 删除node

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » Macbook Pro 终端安装redis,启动redis-server之后,为啥不能用别的命令了?

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情