一:缓存——热数据热点数据(经常会被查询,但是不经常被修改或者删除的数据),首选是使用redis缓存,毕竟强大到冒泡的QPS和极强的稳定性不是所有类似工具都有的,而且相比于memcached还提供了丰富的数据类型可以使用,另外,内存中的数据也提供了AOF和RDB等持久化机制可以选择,要冷、热的还是忽冷忽热的都可选。结合具体应用需要注意一下:很多人用sprin ......
488
0
0
2022-04-20
尺有所短,寸有所长,看待一种技术我们不能人云亦云,而是分场景去分析。我们先看看redis吧,redis是一个开源的,基于内存并可持久化的日志型、Key-Value数据库,提供多种语言的API,是对传统关系型数据库的重要补充。redis的数据类型主要有以下几种:string(字符串)hash(哈希)list(列表)set(集合)zset(sorted set: ......
566
0
0
2022-04-20
Redis是什么Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。Redis 是一个高性能的key-value数据库。Redis的出现,很大程度补偿了memcached这类key/value存储的不足,在部 分场合可以对关系数据库起到很好的补充作用。它提供了Java,C/ ......
475
0
0
2022-04-20
1:缓存技术和框架的重要性互联网的一些高并发,高性能的项目和系统中,缓存技术是起着功不可没的作用。缓存不仅仅是key-value的简单存取,它在具体的业务场景中,还是很复杂的,需要很强的架构设计能力。我曾经就遇到过因为缓存架构设计不到位,导致了系统崩溃的案例。2:缓存的技术方案分类1)是做实时性比较高的那块数据,比如说库存,销量之类的这种数据,我们采取的实时 ......
415
0
0
2022-04-19
背景秒杀活动是绝大部分电商选择的低价促销,推广品牌的方式。不仅可以给平台带来用户量,还可以提高平台知名度。一个好的秒杀系统,可以提高平台系统的稳定性和公平性,获得更好的用户体验,提升平台的口碑,从而提升秒杀活动的最大价值。本次主要讨论阿里云云数据库Redis缓存设计高并发的秒杀系统。秒杀的特征秒杀活动对稀缺或者特价的商品进行定时,定量售卖,吸引成大量的消费者 ......
558
0
0
2022-04-18
作者 | 初一责编 | 胡巍巍不管你是从事Python、Java、Go、PHP、Ruby等等......Redis都应该是一个比较熟悉的中间件。而大部分经常写业务代码的程序员,实际工作中或许只用到了set value、GetValue两个操作,而对Redis缺乏一个整体的认识。今天就来对Redis的常见问题做一个总结。希望能够帮助到大家。1.Redis是什么 ......
488
0
0
2022-04-18
1 分组聚合的原因SQL中分组函数和聚合函数之前的文章已经介绍过,单说这两个函数有可能比较好理解,分组函数就是group by,聚合函数就是COUNT、MAX、MIN、AVG、SUM。拿上图中的数据进行解释,假设按照product_type这个字段进行分组,分组之后结果如下图。SELECT product_type from product group by ......
399
0
0
2022-04-17
Previously前两篇文章(缓存稳定性 和 缓存正确性)跟大家讨论了缓存的『稳定性』和『正确性』,缓存常见问题还剩下『可观测性』和『规范落地&工具建设』稳定性正确性可观测性规范落地和工具建设上周文章发完之后,很多同学对我留的问题进行了深入的讨论,我相信经过深度的思考,会让你对缓存一致性的理解更加深刻!首先,各个 Go 群和 go-zero 群里有 ......
315
0
0
2022-04-17
我是面试官现在很多面试官还是喜欢问:“在你的项目里面有没有用过缓存?redis还是memcached?”,如果你连缓存都没有用过,那么你直接就被pass了。那么有的网友会说:“我知道如何用redis实现分布式锁”,面对这个回答面试官肯定很喜欢,瞬间对你产生了好感,如果你再回答的详细一点,拿到offer的概率就更大了。那么,你知道如何利用redis实现分布式锁 ......
444
0
0
2022-04-16
面试题如何保证缓存与数据库的双写一致性?面试官心理分析你只要用缓存,就可能会涉及到缓存与数据库双存储双写,你只要是双写,就一定会有数据一致性的问题,那么你如何解决一致性问题?面试题剖析一般来说,如果允许缓存可以稍微的跟数据库偶尔有不一致的情况,也就是说如果你的系统不是严格要求 “缓存+数据库” 必须保持一致性的话,最好不要做这个方案,即:读请求和写请求串行化 ......
397
0
0
2022-04-15
最近在看 UNIX 网络编程并研究了一下 Redis 的实现,感觉 Redis 的源代码十分适合阅读和分析,其中 I/O 多路复用(mutiplexing)部分的实现非常干净和优雅,在这里想对这部分的内容进行简单的整理。几种 I/O 模型为什么 Redis 中要使用 I/O 多路复用这种技术呢?首先,Redis 是跑在单线程中的,所有的操作都是按照顺序线性执 ......
412
0
0
2022-04-14
Previously缓存系统涉及的问题和知识点是比较多的,我主要分为以下几个方面来跟大家探讨:稳定性正确性可观测性规范落地和工具建设 我们分析了缓存系统的稳定性,介绍了 go-zero 是怎么解决缓存穿透、缓存击穿、缓存雪崩问题的。比较浅显易懂,且具有比较强的实战意义,推荐一读。本文作为系列文章第二篇,主要跟大家探讨『缓存数据一致性』缓存正确性上篇文章提到, ......
426
0
0
2022-04-14
Redis 是被广泛使用的基础软件之一,对于架构师和运维人员来说,了解 Redis 的高可用方案和背后的原理,是必备的基础知识。本文作者深入分析了 Redis 高可用的方方面面,并且做了有效总结,相信对广大读者可以起到很好的领路作用。Redis 中为了实现高可用采用了如下两个方式:主从复制数据。采用哨兵监控数据节点的运行情况,一旦主节点出现问题由从节点顶上继 ......
338
0
0
2022-04-14
本文深入浅出的介绍了Redis的五种数据类型,并通过多个实用示例展示了Redis的用法。除此之外还讲述了Redis的优化方法和扩展方法。一共由三个部分组成,第一部分对Redis进行了介绍,说明了Redis的基本使用方法、它拥有的5种数据结构以及操作5种数据结构的命令,并详解了如何使用Redis去构建文章聚合网站、cookie、购物车、网页缓存。数据库行缓存等 ......
319
0
0
2022-04-14
lua与Openresty介绍lua是一个小巧的脚本语言,由标准C编写而成,几乎在所有操作系统和平台上都可以编译运行。其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。应用场景:游戏开发、独立应用脚本、redis中嵌套调用实现类似事务的功能,web容器汇总处理NGINX的过滤缓存等等逻辑Openresty介绍OpenResty是一个基于 ......
448
0
0
2022-04-14