- 1 redis不可用是什么? 机器死了,宕机了 jvm进程oom了,挂了 机器cpu打满了,不工作了, hang死了 磁盘突然满了,系统各种IO报错了,不工作了 不可用 请求过来,什么都没有空了,没有任何的响应,系统run不起来了,也没法卖东西了。 各种原因,都可能导致你的系统就挂掉了,没法对外提供服务了。 一帮人,工程师,连夜抢修,但是,问题在于,在抢... 1 redis不可用是什么? 机器死了,宕机了 jvm进程oom了,挂了 机器cpu打满了,不工作了, hang死了 磁盘突然满了,系统各种IO报错了,不工作了 不可用 请求过来,什么都没有空了,没有任何的响应,系统run不起来了,也没法卖东西了。 各种原因,都可能导致你的系统就挂掉了,没法对外提供服务了。 一帮人,工程师,连夜抢修,但是,问题在于,在抢...
- Redis将serverCron作为时间事件来运行,确保它每隔一段时间自动运行一次。 serverCron需在Redis服务器运行期间一直定期运行,所以它是一个循环时间事件: serverCron 会一直定期执行,直到服务器关闭。 Redis 2.6 规定 serverCron 10次/s, 即每 100ms/次。 Redis 2.8 开始,用户可以通过修改 hz 选... Redis将serverCron作为时间事件来运行,确保它每隔一段时间自动运行一次。 serverCron需在Redis服务器运行期间一直定期运行,所以它是一个循环时间事件: serverCron 会一直定期执行,直到服务器关闭。 Redis 2.6 规定 serverCron 10次/s, 即每 100ms/次。 Redis 2.8 开始,用户可以通过修改 hz 选...
- 1 设置带过期时间的 key # 时间复杂度:O(1),最常用的方式 expire key seconds # 字符串独有的方式 setex(String key, int seconds, String value) 12345 除了string独有设置过期时间方法,其他类型都需要依靠expire方法来设置时间。 如果没有设置时间,那缓存就是永不过期。 如果设置... 1 设置带过期时间的 key # 时间复杂度:O(1),最常用的方式 expire key seconds # 字符串独有的方式 setex(String key, int seconds, String value) 12345 除了string独有设置过期时间方法,其他类型都需要依靠expire方法来设置时间。 如果没有设置时间,那缓存就是永不过期。 如果设置...
- 1 sdown和odown转换机制 两种失败状态 1.1 概念 sdown主观宕机 一个哨兵自己觉得一个master宕机odown客观宕机 quorum数量的哨兵都觉得一个master宕机 1.2 达成条件 sdown 一个哨兵ping一个master,超过is-master-down-after-millisecondsodown 一个哨兵在指定时... 1 sdown和odown转换机制 两种失败状态 1.1 概念 sdown主观宕机 一个哨兵自己觉得一个master宕机odown客观宕机 quorum数量的哨兵都觉得一个master宕机 1.2 达成条件 sdown 一个哨兵ping一个master,超过is-master-down-after-millisecondsodown 一个哨兵在指定时...
- 2 大Key 如果一个Key的Value特别大,那么可能会对Redis产生巨大的性能影响,因为Redis是单线程模型,对大Key进行查询或删除等操作,可能会引起Redis阻塞甚至是高可用切换。 应该如何查询Redis中的大Key,以及如何在设计上实现大Key的拆分呢? 2.1 单个K存储的V很大 key分类如下: 该key需要每次都整存整取 尝试将对象分拆成几... 2 大Key 如果一个Key的Value特别大,那么可能会对Redis产生巨大的性能影响,因为Redis是单线程模型,对大Key进行查询或删除等操作,可能会引起Redis阻塞甚至是高可用切换。 应该如何查询Redis中的大Key,以及如何在设计上实现大Key的拆分呢? 2.1 单个K存储的V很大 key分类如下: 该key需要每次都整存整取 尝试将对象分拆成几...
- 1 现在常见的Java工程师/架构师对缓存技术的了解和掌握程度 工作中都会用到一些缓存技术,redis/memcached基础使用,初步的集群知识 我面试过的人里,能掌握到很少的缓存架构的人,屈指可数,个位数,而且都是在大公司有过类似的大型复杂系统架构经验的人 2 缓存架构/技术掌握的不够,对你的发展带来了哪些阻碍? 2.1 工作中 如果你这块技术掌握不够,然... 1 现在常见的Java工程师/架构师对缓存技术的了解和掌握程度 工作中都会用到一些缓存技术,redis/memcached基础使用,初步的集群知识 我面试过的人里,能掌握到很少的缓存架构的人,屈指可数,个位数,而且都是在大公司有过类似的大型复杂系统架构经验的人 2 缓存架构/技术掌握的不够,对你的发展带来了哪些阻碍? 2.1 工作中 如果你这块技术掌握不够,然...
- 1 秒杀场景下的数据一致性问题 某商品库存10,A想买6,B想买5。 1.1 做梦 A先买走6,库存剩4,此时B应该无法购买5,给出数量不足提示 1.2 现实 AB获取到商品都剩10,A买走6,在A更新库存前,B又买走5,此时B更新库存,商品还剩5。 1.3 想当然地解决方案 给共享资源或对共享资源的操作加锁,来保证对资源的访问互斥。利用Reentran... 1 秒杀场景下的数据一致性问题 某商品库存10,A想买6,B想买5。 1.1 做梦 A先买走6,库存剩4,此时B应该无法购买5,给出数量不足提示 1.2 现实 AB获取到商品都剩10,A买走6,在A更新库存前,B又买走5,此时B更新库存,商品还剩5。 1.3 想当然地解决方案 给共享资源或对共享资源的操作加锁,来保证对资源的访问互斥。利用Reentran...
- 1 客户端优化 pipeline 批量操作 连接池应用 2 合理的淘汰机制 设置合理的内存大小设置合理的过期时间选择合适的淘汰策略 3 内存优化 https://redis.io/topics/memory-optimization 不同大小,底层数据结构不同: hash-max-ziplist-value 64 zset-max-ziplist-val... 1 客户端优化 pipeline 批量操作 连接池应用 2 合理的淘汰机制 设置合理的内存大小设置合理的过期时间选择合适的淘汰策略 3 内存优化 https://redis.io/topics/memory-optimization 不同大小,底层数据结构不同: hash-max-ziplist-value 64 zset-max-ziplist-val...
- 只要使用Redis缓存,就必然存在缓存和DB的数据一致性问题。若数据不一致,那么业务应用从缓存中读取的数据就不是最新数据,这会导致严重的错误。比如把电商商品的库存信息缓存在Redis,若库存信息不对,则业务层下单操作就可能出错,这是不能接受的。 为何缓存和DB数据会不一致 数据一致性是什么意思,“一致性”包含如下情况: 若缓存中有数据,则缓存的数据值需要和DB值相... 只要使用Redis缓存,就必然存在缓存和DB的数据一致性问题。若数据不一致,那么业务应用从缓存中读取的数据就不是最新数据,这会导致严重的错误。比如把电商商品的库存信息缓存在Redis,若库存信息不对,则业务层下单操作就可能出错,这是不能接受的。 为何缓存和DB数据会不一致 数据一致性是什么意思,“一致性”包含如下情况: 若缓存中有数据,则缓存的数据值需要和DB值相...
- 请求/响应协议和RTT Redis是一种基于客户端-服务端模型及请求/响应协议的TCP服务。 这意味着一个请求会遵循以下步骤: 客户端向服务端发送一个查询请求,并监听Socket返回,通常以阻塞模式,等待服务端响应服务端处理命令,并将结果返回给客户端。 因此,例如下面是4个命令序列执行情况: Client: INCR X Server: 1 Client: IN... 请求/响应协议和RTT Redis是一种基于客户端-服务端模型及请求/响应协议的TCP服务。 这意味着一个请求会遵循以下步骤: 客户端向服务端发送一个查询请求,并监听Socket返回,通常以阻塞模式,等待服务端响应服务端处理命令,并将结果返回给客户端。 因此,例如下面是4个命令序列执行情况: Client: INCR X Server: 1 Client: IN...
- 好友相关的功能至少包含 关注 / 取关我(他)的关注我(他)的粉丝共同关注我关注的人也关注他 这样的功能如果采用数据库,只是单纯得到用户的一些粉丝或者关注列表,也很简单、易实现,但若我想查出两个甚至多个用户共同关注人或想查询两个或者多个用户的共同粉丝,就会很麻烦,效率也不会很高。 但如果用 redis 去做的话就会相当的简单且高效。因为 redis 自己本身带有专... 好友相关的功能至少包含 关注 / 取关我(他)的关注我(他)的粉丝共同关注我关注的人也关注他 这样的功能如果采用数据库,只是单纯得到用户的一些粉丝或者关注列表,也很简单、易实现,但若我想查出两个甚至多个用户共同关注人或想查询两个或者多个用户的共同粉丝,就会很麻烦,效率也不会很高。 但如果用 redis 去做的话就会相当的简单且高效。因为 redis 自己本身带有专...
- 1 需求 添加积分 在用户签到的基础上添加用户积分,签到 1 天送 10 积分,连续签到 2 天送 20 积分,3 天送 30 积分,4 天以上均送 50 积分。积分排行榜 2 表设计 利用MySQL保存积分数据 这类似于一张日志表,因此数据量很大,想要统计用户积分做排行榜时,表数据可能如下: 3 实现TopN积分排行榜 MySQL 方案 统计 SQL ... 1 需求 添加积分 在用户签到的基础上添加用户积分,签到 1 天送 10 积分,连续签到 2 天送 20 积分,3 天送 30 积分,4 天以上均送 50 积分。积分排行榜 2 表设计 利用MySQL保存积分数据 这类似于一张日志表,因此数据量很大,想要统计用户积分做排行榜时,表数据可能如下: 3 实现TopN积分排行榜 MySQL 方案 统计 SQL ...
- 一切网络通信,皆需要双方遵守协议才能互联。Redis协议在以下几点之间做出了折衷: 简单的实现快速被计算机解析简单到可被人工解析 网络层 Redis在TCP端口6379上监听到来的连接,客户端连接到来时,Redis服务器为此创建一个TCP连接。在客户端与服务器端之间传输的每个Redis命令或者数据都以\r\n结尾。 请求 Redis接收由不同参数组成的命令。一... 一切网络通信,皆需要双方遵守协议才能互联。Redis协议在以下几点之间做出了折衷: 简单的实现快速被计算机解析简单到可被人工解析 网络层 Redis在TCP端口6379上监听到来的连接,客户端连接到来时,Redis服务器为此创建一个TCP连接。在客户端与服务器端之间传输的每个Redis命令或者数据都以\r\n结尾。 请求 Redis接收由不同参数组成的命令。一...
- 简介 Redisson 是一个高级的分布式协调 Redis 客服端,能帮助用户在分布式环境中轻松实现一些 Java 的对象 (Bloom filter, BitSet, Set, SetMultimap, ScoredSortedSet, SortedSet, Map, ConcurrentMap, List, ListMultimap, Queue, Blockin... 简介 Redisson 是一个高级的分布式协调 Redis 客服端,能帮助用户在分布式环境中轻松实现一些 Java 的对象 (Bloom filter, BitSet, Set, SetMultimap, ScoredSortedSet, SortedSet, Map, ConcurrentMap, List, ListMultimap, Queue, Blockin...
- 1 热点key的产生原因 1.1 用户消费的数据>>>生产的数据 比如秒杀活动、热点微博、热评,某件商品被数万次点击浏览或购买时,就会造成热点问题被大量发布、浏览的热点新闻、热点评论等读多写少场景也会产生热点问题 1.2 请求的分片过于集中,突破单点性能极限 在服务端读数据进行访问时,往往会对数据进行分片,此过程中会在某一主机 Server 上... 1 热点key的产生原因 1.1 用户消费的数据>>>生产的数据 比如秒杀活动、热点微博、热评,某件商品被数万次点击浏览或购买时,就会造成热点问题被大量发布、浏览的热点新闻、热点评论等读多写少场景也会产生热点问题 1.2 请求的分片过于集中,突破单点性能极限 在服务端读数据进行访问时,往往会对数据进行分片,此过程中会在某一主机 Server 上...
上滑加载中
推荐直播
-
基于开源鸿蒙+海思星闪开发板:嵌入式系统开发实战(Day1)
2025/03/29 周六 09:00-18:00
华为开发者布道师
本次为期两天的课程将深入讲解OpenHarmony操作系统及其与星闪技术的结合应用,涵盖WS63E星闪开发板的详细介绍、“OpenHarmony+星闪”的创新实践、实验环境搭建以及编写首个“Hello World”程序等内容,旨在帮助学员全面掌握相关技术并进行实际操作
回顾中 -
基于开源鸿蒙+海思星闪开发板:嵌入式系统开发实战(Day2)
2025/03/30 周日 09:00-12:00
华为开发者布道师
本次为期两天的课程将深入讲解OpenHarmony操作系统及其与星闪技术的结合应用,涵盖WS63E星闪开发板的详细介绍、“OpenHarmony+星闪”的创新实践、实验环境搭建以及编写首个“Hello World”程序等内容,旨在帮助学员全面掌握相关技术并进行实际操作
回顾中 -
从AI基础到昇腾:大模型初探、DeepSeek解析与昇腾入门
2025/04/02 周三 16:00-17:30
不易 / 华为云学堂技术讲师
昇腾是华为研发的AI芯片,其具有哪些能力?我们如何基于其进行开发?本期直播将从AI以及大模型基础知识开始,介绍人工智能核心概念、昇腾AI基础软硬件平台以及昇腾专区,旨在为零基础或入门级学习者搭建从AI基础知识到昇腾技术的完整学习路径。
回顾中
热门标签