- 使用python来操作redis用法详解 1.1 2017.06.22 16:38* 字数 4875 阅读 96923评论 8喜欢 60 1、redis连接 redis提供两个类Redis和StrictRedis用于实现Redis的命令,StrictRedis用于实现大部分官方的命令,并使用官方的语法和命令,Redis是S... 使用python来操作redis用法详解 1.1 2017.06.22 16:38* 字数 4875 阅读 96923评论 8喜欢 60 1、redis连接 redis提供两个类Redis和StrictRedis用于实现Redis的命令,StrictRedis用于实现大部分官方的命令,并使用官方的语法和命令,Redis是S...
- 消费消息需要考虑: 会不会重复消费能不能避免重复消费重复消费了也别造成系统异常可以吗 使用MQ如何保证幂等性也是架构设计考虑的问题。 rabbitmq、rocketmq、kafka,都可能会出现消费重复消费,因为这个问题不是MQ自身保证的,是我们开发自己需要保证的。 何时重复消费? kafka有个offset概念,每个消息写进去,都有一个offset,代表他的... 消费消息需要考虑: 会不会重复消费能不能避免重复消费重复消费了也别造成系统异常可以吗 使用MQ如何保证幂等性也是架构设计考虑的问题。 rabbitmq、rocketmq、kafka,都可能会出现消费重复消费,因为这个问题不是MQ自身保证的,是我们开发自己需要保证的。 何时重复消费? kafka有个offset概念,每个消息写进去,都有一个offset,代表他的...
- 一块儿一块儿的讲解商品详情页的架构实现 1 缓存架构 第一块儿,要掌握的很好的,就是Redis架构 高并发,高可用,海量数据,备份,随时可以恢复,缓存架构如果要支撑这些要点,首当其冲地Redis就得支撑 每秒钟几十万的访问量QPS,99.99%的高可用性,TB级的海量的数据,备份和恢复,缓存架构就成功了一半了 最最简单的模式,无非就是存取Redis,存数据,取... 一块儿一块儿的讲解商品详情页的架构实现 1 缓存架构 第一块儿,要掌握的很好的,就是Redis架构 高并发,高可用,海量数据,备份,随时可以恢复,缓存架构如果要支撑这些要点,首当其冲地Redis就得支撑 每秒钟几十万的访问量QPS,99.99%的高可用性,TB级的海量的数据,备份和恢复,缓存架构就成功了一半了 最最简单的模式,无非就是存取Redis,存数据,取...
- Redis要搞高并发,就要把底层的缓存搞得很好。MySQL高并发也是通过一系列复杂分库分表。 一些电商的商品详情页,真正的超高并发,QPS上十万,甚至是百万,一秒钟百万的请求量。 光Redis是不够的,但是Redis是整个大型的缓存架构中,支撑高并发的架构里面,非常重要的一个环节: 首先,缓存中间件,缓存系统,必须能够支撑高并发再经过良好的整体的缓存架构的设计(多级缓... Redis要搞高并发,就要把底层的缓存搞得很好。MySQL高并发也是通过一系列复杂分库分表。 一些电商的商品详情页,真正的超高并发,QPS上十万,甚至是百万,一秒钟百万的请求量。 光Redis是不够的,但是Redis是整个大型的缓存架构中,支撑高并发的架构里面,非常重要的一个环节: 首先,缓存中间件,缓存系统,必须能够支撑高并发再经过良好的整体的缓存架构的设计(多级缓...
- 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 自己本身带有专...
上滑加载中
推荐直播
-
华为云码道-玩转OpenClaw,在线养虾2026/03/11 周三 19:00-21:00
刘昱,华为云高级工程师/谈心,华为云技术专家/李海仑,上海圭卓智能科技有限公司CEO
OpenClaw 火爆开发者圈,华为云码道最新推出 Skill ——开发者只需输入一句口令,即可部署一个功能完整的「小龙虾」智能体。直播带你玩转华为云码道,玩转OpenClaw
回顾中 -
华为云码道-AI时代应用开发利器2026/03/18 周三 19:00-20:00
童得力,华为云开发者生态运营总监/姚圣伟,华为云HCDE开发者专家
本次直播由华为专家带你实战应用开发,看华为云码道(CodeArts)代码智能体如何在AI时代让你的创意应用快速落地。更有华为云HCDE开发者专家带你用码道玩转JiuwenClaw,让小艺成为你的AI助理。
回顾中 -
Skill 构建 × 智能创作:基于华为云码道的 AI 内容生产提效方案2026/03/25 周三 19:00-20:00
余伟,华为云软件研发工程师/万邵业(万少),华为云HCDE开发者专家
本次直播带来两大实战:华为云码道 Skill-Creator 手把手搭建专属知识库 Skill;如何用码道提效 OpenClaw 小说文本,打造从大纲到成稿的 AI 原创小说全链路。技术干货 + OPC创作思路,一次讲透!
回顾中
热门标签