redis-3-redis客户端
2018-07-31 11:07:15 14 举报
AI智能生成
根据redis开发与运维一书,整理的知识点,分章节总结,有兴趣的可以查看下,这是第三章节
作者其他创作
大纲/内容
redis客户端
jedis
maven获取jedis
jedis使用方法:
1:生成一个jedis对象Jedis jedis = new Jedis(\"127.0.0.1\
2:执行setjedis.set(\"hello\
3:执行getString value = jedis.get(\"hello\");
4:finally中关闭jedisjedis.close
其他命令使用类似
Jedis连接池使用方法
1:无需每次连接都生产jedis对象,降低消耗
2:使用连接池保护和控制资源使用
1:GenericObjectPoolConfig config = new GenericObjectPoolConfig();
3:Jedis jedis = pool.getResouce();
4:直接使用jedis
5:jedis.close();
客户端管理
客户端通信协议
协议
client和server之间的协议是在TCP上构建的
redis制定了RESP协议实现CS之间交互,简单高效,易于机器和人类解析
发送命令
*参数数量 CRLF$参数1的字节数 CRLF参数1 CRLF$参数N的字节数 CRLF参数N CRLF
eg:set hello world$3SET$5hello$5world
返回结果
状态回复:在RESP中的第一个字符为:+
错误回复:
整数回复
字符串回复
多条字符串回复
利用命令查看原始回复
查看方式:nc,telnet,socket原生
nc 127.0.0.1 6379
set hello world+OK
sethx-ERR unknown comman 'sethx'
incr counter:1
get hello$5world
mget java jedis python redis-py+OKmget java python*2$5jedis$8redis-py
包含nil
eg:对不存在的键执行get,返回$-1
eg:mget hello not_exists_key java*3$5world$-1$5jedis
客户端常见异常
1:无法从连接池中获取连接
2:客户端读写超时
3:客户端连接超时
4:客户端缓存区异常
5:lua脚本正在执行
6:redis正在加载持久化文件
7:redis使用的内存超过maxmemory限制
8:客户端连接过大
案例分析
1:redis内存陡增
2:客户端周期性超时
0 条评论
回复 删除
下一页