redis

1.CAP定理

指的是在一个分布式系统中,Consistency(一致性)、 Availability(可用性)、Partition tolerance(分区容错性),最多只能同时三个特性中的两个,三者不可兼得。
CAP是所有分布式数据库的设计标准。例如Zookeeper、Redis、HBase等的设计都是基于CAP理论的。


image.png

Zookeeper
保证CP。当主节点故障的时候,Zookeeper会重新选主。此时Zookeeper是不可用的,需要等待选主结束才能重新提供注册服务。显然,Zookeeper在节点故障的时候,并没有满足可用性的特性。在网络情况复杂的生产环境下,这样的情况出现的概率也是有的。一旦出现,如果依赖Zookeeper的部分会卡顿,在大型系统上,很容易引起系统的雪崩。这也是大型项目不选Zookeeper当注册中心的原因。
Eureka
保证AP。在Eureka中,各个节点是平等的,它们相互注册。挂掉几个节点依然可以提供注册服务的(可以配置成挂掉的比例),如果连接的Eureka发现不可用,会自动切换到其他可用的几点上。另外,当一个服务尝试连接Eureka发现不可用的时候,切换到另外一个Eureka服务上,有可能由于故障节点未来得及同步最新配置,所以这个服务读取的数据可能不是最新的。所以当不要求强一致性的情况下,Eureka作为注册中心更为可靠。
Git
其实Git也是也是分布式数据库。它保证的是CP。很容易猜想到,云端的Git仓库于本地仓库必定是要保证数据的一致性的,如果不一致会先让数据一致再工作。当你修改完本地代码,想push代码到Git仓库上时,假如云端的HEAD与本地的HEAD不一致的时候,会先同步云端的HEAD到本地HEAD,再把本地的HEAD同步到云端。最终保证数据的一致性。

redis 键值对
mongoDb 文档

2.Redis的数据结构类型

1.字符串(String) 2.Hash 3 列表(List) 4 集合(Set) 5有序集合

3.Redis多机版

3.1复制

扩展系统对读的能力。(写用主库读用从库)

image.png

特点:

       1.master/slave角色
       2.master/slave数据相同
       3.降低了master读的压力。将读转交给从库。从库负责读取。

问题:(1)无法保证高可用(因为主服务器还属于单点)

(2)没有解决master写的操作。

3.2哨兵(sentinel)

为服务器提供高可用特性,减少故障停机的出现。

image.png

特点:

1.保证高可用
2.监控各个节点
3.自动故障迁移

缺点:
主从模式,切换需要时间,丢数据。
没有解决master写的压力

一主二从三哨兵:


image.png

参考博文:https://my.oschina.net/wangxu3655/blog/2214310?nocache=1538114138145

3.3 集群(proxy)

扩展内存容量,增加机器,提高性能读写能力和存储以及提供高可用特性

image.png

3.4 集群(直连型)

image.png

Redis Cluster包含了16384个哈希槽(solt),每个Key通过CRC16算法计算后都会落在具体一个槽位上,而这个槽位是属于哪个存储节点的,则由用户自己定义分配。例如机器硬盘小的,可以分配少一点槽位,硬盘大的可以分配多一点。如果节点硬盘都差不多则可以平均分配。所以哈希槽这种概念很好地解决了一致性哈希的弊端。

https://mp.weixin.qq.com/s/Gaf2NAbY3K0ZdEeJzAUIUA

4.常用命令:

见有道云笔记:这里不再重复

5.Redis持久化

redis持久化有两种方式:

5.1 RDB:

RDB全称叫做RedisDataBase

RDB功能核心函数rdbSave(生成RDB文件)和rdbLoad(从文件加载内存)两个函数

image.png

5.1.1rdbSave函数:

将内存中的数据库数据以 RDB 格式保存到磁盘(文件)中,文件存在,那么新的 RDB 文件将替换已有的 RDB 文件。

SAVE 和 BGSAVE 两个命令是操作 rdbSave函数的区别:
(1)SAVE命令 直接调用 rdbSave ,阻塞 Redis 主进程,直到保存完成为止。在主进程阻塞期间,服务器不能处理客户端的任何请求。
(2)BGSAVE 命令则 fork 出一个子进程,子进程负责调用 rdbSave ,并在保存完成之后向主进程发送信号,通知保存已完成。因为 rdbSave 在子进程被调用,所以 Redis 服务器在 BGSAVE 执行期间仍然可以继续处理客户端的请求。

AOF(redis默认不开启)

image.png

AOF 文件的保存频率通常要高于 RDB 文件保存的频率, 所以一般来说, AOF 文件中的数据会比 RDB 文件中的数据要新。因此, 如果服务器在启动时, 打开了 AOF 功能, 那么程序优先使用 AOF 文件来还原数据。 只有在 AOF 功能未打开的情况下, Redis 才会使用 RDB 文件来还原数据。

总结:Redis 默认开启RDB持久化方式,在指定的时间间隔内,执行指定次数的写操作,则将内存中的数据写入到磁盘中。
RDB 持久化适合大规模的数据恢复但它的数据一致性和完整性较差。
Redis 需要手动开启AOF持久化方式,默认是每秒将写操作日志追加到AOF文件中。
AOF 的数据完整性比RDB高,但记录内容多了,会影响数据恢复的效率。
Redis 针对 AOF文件大的问题,提供重写的瘦身机制。
若只打算用Redis 做缓存,可以关闭持久化。
若打算使用Redis 的持久化。建议RDB和AOF都开启。其实RDB更适合做数据的备份,留一后手。AOF出问题了,还有RDB。

参考文档:https://zackku.com/redis-rdb-aof/

参考文档:

NoSql之redis演变过程.pdf

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,723评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,080评论 2 379
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,604评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,440评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,431评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,499评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,893评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,541评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,751评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,547评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,619评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,320评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,890评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,896评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,137评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,796评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,335评论 2 342

推荐阅读更多精彩内容