以前只会用redis -cli客户端, 或者在java程序里使用jedis来作为介质与redis服务器通信.这两天正好在实习中接触了一点这方面的内容. 五一放假就稍微翻了翻redis相关资料.
本篇博客一来是给自己整理笔记,二来是给学校的同学们分享: 面向于使用过redis, 但只是停留在基本set get的命令, 不了解其中原理的同学.
介绍redis的ping pong
首先介绍一下ping pong.. (既然有同学不懂..我就再加上ping pong的介绍吧)
登录redis cli客户端后, 输入ping, 服务器会返回pong, 来表示连接状况是完好的, 也表示了服务器大体上是正常运转的.
其中的第一行是我用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));
}
返回的结果如下:
问: 为什么会有一个 '+'符号 呢? redis -cli里是没有这个加号的呀? 答:这个和通信协议有关, 一会儿再介绍具体