【Redis十一】Redis的客户端

一、怎么连接redis的客户端

  1. 首先来看看redis是否已经启动 ps aux | grep redis ,没启动./redis-server ../redis.conf 后端启动.sh脚本nohup ./run.sh &
  2. 进入redis的安装目录下的src目录,找到redis-cli 文件,使用 ./redis-cli -h 指定的IP -p 指定端口号
  3. 如果是设置了密码则 输入auth 密码 密码验证

二、怎么通过跳板机连接redis

#首先要添加Maven依赖
        <dependency>
            <groupId>com.jcraft</groupId>
            <artifactId>jsch</artifactId>
            <version>0.1.53</version>
        </dependency>

三、如何获取连接池

四、Redis的客户端解析

redisServer大致文件

struct redisServer {
    ……
    //一个链表,保存了所有客户端状态
    list *clients;            
    ……
};

redis.h/redisClient结构主要内容有:

typedef struct redisClient {
    #客户端正在使用的套接字描述符
    int fd;

    robj *name; 

    #flags属性的值可以是单个标志:flags = <flag>,
    #也可以是多个标志的二进制:flags = <flags1> | <flags2> | ……
    int flags;

    #客户端状态的输入缓冲区用于保存客户端发送的命令请求
    sds querybuf;

    /*在服务器将客户端发送的命令请求保存到客户端状态的querybuf属性之后,
     服务器将对命令请求的内容进行分析,
     并将得出的命令参数以及命令参数的个数分别保存到客户端状态的argv属性和argc属性*/
    int argc;
    robj **argv;
    
    #当程序在命令表中成功找到argv[0]所对应的redisCommand结构体时,
    #它会将客户端状态的cmd指针指向这个结构体
    struct redisCommand *cmd;
    
    #输出缓冲区
    int bufpos;//buf是一个大小为REDIS_REPLY_CHUNK_BYTES字节的字节数组

    char buf[REDIS_REPLY_CHUNK_BYTES];//bufpos属性则记录了buf数组目前已使用的字节数量

    #固定缓冲区不够用,则启用可变大小缓冲区,其由reply链表和一个或多个字符串对象组成
    list *reply;

     #用于记录客户端是否通过了身份验证
     int authenticated;      /* when requirepass is non-NULL */

    #时间相关
    time_t ctime;         
    time_t lastinteraction;
    time_t obuf_soft_limit_reached_time;


} redisClient;

套接字描述符fd属性:

输出缓冲buf和bufpos属性:

时间属性:

能让客户端关闭的情况:

六、redis的常见命令

1.连接服务端/客户端 ./redis-server /etc/redis.conf(指定配置文件启动服务) ./redis-cli -h 指定的IP -p 指定端口号(客户端) 2.查看Redis状态 info /info memory/ info stats 等 3.查看记录数 dbsize 4.查看所有的键 KEYS * 5.列出所有客户端连接 CLIENT LIST 6.关闭ip:port的客户端 CLIENT KILL 127.0.0.1:11902 7.清空所有数据库的所有key FLUSHALL(需谨慎) 8.清空当前数据库中所有key FLUSHDB(需谨慎) 9.返回最后一次成功保存数据到磁盘的时间,以UNIX时间戳格式表示 LASTSAVE 10.返回当前服务器时间,以UNIX时间戳格式表示 TIME 11.连接到其他数据库(数据库1)(默认数据库是0) SELECT 1 12.将当前数据库(数据库1)的 key 移动到指定的数据库(数据库0) MOVE test1 0
Redis的常用命令
经验分享 程序员 微信小程序 职场和发展