最近复习了一下redis底层传输协议,然后抽时间写了一个例子,话不多说,上代码
package com.example.demo;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.Socket;
import java.nio.charset.StandardCharsets;
/**
* @author lt
* @date 2019-01-15 10:07:21
*/
public class RedisSocket {
public static void main(String[] args) throws IOException {
String host = "127.0.0.1";
int port = 6379;
Socket socket = new Socket(host, port);
socket.setSoTimeout(3000);
// 建立连接后获得IO出流
OutputStream outputStream = socket.getOutputStream();
InputStream inputStream = socket.getInputStream();
//看过很多是将斜杠转义的写法,是不对的,因为他和r或者n连起来当做命令,而不是单纯的字符串
//redis在处理命令时也做了判断,直接发送redis cli命令也可以解析,但必须以\r\n或者\n结尾
//String message = "*3\\r\\n$3\\r\\nSET\\r\\n$6\\r\\nsocket\\r\\n$10\\r\