随笔分类 -  redis

摘要:为什么使用Redis做缓存 MySQL缺点 单机连接数目有限 对数据进行写速度慢 Redis优点 内存操作数据速度快 IO复用,速度快 单线程模型,避免线程切换带来的开销,速度快 一致性问题 读数据的时候首先去Redis里读,没有读到再去MySQL里读,读回来之后更新到Redis里作为下一次的缓存。 阅读全文
posted @ 2019-05-05 19:09 AshOfTime 阅读(13903) 评论(0) 推荐(0)
摘要:集群是Redis提供的Redis数据库分布式方案。 为什么需要分布式Redis 17.1 节点 节点(Nod)是集群(Cluster)基本组成元素,节点就是普通的Redis数据库,只不过该数据库运行在进群模式下。节点之间通过Cluster Meet彼此握手实现集群化。 17.2 槽指派 有点像Has 阅读全文
posted @ 2019-05-02 15:04 AshOfTime 阅读(128) 评论(0) 推荐(0)
摘要:复制是Redis集群的基础,Redis主从节点在复制的时候即使从节点因为网络分区暂时无法继续复制,主节点也会继续工作,因此根据CAP理论Redis的集群符合A可用性,不符合C一致性。当网络分区恢复后从节点会继续复制,从而实现最终一致性。 以2.8版本为分水岭,Redis复制有两种实现。 15.1 旧 阅读全文
posted @ 2019-04-29 13:53 AshOfTime 阅读(138) 评论(0) 推荐(0)
摘要:19.1 事务的实现 把多个Redis命令放到队列中,一次性执行队列里的所有命令。整个过程分为三个阶段:1、事务开始 2、命令入队 3、命令执行 19.1.1 事务开始 做了什么:改变Redis服务端的状态,把Redis服务端的状态由非事务状态切换到事务状态,非事务状态会立即响应并执行客户端的请求, 阅读全文
posted @ 2019-04-28 17:11 AshOfTime 阅读(119) 评论(0) 推荐(0)
摘要:原理 Redis数据类型及实现 过期时间实现 跳表 Redis直接操作是什么??? 持久化 事务 Redis为什么这么快 应用 保证Redis缓存和数据库一致性 路由 单线程 集群 (哈希槽,主从复制,节点选举,MOVE和ASK等等) 主从复制 如何保证高可用性 分布式锁 阅读全文
posted @ 2019-04-27 17:35 AshOfTime 阅读(154) 评论(0) 推荐(0)
摘要:AOF持久化在硬盘上保存的是对Redis进行的逻辑操作,类似InnoDB中的bin log。说白了就是你对一个Redis输入了哪些语句,AOF文件都会原封不动的保存起来,等到需要回复Redis的时候再把这些语句执行一遍。 11.1 AOF持久化的实现 AOF简单的理解是把执行的语句记录在硬盘的文件上 阅读全文
posted @ 2019-04-10 10:34 AshOfTime 阅读(509) 评论(0) 推荐(0)
摘要:Redis是一种内存数据库,掉电即失,为了解决这个问题Redis提供了RDB持久化功能,该功能可以把Redis中的内容以RDB文件的形式存储在硬盘上,并且每次RedisServer启动的时候都会尝试从RDB文件中恢复内容。 10.1 RDB文件的创建与载入 创建RDB文件可以使用SAVA BGSAV 阅读全文
posted @ 2019-04-10 10:08 AshOfTime 阅读(171) 评论(0) 推荐(0)
摘要:很重要的一章,通过两种重要的结构体介绍了单机数据库的实现,其次介绍了数据库键过期的删除策略 9.1 服务器中的数据库 对每一个Redis服务器,或者每开启的一个Redis Server进程,它都对应着一个redisServer的结构,该结构包含两个重要的属性:1、数据库数组 2、数据库数组的长度即该 阅读全文
posted @ 2019-04-08 22:27 AshOfTime 阅读(149) 评论(0) 推荐(0)
摘要:4.1基本结构 Redis中的字典和Java中的HashMap结构类似,但Redis中字典不等于哈希表。 每一个哈希表dictht结构中存储着一个指向数组的指针,该数组用于存储键值对,除此之外存储着数组的长度、已经存储的键值对的数量、用于计算索引的哈希掩码。 数组中每个节点的结构也和Java中Has 阅读全文
posted @ 2019-04-06 13:39 AshOfTime 阅读(130) 评论(0) 推荐(0)
摘要:2.1 SDS SDS(Simple Dynamic String在Redis里被用作动态字符串的实现。,是一个包含char数组的结构体。 free 空闲数组 len 已经使用的数组的长度 buf 具体保存数组的地方 2.2 SDS与C字符串的区别 C语言使用长度为N+1的字符数组来存储长度为N的字 阅读全文
posted @ 2019-03-28 16:41 AshOfTime 阅读(170) 评论(0) 推荐(0)