摘要:
单线程为什么能支持10w+的QPS? 我们经常听到Redis是一个单线程程序。准确的说Redis是一个多线程程序,只不过请求处理的部分是用一个线程来实现的。 阿里云对Redis QPS的测试结果如下所示 「Redis是如何用单线程来实现每秒10w+的QPS的呢?」 使用IO多路复用 非CPU密集型任 阅读全文
摘要:
单线程为什么能支持10w+的QPS? 我们经常听到Redis是一个单线程程序。准确的说Redis是一个多线程程序,只不过请求处理的部分是用一个线程来实现的。 阿里云对Redis QPS的测试结果如下所示 「Redis是如何用单线程来实现每秒10w+的QPS的呢?」 使用IO多路复用 非CPU密集型任 阅读全文
摘要:
Redis 大key Redis使用过程中经常会有各种大key的情况, 比如: 单个简单的key存储的value很大 hash, set,zset,list 中存储过多的元素(以万为单位) 由于redis是单线程运行的,如果一次操作的value很大会对整个redis的响应时间造成负面影响,所以,业务 阅读全文
摘要:
redis作为一个高性能内存数据库,在实际业务中应用的非常广泛,虽然redis的性能很好,但是在实际使用过程中,如果使用不当,也会造成一些性能问题,比如数据中存在大key。什么是大key?顾名思义就是单个key中的数据比较大,通常来说,单个key的value值不会很大,这种情况下,key的读取,删除 阅读全文
摘要:
什么是 Redis 大 key单个key 存储的 value 很大hash, set,zset,list 结构中存储过多的元素可能存在 Redis 大 key 的业务场景1.配送范围特别大的门店2.促销活动特别多的门店、商家等3.高频用户下的订单列表... Redis 大 key 的危害OPS 低也 阅读全文
摘要:
Redission 1、原理 2、源码中加锁lua代码 if (redis.call('exists', KEYS[1]) == 0) then redis.call('hset', KEYS[1], ARGV[2], 1); redis.call('pexpire', KEYS[1], ARGV[ 阅读全文
摘要:
普通实现 说道Redis分布式锁大部分人都会想到:setnx+lua,或者知道set key value px milliseconds nx。后一种方式的核心实现命令如下: - 获取锁(unique_value可以是UUID等) SET resource_name unique_value NX 阅读全文
摘要:
为什么需要分布式锁 引入经典的秒杀情景,100件商品供客户抢。如果是单机版的话,我们使用synchronized 或者 lock 都可以实现线程安全。但是如果多个服务器的话,synchronized 和 lock 就不管用了(废话,怎么可能管用,都不在同一段代码了)。 分布式锁就是被设计出来实现多个 阅读全文
摘要:
1. 本地锁 常用的即 synchronize 或 Lock 等 JDK 自带的锁,只能锁住当前进程,仅适用于单体架构服务。 而在分布式多服务实例场景下必须使用分布式锁 哦哟!才知道,原来大厂的Redis分布式锁都这么设计 2 分布式锁 2.1 分布式锁的原理 厕所占坑理论 可同时去一个地方“占坑” 阅读全文
摘要:
什么是分布式锁 说到Redis,我们第一想到的功能就是可以缓存数据,除此之外,Redis因为单进程、性能高的特点,它还经常被用于做分布式锁。 锁我们都知道,在程序中的作用就是同步工具,保证共享资源在同一时刻只能被一个线程访问,Java中的锁我们都很熟悉了,像synchronized 、Lock都是我 阅读全文
摘要:
Databus和canal都能够提供实时从数据库获取变更,并提供给下游的实时消费流的功能。 本文针对两个系统实现和应用上的不同点,做了一个简单的对比: ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 阅读全文
|