2 分钟前 / marketing-upyun
无障碍写文章登录 / 注册又拍云 Redis 的改进之路又拍云已认证帐号 7 人赞同了该文章作为推出国内首创可编程 CDN 服务的专业云服务提供商,又拍云利用 CDN 边缘网络规模和性能,允许客户自定义编写规则来满足常用业务场景。而为了保证这些源数据,如边缘重定向、请求限速、自定义错误页面、访问防盗链控制、 HTTP 头部管理等,能快速同步到边缘的节点服务器,在对比了多个方案以后,又拍云于 2014 年初开始使用 Redis2.8 版本作为数据同步的解决方案。 最初的架构如下: 在继续谈 Redis 改进前,我们要先了解一下技术债。
5 天前 / 北鱼扶摇
点击卡片关注、置顶公众号 技术干货,及时送达! 所谓持久化,就是把缓存内容写进磁盘永久存储(你不删,磁盘不坏可不就是永久嘛) RDBRDB 是 Redis 默认的持久化方案。RDB 快照(Redis DataBase):当满足 一定条件 的时候,会把当前内存中的数据写入磁盘,生成一个快照文件 dump.rdb。 还是先贴配置: #文件路径, dir./ #文件名称 dbfilenamedump.rdb #是否是LZF压缩rdb文件 rdbcompressionyes #开启数据校验sht rdbchecksumyes Redis 重启会通过 dump.rdb 文件恢复数据。
12 天前 / 进击的强
大家好,我是苏三,面渣逆袭系列继续,这节我们来搞定 Redis——不会有人假期玩去了吧?不会吧? 基础 1.说说什么是 RedisRedis 图标 Redis 是一种基于键值对(key-value)的 NoSQL 数据库。 比一般键值对数据库强大的地方,Redis 中的 value 支持 string(字符串)、hash(哈希)、 list(列表)、set(集合)、zset(有序集合)、Bitmaps(位图)、 HyperLogLog、GEO(地理信息定位)等多种数据结构,因此 Redis 可以满足很多的应用场景。 而且因为 Redis 会将所有数据都存放在内存中,所以它的读写性能非常出色。
22 天前 / 码农UP2U
早期文章 多线程 | FutureTask 执行流程 Java 开发手册黄山版新增规约摘录 CISP 考试资源分享 可以让反射获取到方法参数实际的变量名设置 HDFS 在 HA 模式集群下 JournalNode 节点的作用 大数据 | HDFS 元数据持久化笔记 大数据 | Java 操作 HDFS 常用 API 大数据 | HDFS 常用操作命令 做程序员的竞争越来越大,有一种三百六十行,行行转程序员的感觉。当程序员的想着转行做送外卖逃离 007、996,送外卖的却想着转行当程序员。
23 天前 / HueiFeng
谁曾想,凌晨 12 点之后,用户量暴增,出现了一个技术故障,用户无法下单,当时老大火冒三丈! 经过查找发现 Redis 报 Could not get a resource from the pool。 获取不到连接资源,并且集群中的单台 Redis 连接量很高。 大量的流量没了 Redis 的缓存响应,直接打到了 MySQL,最后数据库也宕机了…… 于是各种更改最大连接数、连接等待数,虽然报错信息频率有所缓解,但还是持续报错。 后来经过线下测试,发现存放 Redis 中的字符数据很大,平均 1s 返回数据。 可以发现,一旦 Redis 延迟过高,会引发各种问题。
27 天前 / HueiFeng
导语|本文主要讲述如何使用 golang 基于 Redis 实现延迟消息队列组件。希望对有需求的同学有所帮助。 一、背景 业务中经常会有这样的场景: 到期后自动执行指定操作; 查询某个任务是否完成,未完成等待一定时间再次查询; 回调通知,当回调失败时,等待后重试;等等还有其他很多类似的场景。 很多时候我们会直接通过一个本地定时器来帮我们完成这个任务。如果我们的系统是多实例分布式的,本地定时器就会面临很多问题,如:怎么保证重复处理的问题;统一管控的问题等等。面对本地定时器遇到的问题,我们可以使用分布式延迟队列来实现。
28 天前 / HueiFeng
前言 经历接近一年的开发、三个候选版本,Redis 7.0 终于正式发布,这是 Redis 历史上改变最多的一个大版本,它不仅包含了 50 多个新命令,还有大量核心新特性与改进,这些不仅能够解决用户使用中的诸多问题,还进一步拓展了 Redis 的使用场景。 虽然 Redis 7.0 做了许多大胆的尝试,但是稳定性依然是最重要的基石。Redis 官方在 7.0 的 GA 博文中也强调这一点:“While user-facing features are easy to boast of, the real “unsung heroes” in this version are efforts to make Redis more performant, stable, and lean.”(虽然面向用户的功能更容...
38 天前 / sjf0115
在《Redis 数据缓存满了怎么办?》我们知道 Redis 缓存满了之后能通过淘汰策略删除数据腾出空间给新数据。 淘汰策略如下所示: redis 内存淘汰设置过期时间的 key volatile-ttl、volatile-random、volatile-lru、volatile-lfu 这四种策略淘汰的数据范围是设置了过期时间的数据。 所有的 key allkeys-lru、allkeys-random、allkeys-lfu 这三种淘汰策略无论这些键值对是否设置了过期时间,当内存不足都会进行淘汰。 这就意味着,即使它的过期时间还没到,也会被删除。当然,如果已经过了过期时间,即使没有被淘汰策略选中,也会被删除。
39 天前 / sjf0115
快点关注我们吧 一、背景 某一天中午,收到反馈,app 卡顿甚至无响应,随即监控中心报出大量慢请求。慢请求来源直指网关和 DP(集中鉴权中心)占慢请求总数的 80% 以上。 二、事故处理 10 分钟,收集事故现场(thread dump,heap dump)重启网关,慢请求暂时恢复 20 分钟,定位为 darkportal 所使用的 redis 集群异常(响应时间 200ms) 30 分钟,分析 redis 和其他业务线共用,会受业务线影响,决定申请新的 redis 实例,将 dp 的 redis 迁移到新集群。 24 小时,redis 迁移完成,慢请求消失。
40 天前 / Dr_Hydra
哈喽大家好啊,我是 Hydra。 在前面的文章中,我们介绍了 Redis6.0 中的新特性客户端缓存 client-side caching,通过 telnet 连接模拟客户端,测试了三种客户端缓存的工作模式,这篇文章我们就来点硬核实战,看看客户端缓存在 java 项目中应该如何落地。 铺垫首先介绍一下今天要使用到的工具 Lettuce,它是一个可伸缩线程安全的 redis 客户端。多个线程可以共享同一个 RedisConnection,利用 nio 框架 Netty 来高效地管理多个连接。
42 天前 / sjf0115
1. Bitmap 是什么 Bitmap( 也称为位数组或者位向量等)是一种实现对位的操作的'数据结构',在数据结构加引号主要因为: Bitmap 本身不是一种数据结构,底层实际上是字符串,可以借助字符串进行位操作。Bitmap 单独提供了一套命令,所以与使用字符串的方法不太相同。可以把 Bitmaps 想象成一个以位为单位的数组,数组的每个单元只能存储 0 和 1,数组的下标在 Bitmap 中叫做偏移量 offset。2. 占用存储空间如上我们知道 Bitmap 本身不是一种数据结构,底层实际上使用字符串来存储。
44 天前 / sjf0115
在上文《面试杀手锏:Redis 源码之 SDS》中我们深入分析了 SDS 的实现,本次介绍的位图(BitMap)就是借助 SDS 实现的。 本文在最后讲解了 BitMap 对腾讯面试题的解决方案,并基于 BitMap 实现了仿 GitHub 提交次数的日历图,希望各位看官看的开心 1.位图简介如果我们需要记录某一用户在一年中每天是否有登录我们的系统这一需求该如何完成呢?如果使用 KV 存储,每个用户需要记录 365 个,当用户量上亿时,这所需要的存储空间是惊人的。
49 天前 / HueiFeng
大家好,我是牛牛,好久不见。 经过一个多月的准备,终于完成了晋升答辩,剩下就是等结果了,还是有些忐忑,希望能跟大家分享好消息! 同时,牛牛也满血复活啦!也就是说,更新速度将恢复如常! 废话不多说,直接上硬核。 今天我们就来聊聊分布式锁。 PART1.分布式锁是什么? 我们的手机有锁、车有锁、家门有锁、贵重物品会锁进保险箱。可以说,锁在我们生活中无处不在,时刻保护着我们的人身财产安全。
50 天前 / HueiFeng
大家好,我是飞哥! 今天开篇先给大家讲个飞哥自己的小故事。我在学校和刚毕业头一年主要从事的客户端开发,那时候对服务器端编程还不擅长。 有一次去面试服务器端岗位,面试官问我有一个连接过来,你该怎么编程处理它。我答道:“主线程收到请求后,创建一个子线程处理。” 面试官接着问,那如果有一千个连接同时来呢?我说“那就多创建一点线程,搞个线程池”。面试官继续追问如果一万个呢?我答道:“......不会。..”。 事实上,服务器端只需要单线程可以达到非常高的处理能力,Redis 就是一个非常好的例子。