java redis 通信_Redis protocol (redis通信协议)

本文介绍了如何使用Java通过socket实现Redis的ping pong操作,以及如何实现SET和GET命令。通过示例代码详细解析了Redis通信协议中的'+'和'$'符号,并探讨了Redis协议与内联命令的区别,强调了遵循协议对于提高服务器效率的重要性。
摘要由CSDN通过智能技术生成

以前只会用redis -cli客户端, 或者在java程序里使用jedis来作为介质与redis服务器通信.这两天正好在实习中接触了一点这方面的内容. 五一放假就稍微翻了翻redis相关资料.

本篇博客一来是给自己整理笔记,二来是给学校的同学们分享: 面向于使用过redis, 但只是停留在基本set get的命令, 不了解其中原理的同学.

介绍redis的ping pong

首先介绍一下ping pong.. (既然有同学不懂..我就再加上ping pong的介绍吧)

登录redis cli客户端后, 输入ping, 服务器会返回pong, 来表示连接状况是完好的, 也表示了服务器大体上是正常运转的.

b23e15059325d7c08c24a6dc25f8657b.png

其中的第一行是我用docker 启动的客户端, 大家如果不是docker的话, 自己正常启动redis -cli就行..

ping之后就会收到pong

(大家问了docker怎么用...我这里附上一个地址...http://www.runoob.com/docker/docker-install-redis.html )

使用Java socket 来实现 Redis 的ping pong

抄代码的时候大家良心一点...不要去用我的ip去试...(非要拿我的试也没关系...因为我已经偷偷改掉一位数了)

public static void main(String[] args) throws Exception {

// socket

Socket socket = new Socket("140.143.135.210", 6379);

// oi流

OutputStream os = socket.getOutputStream();

InputStream is = socket.getInputStream();

// 向redis服务器写

os.write("PING\r\n".getBytes());

//从redis服务器读,到bytes中

byte[] bytes = new byte[1024];

int len = is.read(bytes);

// to string 输出一下

System.out.println(new String(bytes,0,len));

}

返回的结果如下:

9edb41d3cdc4dfac9bb56255b8492008.png

问: 为什么会有一个 '+'符号 呢?  redis -cli里是没有这个加号的呀?  答:这个和通信协议有关, 一会儿再介绍具体

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值