Jedis、线程池、mybatis源码分析

Jedis连接实例、源码分析

Jedis是Redis的java版本的客户端实现
即为: 服务端:Redis C语言
客户端:Jedis java 语言
1.搭建maven项目,引入依赖


        redis.clients
        jedis
        3.0.1
        jar
        compile

2.启动redis服务:redis-server.exe redis.windows.conf
Jedis、线程池、mybatis源码分析_第1张图片

3.编写测试类

public static void main(String[] args) {
    Jedis jedis = new Jedis("192.168.204.49", 6379);
    jedis.set("zhaojie", "zhaojieaaaa");
    log.info("输出结果:"+jedis.get("zhaojie"));
    System.out.println("输出结果:"+new Jedis("192.168.204.49",6379).ping());
}

遇到问题:
1.java.net.ConnectException: Connection refused: connect
解决:打开redis.windows.conf文件,将127.0.0.1改为本机的ip
Jedis、线程池、mybatis源码分析_第2张图片
2.Invalid argument during startup: unknown conf file parameter : bind

原因:是去掉#注释的时候没有把空格一并去掉

解决:bind 192.168.204.49之前不能有空格
常见问题:
1.查看防火墙是否关闭
2.redis 服务是否启动

源码分析

构造方法调用过程:(只是赋值)

redis.clients.jedis.Jedis#Jedis(java.lang.String, int)
redis.clients.jedis.BinaryJedis#BinaryJedis(java.lang.String, int)
redis.clients.jedis.Client#Client(java.lang.String, int)
redis.clients.jedis.BinaryClient#BinaryClient(java.lang.String, int)
redis.clients.jedis.Connection#Connection(java.lang.String, int)

set方法调用过程:

redis.clients.jedis.Jedis#set(java.lang.String, java.lang.String)
redis.clients.jedis.BinaryJedis#checkIsInMultiOrPipeline(check检查)
redis.clients.jedis.Client#set(java.lang.String, java.lang.String)
redis.clients.jedis.Connection#sendCommand(redis.clients.jedis.commands.ProtocolCommand, byte[]…)(发送命令,如果有socket就会有io host port服务端 客户端)
redis.clients.jedis.Connection#outputStream
redis.clients.jedis.Connection#inputStream
redis.clients.jedis.Protocol#sendCommand(redis.clients.jedis.util.RedisOutputStream, byte[], byte[]…)

你可能感兴趣的:(springboot,redis)