关于Jedis是否线程安全的测试

本文探讨了在Java中使用Redis的Jedis库时,为何需要使用连接池,而不是直接复用Jedis实例。作者通过测试程序证明Jedis不是线程安全的,详细解释了出现非线程安全现象的原因,并分享了测试过程中的观察结果。
摘要由CSDN通过智能技术生成

由于最近项目需要引入Redis用作缓存管理,所以开始了对Redis的学习。自学还算顺利,但到了java接入的时候,看到jedis的链接池,就产生了疑问:明明server端对数据的读写时单线程,为什么还要用链接池呢?

经过一轮的百度,得知这里面有两个原因:

①主要原因:redis的性能瓶颈主要时网络通讯——网络通讯速度比redis处理速度要慢许多。单客户端会导致,网络通讯的时间里,redis处于闲暇,无法发挥其处理能力;

②不那么主要(个人认为也很主要)原因:jedis非线程安全。但是百度到的帖子和博客,均没有给出靠谱的测试程序去证明这个说法。

于是乎就自己试着写一个简单的测试程序去求证,结果感人~下面上测试代码和运行结果:

先说结论吧:jedis确实是非线程安全的。

代码:

/**
 * Created by cwz
 * on 2018-09-20
 */
public class Test {

    public static void main(String[] args) {
        //连接本地的 Redis 服务
        Jedis jedis = new Jedis("localhost");
        //查看服务是否运行
        Syste
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值