开始使用Redis
Redis是一个开源的数据库,经常被用来构建高性能的可扩展网络应用。它使用内存数据库,这使得它比其他数据库更快。
Redis用于我们的应用程序中的短期数据。它经常被用于会话或网页头数。
通过使用内存数据库,我们不需要有大的数据集,相反,我们使用小的数据块,让我们把数据存储在机器的内存中,而不是磁盘的内存中。
Redis是一个键值存储,类似于我们在JavaScript中处理对象的方式。有几种语言和框架使用Redis;包括Python,以及Node.js等后端JavaScript框架。
Redis不仅功能强大,而且稳定,理所当然地成为了大型互联网公司的首选。众多大厂在招聘的时候,不仅会要求面试者能简单地使用Redis,还要能深入地理解底层实现原理,并且具备解决常见问题的能力。可以说,熟练掌握Redis已经成为了技术人的一个必备技能。
但是,在学习和使用Redis的过程中,总不可避免地遇见一些棘手的问题
我根据自己多年的从业经验,梳理了一套系统的Redis学习方法。将纷繁复杂的Redis知识和问题归纳在“两大维度,三大主线”这个框架之中【+jcc4261获取】,帮助读者建立起系统观和全局观,从而彻底搞懂底层实现原理
Redis简介
-
Redis与Memcached区别
-
Redis优点
-
Redis缺点
Redis数据类型
-
String
-
Hash
-
List
-
Set
-
Sorted set
Redis事务
-
MULTI&EXEC(原子执行,并非互斥)
-
WATCH&UNWATCH(原子执行+乐观锁)
Redis分布式锁
-
排他锁 SETNX
-
带有超时特性的锁
Redis持久化机制
-
RDB(Redis Database,全量模式)
-
AOF(Append Only File,增量模式)
-
触发方式
-
相互比较
-
RDB最佳策略
-
AOF最佳策略
-
Redis消息队列
Redis高级数据结构
-
BitMap(String的一些其他命令)
-
过期策略
-
内存淘汰策略
-
主从复制(数据是同步的,类似于MySQL Replication)
-
哨兵 sentinel(数据是同步的)
-
集群(数据是分片的,sharing)
-
Hash映射(并非一致性哈希,而是哈希槽)
-
数据分片
-
节点间通信协议——Gossip
-
主从选举——Raft
-
功能限制
-
数据迁移/在线扩容
-
Codis
-
twemproxy
配置文件+应用场景+Lua脚本+与DB保持一致
Redis源码
-
线程模型——单线程
-
RedisObject
这份文档从构建一个键值数据库的关键架构入手,不仅带你建立起全局观,还帮你迅速抓住核心主线。除此之外,还会具体讲解数据结构、线程模型、网络框架、持久化、主从同步和切片集群等,帮你搞懂底层原理。相信这对于所有层次的Redis使用者都是一份非常完美的学习使用教程了