VB.NET Unknown reply on integer response VB.NET redis异常及ServiceStack.Redis对多线程的支持

VB.NET Unknown reply on integer response

VB.NET redis异常及ServiceStack.Redis对多线程的支持


最近在项目中加入了redis,不过遇到了很多redis的异常错误,主要原因在vb.net多线程中Redis操作的时候出现的异常,如 最多的就是Unknown reply on integer response: 4211, sPort: 1620, LastCommand:

这个可能是对ServiceStack.Redis对多线程的支持的不理解造成的


不由怀疑

这玩意到底支持多线程不哦...

然后详细看了下ServiceStack.Redis的文档

然后发现一个惊天的秘密:

这坑爹的ServiceStack.Redis不支持我们传统认为的线程安全啊


ServiceStack.Redis对多线程采用的是连接池

也就是说:

每一个线程可以从连接池里获取一个连接供本线程使用

在使用完毕过后还回给连接池

这样来保证每一个线程使用的Redis连接都是独立的而不会互相干扰

这就是ServiceStack.Redis所谓的ThreadSafe Access

ServiceStack.Redis就是这样来保证线程安全的...


坑爹呢这是...

我们传统意义的线程安全可是多个线程并发访问一个对象啊

而不是多个线程访问不同的对象啊...

都怪我学艺不精啊...

竟然不知道还有这种ThreadSafe Access啊...




你可能感兴趣的:(VB.NET Unknown reply on integer response VB.NET redis异常及ServiceStack.Redis对多线程的支持)