redis知识点-----------持续更新中

一、Redis(REmote DIctionary Server)是一个Key Value存储系统,是非常著名的NoSQL数据库之一 ,在实际项目中有广泛应用前景

二、数据类型

string是一个Map以key,value形式存储对应数据信息

hash:是以Map<string,Map<string,string>> 类型,string为key,里面的Map的key为field,value是正常value

 list:类似于java的集合

set:

zet:有序的集合

三、redis事物

multi:开启事务,之后的所有操作会放到执行队列。

exec:提交事务

如果是redis语法错误:在exec提交事务时所有的操作都不会生效。如果是语法没错执行时错误,所有的redis命令正常执行

 

四、redis的持久化

RDB(默认开启)会根据持久化设置生成二进制文件,每次redis启动的时候都会加载dump.rdb文件中的数据到内存中,AOF(需要手动设置)会将接收到的对数据的修改命令记录到磁盘文本文件中(可修改),redis重启后,通过执行AOF文件中所有命令来恢复数据。

注意:redis重启会先读取AOF文件,在读去RDB文件

修改redis.config中配置文件

RDB的持久化:这是触发条件,900秒内,1个key值被修改。(两者必须同时满足才能够)

 

AOF的持久化:默认不开启

1、需要设置appendonly为yes,下面的是存储的文件名,dir为指定文件存放目录

 

 

2、appendfsync:配置向aof文件写命令数据的策略

no:不主动进行同步操作,交友操作系统来做(每30秒一次),较快,但不安全

always:每次写入都会执行同步,慢一些,但安全

everysec:每秒执行一次同步,较平衡,速度和安全之间,这是默认选项

3、auto-aof-rewrite-min-size:允许重写的最小AOF文件大小,默认64M,当aof文件大于64M是,会开始整理aof文件,去掉无用操作命令(当数据量大时,难免会存在重复的命令,此时其实只需要最终的一条修改命令即可。)

RDB:存储的是数据快照文件,回复数据很方便,很快,

1)、有丢失数据的肯能性,会丢失最后一次快照以后更改的数据。

2)、由于经常操作磁盘,RDB会分出一个子进程,可能会影响redis暂停服务。

AOF:对数据非常严格要求,则舒勇AOF进行数据恢复,最多只会丢失1秒内的数据

五、主从复制

避免单点故障,需要将复制多份部署在多台不同的服务器上。

主(Master):负责修改操作,从(slave):负责读操作。

至少要有一个主和从,从是主的一个备份,当主宕机后,从会接替主进行修改操作。

redis-server是开启一个线程进行存储服务,可以多开几个模拟多个redis服务器

复制三份redis.config配置文件,并修改不同config的配置文件

info replication:查看当前redis服务器端的关系信息

从服务器不能写入,写入的话会报readonly操作

容灾策略:当主服务器宕机后。

slaveof no one: 将当前redis服务器提升为master

slaveof ip port:当前从服务器重新挂载到主服务器

服务器修好后,重新启动之后:slaveof ip port:当前服务器挂载到新的主服务器

六、哨兵模式

redis官方提供的高可用方案,用来监控多个redis服务实例的运行情况,哨兵不能存在一个服务器上,且数量为奇数(后续依据心跳机制进行投票来判断是否宕机)

主要任务:

监控:Sentinel不断的检查主服务器和从服务器是否按照预期正常工作

提醒:当被监控的redis出现问题,Sentinel会通知管理员或其他应用程序

自动故障转移:监控的主redis不能正常工作,Sentinel会开始进行故障迁移操作。会模拟上面的容灾策略进行

 

心跳机制:redis服务器和哨兵之间会进行反应交互,哨兵会主动 向redis发动请求,根据相应结果主观判断redis是否正常

sentinel.conf是哨兵配置文件,默认监控的redis主服务器

启动哨兵redis-sentinel 指定 sentinel.conf。

原文地址:https://www.cnblogs.com/guanyuehao0107/p/13962524.html