
redis
qq_43641886
这个作者很懒,什么都没留下…
展开
-
vol.4 redis分片
分片是将数据划分为多个部分的方法,可以将数据存储到多台机器里面,这种方法在解决某些问题时可以获得线性级别的性能提升。 假设有 4 个 Redis 实例 R0,R1,R2,R3,还有很多表示用户的键 user:1,user:2,… ,有不同的方式来选择一个指定的键存储在哪个实例中。 最简单的方式是范围分片:例如用户 id 从 0~1000 的存储到实例 R0 中,用户 id 从 1001~2000 的存储到实例 R1 中,等等。但是这样需要维护一张映射范围表,维护操作代价很高。 还有一种方式是哈希分片:使用转载 2020-05-26 22:32:05 · 146 阅读 · 0 评论 -
vol.3 redis高可用性之 哨兵
Redis主从同步是怎么实现的? 主从节点建立连接后,从节点会进行判断 1.如果这是从节点之前没有同步过数据,属于初次复制,会进行全量重同步 那么从节点会向主节点发送PSYNC?-1 命令,请求主节点进行全量重同步。 2.如果这是从节点不说初次复制(例如出现掉线后重连), 这个时候从节点会将之前进行同步的Replication ID(一个随机字符串,标识主节点上的特定数据集)和offset(从服务器当前的复制偏移量)通过PSYNC 命令发送给主节点,主节点会进行判断, 如果Replication ID跟..转载 2020-05-26 22:24:31 · 134 阅读 · 0 评论 -
vol.2 redis持久化
持久化技术分析 redis中如何实现高可用性:持久化、复制、哨兵和集群 持久化: 持久化是最简单的高可用方法,有时甚至不被归为高可用的手段,主要作用是数据备份,即将数据存储在硬盘,保证数据不会因进程退出而丢失。 复制: 复制是高可用Redis的基础,哨兵和集群都是在复制基础上实现高可用的。复制主要实现了数据的多机备份以及对于读操作的负载均衡和简单的故障恢复。缺陷是故障恢复无法自动化、写操作无法负载均衡、存储能力受到单机的限制。 哨兵: 在复制的基础上,哨兵实现了自动化的故障恢复。缺陷是写操作无法负载均衡转载 2020-05-26 22:03:43 · 130 阅读 · 0 评论 -
vol.1 redis基础
Redis是什么? redis是一个键值对数据库,基于内存进行操作,也可以进行持久化 Redis过期key是怎么样清理的? (1)惰性清除 在访问key时,如果发现key已经过期,那么会将key删除 。 (2)定时清理 Redis配置项hz定义了serverCron任务的执行周期, 默认每次清理时间为25ms,每次清理会依次遍历所有DB,从db随机取出20个key,如果过期就删除,如果其中有5个key过期,那么就继续对这个db进行清理,否则开始清理下一个db。 (3)内存不够时清理 当执行写入命令时,如果.转载 2020-05-26 21:10:24 · 150 阅读 · 0 评论 -
缓存穿透 击穿 雪崩全解析
缓存穿透 缓存击穿表示恶意用户模拟请求很多缓存中不存在的数据,由于缓存中都没有,导致这些请求短时间内直接落在了数据库上,导致数据库异常 缓存穿透是指查询一个一定不存在的数据,由于缓存是不命中时被动写的,并且出于容错考虑,如果从存储层查不到数据则不写入缓存,这将导致这个不存在的数据每次请求都要到存储层去查询,失去了缓存的意义。在流量大时,可能DB就挂掉了,要是有人利用不存在的key频繁攻击我们的应...原创 2020-02-17 15:25:49 · 402 阅读 · 0 评论 -
领头哨兵挑选从停止服务的主数据库的从数据库中挑选一个来充当主数据库的依据
选择优先级更高的从数据库。优先级可以通过slave-priority来设置 如有多个最高优先级的从数据库,复制的命令偏移量越大(即复制的越完整)越优先 若还一样,则选择运行ID较小的从数据库 更新内部记录,将停止服务的旧的主数据库更新为新的主数据库的从数据库,使得其恢复服务时自动以从数据库的身份继续服务 ...原创 2019-12-23 21:59:03 · 119 阅读 · 0 评论 -
10月26号小记
10月26号小记 redis redis安装和启动 redis源码 动态扩容 copy-on-write 针对哈希表 详情可见 数据结构与算法之美 19|散列表(中):如何打造一个工业级水平的散列表? mysql mysql在cmd窗口出现 ‘mysql’ 不是内部或外部命令,也不是可运行的程序 或批处理文件。 可能的原因 配置环境变量,其优先级要高一点,不然可能识别不了 要配置my...原创 2019-11-03 15:58:16 · 116 阅读 · 0 评论