破解ServiceStack.Redis每小时6000次限制

本文介绍了解决ServiceStack.Redis在.net环境下每小时6000次访问限制的方法,通过修改ServiceStack.Text.dll文件的特定字节,将限制提升至int最大值,适用于需要高并发Redis操作的项目。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在.net里我们操作Redis常用的组件就是ServiceStack.Redis了,但是这个从4.0版本后开始商业化了,我们在使用的时候, 会有很多限制:

1.类型限制,

类型限制是20,这个组件自带序列化功能, 使得我们可以直接把对象保存到Redis库里, 但是我们保存类型复杂的时候, 就会有这个限制来报错.

这个在使用中问题不大,不会影响大的使用.我们可以在操作前,先把对象用其他工具比如Newtonsoft序列化成string字符串, 这个问题就解决了.

下面讲讲另一个非常影响使用的限制.

2.每小时访问次数限制

这个组件每小时默认访问次数是6000次的限制,这个在一个稍微大一点的项目里, 没几分钟就够了, 除非购买license或者降低版本使用,降低版本不考虑了,

现在说说怎么解决6000次限制的问题

通过上图知道, 这个变量是用来保存访问次数限制的

下面我们要做的就是把这个值改大一些, 直接改成int 的最大值

首先我们以16进制来打开该文件, 然后查找6000对应的值,从上图我们知道 这个是int类型存储的, int 是实用的4个字节来存储的 ,

我们把6000转换成字节形式是 70 17 00 00,

如下图

我们直接修改该位置就行了,把 70 17 00 00 替换成 FF FF FF 7F,也就是int的最大值2147483647

然后把这个文件另存一下, 就可以直接使用了,

从ILSPY里我们可以看到,这个最大限制值已经变了.

接下来我们在看看实际实用的情况:

如图所示 从0到10000循环, 没有抛异常提示.

 

目标文件:ServiceStack.Text.dll

16进制编辑器   https://www.fixdown.com/soft/542.html

搜索文件:70 17 00 00

替换成 FF FF FF 7F

注意:我使用的是5.9.0版本的 里面有2个70 17 00 00的地方 替换第二个

netcore3.1修改C:\Users\用户名\.nuget\packages\servicestack.text\5.9.0\lib\netcoreapp2.1目录下的ServiceStack.Text.dll,编译项目会使用最新的修改

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值