首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Redis “瘦身”指南

比这更严重的是,如果使用 List 传递数据,消费进程已被停止,但生产进程未同步停止,还在往 Redis 里写数据。...需要注意的是 SCAN 命令是在版本2.8.0 加入的,如果是之前的版本,可以考虑解析 Redis 的 RDB 文件来获取所有的键。...有坑,参见我之前的文章:扩充你的工具箱 - 大行文件的处理 如何判断键是否垃圾 我们有三种异常键需要处理: 过期键:这些键会在被 SCAN 到时被自动删除,不再考虑。...如果是解析 RDB 文件获取到的键,在查询时也会被自动删除; 长时间未读写的键,很可能是业务不再需要的键; 占用大量内存的键,有可能是在不停地写,但未消费。...此问题很可能是由服务器配置引起的,如果您有知道此问题的原由或有好的解决办法,烦请指点一二。

1.6K100
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    JWT 实现登录认证 + Token 自动续期方案,这才是正确的使用姿势!

    源码精品专栏 原创 | Java 2021 超神之路,很肝~ 中文详细注释的开源项目 RPC 框架 Dubbo 源码解析 网络应用框架 Netty 源码解析 消息中间件 RocketMQ 源码解析...数据库中间件 Sharding-JDBC 和 MyCAT 源码解析 作业调度中间件 Elastic-Job 源码解析 分布式事务中间件 TCC-Transaction 源码解析 Eureka 和 Hystrix...源码解析 Java 并发源码 来源:juejin.cn/post/ 6932702419344162823 技术选型 区别 认证流程 优缺点 安全性 性能 一次性 无法废弃 续签 选择JWT或session...而session的信息是存在服务端的,相对来说更安全 如果在JWT中存储了敏感信息,可以解码出来非常的不安全 性能 经过编码之后JWT将非常长,cookie的限制大小一般是4k,cookie很可能放不下...想修改里面的内容,就必须签发一个新的JWT 无法废弃 一旦签发一个JWT,在到期之前就会始终有效,无法中途废弃。

    3K20

    Android性能优化典范 - 第6季

    程序启动过程中的那些复杂错误的操作很可能导致严重的性能问题。Android系统会根据用户的操作行为调整程序的显示策略,用来提高程序的显示性能。...那么关键的问题是,用户很可能会因为从启动窗口到显示画面的过程耗时过长而感到厌烦,从而导致用户没有来得及等程序启动完毕就切换到其他APP了。更严重的是,如果启动时间过长,可能导致程序出现ANR。...上述流程里面的绝大多数步骤都是由系统控制的,一般来说不会出现什么问题,可是对于启动速度,我们能够控制并且需要特别关注的地方主要有三处: Activity的onCreate流程,特别是UI的布局与渲染操作,如果布局过于复杂很可能导致严重的启动性能问题...首先VD的加载有异于JPEG/PNG文件,图片文件可以依靠硬件进行纹理的渲染,而VD文件需要先进行加载解析,然后才能够进行纹理的渲染。...其次VD文件适用于简单有规则的图片渲染,不适用于那些纹理过于复杂的图片,这样不仅仅会过度增加描述文件的复杂度还可能无法获取到想要的渲染效果。

    71230

    如何用 redis 造一把分布式锁

    >加锁(set),在 A 发起加锁命令但是还没有加锁成功的时候,可能线程 B 已经完成了 set 操作,锁被 B 获得,但是 A 也发起了加锁请求,由于 set 命令并不检查 key 的存在,B 的锁很可能会被...如果加锁的线程出现异常 crash 了而不能及时删除锁,则会导致锁一直无法被正确释放,资源处于一直被占有,别的线程处于一直等待的状态。...需要注意的是,只有在加锁成功之后才可以对 key 设置 TTL,否则很容易导致 key 被多个线程不断设置 TTL 而无法过期。...2.设置 TTL 一定要是加锁成功之后,否则所有获取锁的客户端都会尝试 TTL 导致锁无法过期。...FastDFS分布式文件存储实战 文件存储实战 文件同步实战 文件查询实战 分布式部署实战 1.13.

    71800

    重启大法失效?详述Oracle11g因JDBC bug引发异常Library Cache Lock等待处理事件

    墨墨导读:在Oracle 11g 版本中可能出现由于JDBC bug导致sql绑定变量无法共享,过期游标过多的情况,此时如果发生大量并发业务,很有可能造成异常library cache lock等待事件...在Oracle 11g 版本中可能出现由于JDBC bug导致sql绑定变量无法共享,过期游标过多的情况,此时如果发生大量并发业务,很有可能造成异常library cache lock等待事件,造成数据库突发性能问题...造成library cache lock等一系列严重等待事件的原因是大量的过期游标导致sql解析前花了大量时间去遍历library cache object handle,问题SQL的5415个cursor...综合以上分析,造成大量游标过期的原因有以下两个: 1、绑定变量长度导致游标无法共享 2、JDBC的bug导致日期类型通过TIMESTAMP传值,继而导致绑定变量无法共享 相关bug: Bug 18617175...为什么重启应用无法解决?

    1.3K20

    Redis缓存穿透问题及解决方案

    ,所以需设置较短的过期时间。...storageValue; } return cacheValue; } 缓存空对象会有一个必须考虑的问题: 空值做了缓存,意味着缓存层中存了更多的键,需要更多的内存空间(如果是攻击,问题更严重...检索时,我们只要看看这些点是不是都是1就(大约)知道集合中有没有它了:如果这些点有任何一个0,则被检元素一定不在;如果都是1,则被检元素很可能在。这就是布隆过滤器的基本思想。...,让其自动过期失效,这种在很多时候不是最佳的实践方案。...我们可以提前将真实正确的商品Id,在添加完成之后便加入到过滤器当中,每次再进行查询时,先确认要查询的Id是否在过滤器当中,如果不在,则说明Id为非法Id,则不需要进行后续的查询步骤了。

    34810

    阿里四面:kafka何时、如何删除Topic?

    Kafka还有一些状态机和管理器,具有相对独立的功能框架,不严重依赖使用方,如: TopicDeletionManager(主题删除管理器) 负责对指定Kafka主题执行删除操作,清除待删除主题在集群上的各类...这种不正确的认知会导致经常发现主题没被删干净。于是,网传终极“武林秘籍”:手动删除磁盘上的日志文件,手动删除ZooKeeper下关于主题的各节点。...TopicDeletionManager类:主题删除管理器类 定义方法维护主题删除前后集群状态的正确性。...若一个Controller的Epoch<ZooKeeper中保存的,则该Controller很可能是已过期的Controller。这就是Zombie Controller。...最后调用onPartitionDeletion执行真正的底层物理磁盘文件删除。这是通过副本状态机状态转换操作完成的。

    66950

    Protocol Buffer命名空间冲突

    如果链接到Go二进制文件的两个Protocol Buffer声明具有相同的名称,那么这将导致命名空间冲突,注册表无法通过名称正确解析该声明。...当一个单独的.proto文件被生成为两个或更多的Go包,并且链接到同一个Go二进制文件时,会在生成的Go包中的每个Protocol Buffer声明上发生冲突。...2.如果一个.proto文件由外部组织拥有,并且缺少go_package选项,则应与该.proto文件的所有者协调,以指定一个集中化的Go包,所有用户都可以依赖。...如果一个.proto文件没有指定包名称或使用过于通用的包名称(例如,“my_service”),那么该文件内部的声明很可能与宇宙中的其他声明发生冲突。...从google.golang.org/protobuf模块的v1.26.0版本开始,当启动一个Go程序时,如果链接到其中多个冲突的Protocol Buffer名称,将报告一个严重错误。

    72530

    如何正确发布PHP代码

    一个活跃的项目可能每天都要发布若干次代码,但是现实却是很少有人注意其中的细节,实际上这里面有好多坑,很可能你就在坑中却浑然不知。 一个正确实现的发布系统至少应该支持原子发布。...假设在发布代码期间,opcode cache 或者 realpath cache 里的数据出现过期,那么就会出现一部分缓存是旧文件,一部分缓存是新文件的非原子发布的情况,为了避免出现这种情况,我们应该保证缓存过期时间足够长...,opcode cache 依然无法知道新代码的存在,缺省情况下,realpath_cache_ttl 缓存有效期是两分钟,这意味着发布代码后,可能要两分钟才能生效。...因为在缺省情况下 opcache.revalidate_path 是关闭的,此时会缓存未解析的符号链接的值,这会导致即便软链接指向修改了,也无法生效,所以在使用 zend opcode 的时候,如果使用了软链接...据说一千个人的心中就有一千个哈姆雷特,不过我希望所有的 PHP 程序员在发布 PHP 代码的时候都能采用一种方法,那就是本文介绍的方法,正确的方法。

    4.3K40

    延迟队列MQ

    但对于数据量比较大,并且时效性较强的场景,如:“订单十分钟内未支付则关闭“,短期内未支付的订单数据可能会有很多,活动期间甚至会达到百万甚至千万级别,对这么庞大的数据量仍旧使用轮询的方式显然是不可取的,很可能在一秒内无法完成所有订单的检查...,同时会给数据库带来很大压力,无法满足业务要求而且性能低下。...消息设置TTL 一种方式便是针对每条消息设置TTL 一种是在创建队列的时候设置队列的“x-message-ttl”属性 两者的区别 如果设置了队列的TTL属性,那么一旦消息过期,就会被队列丢弃(如果配置了死信队列被丢到死信队列中...),而第二种方式,消息即使过期,也不一定会被马上丢弃,因为消息是否过期是在即将投递到消费者之前判定的,如果当前队列有严重的消息积压情况,则已过期的消息也许还能存活较长时间;另外,还需要注意的一点是,如果不设置...TTL,表示消息永远不会过期,如果将TTL设置为0,则表示除非此时可以直接投递该消息到消费者,否则该消息将会被丢弃。

    1.1K20

    Redis分布式锁故障,我忍不住想爆粗...

    源码精品专栏 原创 | Java 2021 超神之路,很肝~ 中文详细注释的开源项目 RPC 框架 Dubbo 源码解析 网络应用框架 Netty 源码解析 消息中间件 RocketMQ 源码解析...数据库中间件 Sharding-JDBC 和 MyCAT 源码解析 作业调度中间件 Elastic-Job 源码解析 分布式事务中间件 TCC-Transaction 源码解析 Eureka 和 Hystrix...并且该分布式锁在整个项目中大量使用,可想而知其实问题非常严重,如果只是解决 Long.parseLong("null") 的问题,无疑就是隔靴挠痒,没有任何意义的。...锁过期问题: 为防止锁自动过期,可在锁过期前,定时对锁过期时间进行续期。 可重入问题: 可重入设计粒度需到线程级别,可在锁上加上线程唯一 id。...但其实对于目的来说,都是殊途同归,重点在于,如何安全、正确的使用这些方案,保证业务正常。

    34420

    Github中间人攻击原理分析

    ;网络连接错误发送的响应无效 您的时钟慢了,您的时钟快了 服务器的瞬时 Diffie-Hellman 公共密钥过弱 无法显示此网页 您计算机上的软件导致 Chrome 无法安全地连接到网络 删除过期的...以下几种原因会导致证书没有通过验证: 证书过期或者不符合要求 如果github.com的证书过期或者没有使用合适的加密算法,证书也无法通过浏览器的验证(会根据具体的原因显示上面提到的提示信息)。...DNS 解析出错 当我们访问 github.com 的时候,需要首先将域名转变成 IP 地址,浏览器会优先查找本地的 hosts 文件,如果没有找到对应的记录,就会向 DNS 服务器请求解析(这里省略了一些与本文无关的细节...如果 DNS 服务器解析出错或者受污染,将github.com解析到错误的 IP 地址,就会导致用户访问错误的服务器。而错误的服务器无法提供正确的证书。...万幸的是,由于 AS 6 的服务器无法提供正确的 Github 证书,所以 HTTPS 连接无法正确建立,而这也是整个事件的真正原因。

    1.3K30

    2.X版本又一个极端情况下的偶现严重问题

    进一步查看RM的日志,提示是无法连接到NN。 接着,又看了NN的状态,发现两个NN也都是standby的状态。又跟踪看了下NN的日志信息,发现NN一直无法正确初始化。...这意味着: 1)在KDC无法提供服务 2)JN的票据已经过期 3)票据过期的JN,其editlog事务ID比其他JN的小,需要进行editlog恢复 4)在同时满足以上3个条件的情况下,NN进行了主备切换...此时,就会触发JN的kerberos重新认证,并且认证失败,此后对于任何RPC请求均无法正确完成sasl交互。...删除最新的1个edits_xxx_xxx文件,同时删除edits_inprogress_xxx文件 b....cause: (" + tce.getLocalizedMessage() + ")"); throw tce; } } 【问题解决】 该问题对于线上环境来说,一旦出现还是比较严重的

    61410

    10_单点登录SSO

    由于是无状态使用JWT,所有的数据都被放到JWT里,如果还要进行一些数据交换,那载荷会更大,经过编码之后导致jwt非常长,cookie的限制大小一般是4k,cookie很可能放不下,所以jwt一般放在...无法废弃。通过上面jwt的验证机制可以看出来,一旦签发一个jwt,在到期之前就会始终有效,无法中途废弃。...jwt在线工具对token解析: https://jwt.io/ 将生成的token进行解析: ---- 代码实现: @Test public void parseJwt() {...Created in 2021-01-13 19:25 * @Modified By: */ @ConfigurationProperties(prefix = "jwt.config") //从配置文件读取密钥与过期时间...Created in 2021-01-13 19:25 * @Modified By: */ @ConfigurationProperties(prefix = "jwt.config") //从配置文件读取密钥与过期时间

    97820

    使用python实现后台系统的JWT认证

    这种方式相当于将“用户名:密码”绑定为一个开放式证书,这会有几个问题:①每次请求都需要用户名密码,如果此连接未使用SSL/TLS,或加密被破解,用户名密码基本就暴露了;②无法注销用户的登录状态;③证书不会过期...其中使用的是TimedJSONWebSignatureSerializer进行序列的生成,这里secret_key密 钥、salt盐值从配置文件中读取,当然也可以直接写死在这里。...3.2 如何解析token 解析需要使用到同样的serializer,配置一样的secret key和salt,使用loads方法来解析token。...①能读取到payload:那么这个消息是一个内容被篡改、消息体加密过程正确的消息,secret key和salt很可能泄露了; ②不能读取到payload: 消息体直接被篡改,secret...签发之后的token,是无法收回修改的,因此涉及token的有效期的更改是个难题,它体现在以下两个问题: 问题1.用户登出 问题2.token自动延期 如何解决更改token有效期的问题

    3.2K50

    填一个laravel视图缓存没有及时更新的坑

    google 好多次,得到了以下结论:  1.laravel 的视图缓存是无法设置过期时间的。 2.laravel的视图缓存功能是无法关闭的。 如果是这样,那一定是我的开发环境出了问题。...2.先说结论 我的开发机(用的vmware上的虚拟机)的系统时间和本地时间不一样导致模板文件更新有问题。...解决方法:校准开发机时间~~~~~~~~~~~~~~~~~~~~~~~~~ (我是在windows下写代码 用sftp方式 将文件传到虚拟机上的centos系统  由于最近关闭过虚拟机,莫名其妙的虚拟机上的时间比本地电脑时间快了一天...,且逻辑是 若blade文件的修改时间比缓存文件的时间小时 才会使用缓存。...所以,很可能是我机器的时间问题。 于是查了一下虚拟机的时间。。。。果然不正确。

    1.9K20

    密码学系列之:内容嗅探

    离散类型是代表单一文件或媒介的类型,如单一文本或音乐文件,或单一视频。 多部分类型是指由多个组件组成的文件,每个组件都有自己独立的MIME类型;或者,指封装在一个事务中一起发送的多个文件。...浏览器嗅探 因为浏览器使用MIME类型,而不是文件扩展名来决定如何处理一个URL,所以Web服务器在响应的Content-Type头中发送正确的MIME类型非常重要。...如果没有正确配置,浏览器很可能会误解文件的内容,网站将无法正常运行,下载的文件也可能会被错误处理。...为了解决这个问题,或者说是更好的用户体验,很多浏览器会进行MIME内容嗅探,也就是通过解析文件的内容,来猜测MIME类型的格式。 不同的浏览器处理MIME嗅探的方式是不一样的。...但是他们都可能会产生严重的安全漏洞,因为有些MIME类型是可执行类型的,恶意攻击者可以通过混淆MIME嗅探算法,从而使攻击者可以进行网站运营者或用户都没有预料到的操作,如跨站脚本攻击。

    73330

    Key防盗链排查文档

    案例解析:试看对视频的格式有较严格的要求(仅支持 H.264,视频元信息在视频文件的头部等),不符合格式要求的原始视频使用试看功能将产生异常。...6、Key防盗链设置的过期时间过短 案例:一条过期时间为5分钟的视频,刚开始可以播放,播放几分钟或暂停几分钟再播放就无法播放了。 案例解析:这种是设置的视频过期时间到了,视频失效,无法再播放。...可点击此处查看视频过期时间。 1.png 解决方案:设置视频的过期时长大于视频的播放时长。...7、设置Key的密钥不符合要求 案例:如未按要求设置8 - 20位由字母和数字组成的防盗链Key密钥,其他参数及操作都正确,也会导致视频无法播放。...案例解析:业务预设的逻辑需要转成十六进制的小写形式,如不按规则进行转换,会导致签名计算错误,后台校验不通过,从而不返回视频,无法播放。

    1.4K53

    cookie时效无限延长方案

    02 cookie及机制 理解,首先 MCube 会依据模板缓存状态判断是否需要网络获取最新模板,当获取到模板后进行模板加载,加载阶段会将产物转换为视图树的结构,转换完成后将通过表达式引擎解析表达式并取得正确的值...2.1 什么是cookie cookie称之为会话跟踪技术,是一个很小的文本文件,是浏览器储存在用户的机器上的。Cookie是纯文本,没有可执行代码。...这些字段显示 cookie 的过期时间。...03 cookie时效无限延长方案 理解,首先 MCube 会依据模板缓存状态判断是否需要网络获取最新模板,当获取到模板后进行模板加载,加载阶段会将产物转换为视图树的结构,转换完成后将通过表达式引擎解析表达式并取得正确的值...04 落地案例及实践效果 理解,首先 MCube 会依据模板缓存状态判断是否需要网络获取最新模板,当获取到模板后进行模板加载,加载阶段会将产物转换为视图树的结构,转换完成后将通过表达式引擎解析表达式并取得正确的值

    66220
    领券