摘要: 1. 分布式锁 1.1 简介 锁 是一种用来解决多个执行线程 访问共享资源 错误或数据不一致问题的工具 如果 把一台服务器比作一个房子,那么 线程就好比里面的住户,当他们想要共同访问一个共享资源,例如厕所的时候,如果厕所门上没有锁...更甚者厕所没装门...这是会出原则性的问题的.. 装上了锁,大家 阅读全文
posted @ 2020-07-28 11:45 wj89757 阅读(183) 评论(0) 推荐(0) 编辑
摘要: 1. 缓存预热 1.1 问题排查 缓存预热就是系统上线后,提前将相关的缓存数据直接加载到缓存系统。避免在用户请求的时候,先查询数据库,然后再将数据缓存的问题!用户直接查询事先被预热的缓存数据! - 请求数量较高 - 主从之间数据吞吐量较大,数据同步操作频度较高 1.2 解决方案 1.日常例行统计数据 阅读全文
posted @ 2020-07-28 11:36 wj89757 阅读(212) 评论(0) 推荐(0) 编辑
摘要: 1. 集群 1.1 现状问题 业务发展过程中遇到的峰值瓶颈 redis提供的服务PS可以达到10万/秒, 当前业务OPS已经达到20万/秒 内存单机容量达到256G,当前业务需求内存容量1T 使用集群的方式可以快速解决上述问题 1.2 集群架构 集群就是使用网络将若干台计算机联通起来,并提供统一的管 阅读全文
posted @ 2020-07-28 11:35 wj89757 阅读(41) 评论(0) 推荐(0) 编辑
摘要: 1. 哨兵简介-主机“宕机” 将宕机的master下线 找一个slave作为master 通知所有的slave连接新的master 启动新的master与slave 全量复制N+部分复制N 谁来确认master宕机了 找一个主?怎么找法? 修改配置后,原始的主恢复了怎么办? 2. 哨兵 哨兵(sen 阅读全文
posted @ 2020-07-28 11:34 wj89757 阅读(69) 评论(0) 推荐(0) 编辑
摘要: 1. 主从复制简介 1.1 互联网“三高”架构 高并发 高性能 高可用 1.2 Redis是否高可用 单机redis的风险与问题 问题1.机器故障 现象:硬盘故障、系统崩溃 本质:数据丢失,很可能对业务造成灾难性打击 结论:基本上会放弃使用redis. 问题2.容量瓶颈 现象:内存不足,从16G升级 阅读全文
posted @ 2020-07-28 11:24 wj89757 阅读(98) 评论(0) 推荐(0) 编辑
摘要: 1. Bitmaps 1.1 Bitmaps类型的基础操作 获取指定key对应偏移量上的bit值 getbit key offset 设置指定key对应偏移量上的bit值, value 只能是1或 0 setbit key offset value 1.2 Bitmaps类型的扩展操作 业务场景-电 阅读全文
posted @ 2020-07-28 11:13 wj89757 阅读(80) 评论(0) 推荐(0) 编辑
摘要: 1. 布隆过滤器前言 不知道从什么时候开始,本来默默无闻的布隆过滤器一下子名声大燥,在面试中面试官问到怎么避免缓存穿透,你的第一反应可能就是布隆过滤器,缓存穿透=布隆过滤器成了标配,但具体什么是布隆过滤器,怎么使用布隆过滤器不是很清楚,那今天我们就来把他说清楚,讲明白。。 1.1 缓存穿透 大家看下 阅读全文
posted @ 2020-07-28 11:08 wj89757 阅读(183) 评论(0) 推荐(0) 编辑
摘要: 1. 服务端设定 设置服务器以守护线程的方式运行 daemonize yes|no 绑定主机地址 bind 127.0.0.1 设置服务端口号 port 6379 设置数据库数量 databases 16 2. 日志配置 设置服务器以指定日志记录级别 loglevel debug|verbose|n 阅读全文
posted @ 2020-07-28 11:06 wj89757 阅读(72) 评论(0) 推荐(0) 编辑
摘要: 1. 删除策略 1.1 过期数据 redis中的数据特征 redis是一种内存级数据库, 所有数据均存放在内存中, 内存中的数据可以通过TTL指令获取其状态 XX:具有时效性的数据 -1:永久有效的数据 -2:已经过期的数据或被删除的数据或未定义的数据 过期的数据真的删除了吗? 1.2 数据删除策略 阅读全文
posted @ 2020-07-28 10:57 wj89757 阅读(131) 评论(0) 推荐(0) 编辑
摘要: 1. 锁 1.1 基于特定条件的事务执行 业务场景 天猫双11热卖过程中,对已经售罄的货物追加补货,4个业务员都有权限进行补货。补货的操作可能是一系列的操作,牵扯到多个连续操作,如何保障不会重复操作? 业务分析 多个客户端有可能同时操作同一组数据,并且该数据一旦被操作修改后,将不适用于继续操作 在操 阅读全文
posted @ 2020-07-28 10:55 wj89757 阅读(46) 评论(0) 推荐(0) 编辑
摘要: 1. RDB与AOF区别 1.1 RDB与AOF的选择之惑 对数据非常敏感, 建议使用默认的AOF持久化方案 AOF持久化策略使用everysecond,每秒钟fsync一次。该策略redis仍可以保持很好的处理性能,当出 现问题时,最多丢失0-1秒内的数据。 注意:由于AOF文件存储体积较大, 且 阅读全文
posted @ 2020-07-28 10:53 wj89757 阅读(87) 评论(0) 推荐(0) 编辑
摘要: 1. RDB的弊端 弊端 存储数据量较大,效率较低 基于快照思想,每次读写都是全部数据,当数据量巨大时,效率非常低 大数据量下的IO性能较低 基于fork创建子进程, 内存产生额外消耗 宕机带来的数据丢失风险 解决思路 不写全数据,仅记录部分数据 改记录数据为记录操作过程 对所有操作均进行记录,排除 阅读全文
posted @ 2020-07-28 10:52 wj89757 阅读(84) 评论(0) 推荐(0) 编辑
摘要: 1. 持久化简介 1.1 什么是持久化 利用永久性存储介质将数据进行保存,在特定的时间将保存的数据进行恢复的工作机制称为持久化。 1.2 为什么要进行持久化 防止数据的意外丢失,确保数据安全性 1.3 持久化过程保存什么 将当前数据状态进行保存,快照形式,存储数据结果,存储格式简单,关注点在数据 将 阅读全文
posted @ 2020-07-28 10:47 wj89757 阅读(87) 评论(0) 推荐(0) 编辑
摘要: 1. Jedis 1.1 Jedis简介 Java语言连接redis服务 Jedis SpringData Redis Lettuce C、C++、C#、Erlang... 1.2 HelloWord(Jedis版) 连接redis Jedis jedis = new Jedis(“localhos 阅读全文
posted @ 2020-07-28 10:42 wj89757 阅读(94) 评论(0) 推荐(0) 编辑
摘要: 1. key通用操作 1.1 key特征 key是一个字符串, 通过key获取red is中保存的数据 1.2 key应该设计哪些操作? 对于key自身状态的相关操作, 例如:删除, 判定存在, 获取类型等 对于key有效性控制相关操作, 例如:有效期设定, 判定是否有效, 有效状态的切换等 对于k 阅读全文
posted @ 2020-07-28 10:36 wj89757 阅读(75) 评论(0) 推荐(0) 编辑
摘要: 1. 数据类型实践案例 1.1 业务场景 人工智能领域的语义识别与自动对话将是未来服务业机器人应答呼叫体系中的重要技术,百度自研用户评价语义识别服务,免费开放给企业试用,同时训练百度自己的模型。现对试用用户的使用行为进行限速,限制每个用户每分钟最多发起10次调用 1.2 解决方案 设计计数器, 记录 阅读全文
posted @ 2020-07-28 10:33 wj89757 阅读(107) 评论(0) 推荐(0) 编辑
摘要: 1. 问题分析 有一个功能叫做领劵的订阅推送。什么是领劵的订阅推送?就是用户订阅了该劵的推送,在可领取前的一分钟就要把提醒信息推送到用户的app中。本来这个订阅功能应该是消息中心那边做的,但他们说这个短时间内做不了。所以让我这个负责优惠劵的做了-.-!。具体方案就是到具体的推送时间点了,coupon 阅读全文
posted @ 2020-07-28 10:31 wj89757 阅读(161) 评论(0) 推荐(0) 编辑
摘要: 1. sorted_set 类型 新的存储需求,数据排序有利于数据的有效展示,需要提供一种可以根据自身特征进行排序的方式 需要的存储结构:新的存储模型,可以保存可排序的数据 sorted_set类型:在set的存储结构基础上添加可排序字段 2. sorted_set 类型数据的基本操作 2.1 操作 阅读全文
posted @ 2020-07-28 10:27 wj89757 阅读(133) 评论(0) 推荐(0) 编辑
摘要: 1.set类型 1.1 set类型来源 新的存储需求:存储大量的数据,在查询方面提供更高的效率 需要的存储结构:能够保存大量的数据,高效的内部存储机制,便于查询 set类型:与hash存储结构完全相同,仅存储健,不存储值(nil),并且值是不允许重复的 1.2 set类型数据的基本操作 添加数据 s 阅读全文
posted @ 2020-07-28 10:26 wj89757 阅读(192) 评论(0) 推荐(0) 编辑