Redis
文章平均质量分 85
carl-zhao
I never grew up, but i never stop growing.
展开
-
雪花算法(snowflake)容器化部署支持动态增加节点
先简单的介绍一下雪花算法,雪花算法生成的Id由:1bit 不用 + 41bit时间戳+10bit工作机器id+12bit序列号,如下图:不用:1bit,因为最高位是符号位,0表示正,1表示负,所以这里固定为0时间戳:41bit,服务上线的时间毫秒级的时间戳(为当前时间-服务第一次上线时间),这里为(2^41-1)/1000/60/60/24/365 = 49.7年工作机器id:10bit,表示工作机器id,用于处理分布式部署id不重复问题,可支持2^10 = 1024个节点序列号:12bit,用原创 2021-12-12 05:52:11 · 5114 阅读 · 6 评论 -
记一次性能优化,单台4核8G机器支撑5万QPS
1、前言这篇文章的主题是记录一次Python程序的性能优化,在优化的过程中遇到的问题,以及如何去解决的。为大家提供一个优化的思路,首先要声明的一点是,我的方式不是唯一的,大家在性能优化之路上遇到的问题都绝对不止一个解决方案。2、如何优化首先大家要明确的一点是,脱离需求谈优化都是耍流氓,所以有谁跟你说在xx机器上实现了百万并发,基本上可以认为是不懂装懂了,单纯的并发数完全是无意义的。其次,我们优化之前必须要有一个目标,需要优化到什么程度,没有明确目标的优化是不可控的。再然后,我们必须明确的找出性能瓶颈在转载 2021-04-27 07:00:27 · 683 阅读 · 0 评论 -
由 RedisTemplate 事务 enableTransactionSupport 引发的血案
在最近的项目当中因为使用了类似字典表的数据所以我使用的 Spring Farmework 当中的 Cache 抽象,通过 Redis 来做为缓存。因为原有项目当中配置了 Redis,而且项目是基于 Spring Boot 构建的,并没有去除 Redis 的自动依赖(RedisAutoConfiguration)。导致有些 Redis 的有些类是基于项目中自己配置的 RedisTemplate,而有些又是引用的 Spring Boot 中 Redis 的自动配置生成的 RedisTemplate。所以我就把原创 2020-09-16 21:55:01 · 3210 阅读 · 0 评论 -
Spring Boot Cache 集成 Spring Data Redis 1.x 与 2.x 的差异
自Spring 3.1起,提供了类似于@Transactional注解事务的注解Cache支持,且提供了Cache抽象,在此之前一般通过AOP实现。通过 Spring Cache 可以很方便的管理我们的缓存。使用Spring Cache的好处:提供基本的Cache抽象,方便切换各种底层Cache;通过注解Cache可以实现类似于事务一样,缓存逻辑透明的应用到我们的业务代码上,且只需要更少的代码就可以完成;提供事务回滚时也自动回滚缓存;支持比较复杂的缓存逻辑;内存缓存 Redis 由于它支原创 2020-08-13 22:41:32 · 1002 阅读 · 1 评论 -
Spring Boot 集成 Redis 事件通知实现订单到期自动关闭
之前写过一篇文章 RabbitMQ 延迟队列实现订单自动关闭,今天介绍另外一种方式就是通过 Redis 的过期来实现订单自动关闭。1、功能概述从 Redis 2.8.0 开始,健空间通知允许客户订阅 Pub/Sub 通道以接收影响Redis数据集的事件。可以接收到的事件的例子如下:影响给定键的所有命令。接收LPUSH操作的所有键。所有键在数据库 0 中到期。事件是使用正常的发布/订阅层的Redis,所以实现发布/订阅的客户端可以使用这个功能而不需要修改。因为 Redis 发布/订阅是 f原创 2020-07-11 20:20:22 · 1753 阅读 · 0 评论 -
确保服务稳定 Redis 上线之前应该做的事
在互联网行业大多数的应该系统都是分步式系统。并且为了优化系统,在架构设计的时候大多数都引入了缓存中间件 – Redis。相对于 memcache 缓存中间件只支持字符串类型, Redi 拥有更多的数据类型。string:字符串是一种基本的数据类型,用于保存 key/value 类型的数据hash:哈希是一个 string 类型的 field 和 value 的映射表,hash 特别适合用于存...原创 2020-03-15 12:00:22 · 1539 阅读 · 0 评论 -
Spring AOP Redis
大家在项目中应该经常使用到缓存,一般都是先从缓存中拿数据,拿得到就直接返回;拿不到然后才从数据库中获取数据。一般代码都是和业务代码耦合在一起的。那么能不能把缓存的代码抽离开来呢?答案是可以的,看了看Spring Cache的实现,它是基于注解与AOP around通知来实现的。原创 2016-11-12 23:47:34 · 2114 阅读 · 0 评论 -
Redis 集群配置
Redis 集群中内置了 16384 个哈希槽,当需要在 Redis 集群中放置一个 key-value时,redis 先对 key 使用 crc16 算法算出一个结果,然后把结果对 16384 求余数,这样每个 key 都会对应一个编号在 0-16383 之间的哈希槽,redis 会根据节点数量大致均等的将哈希槽映射到不同的节点。原创 2017-03-09 00:08:27 · 2382 阅读 · 1 评论 -
Linux Redis 安装
Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。 它支持多种类型的数据结构,如 字符串(strings), 散列(hashes), 列表(lists), 集合(sets), 有序集合(sorted sets) 与范围查询, bitmaps, hyperloglogs 和 地理空间(geospatial) 索引半径查询。原创 2017-03-05 23:08:45 · 813 阅读 · 0 评论