美文网首页
redis通信协议、简单客户端

redis通信协议、简单客户端

作者: 沐兮_d64c | 来源:发表于2019-01-09 20:27 被阅读0次

1,Redis通信协议

1)基本特征
client与server使用tcp通信
不同数据类型根据请求/响应的第一个字节区分
字符串不能包含\r\n
2)RESP协议的5中数据类型
第一个字节 + 表示简单字符串 simple strings eg:"+OK\r\n"
第一个字节 - 表示信息errors eg: "-Error msg \r\n"
第一个字节:表示整数integers eg: ":100\r\n"
第一个字节$ 表示批量字符串bulk strings
第一个字节* 表示数组arrays

image.png
3)redis发送命令的格式
命令本身也作为参数
每一段数据使用\r\n区分
以 * 数据表示开头
image.png
image.png
4)redisClient例子
set命令
image.png
info命令
image.png

2,简单的redis客户端

image.png
package com.immomo.moaservice.live.roulette.impl.resource.delegate;

import java.io.InputStream;
import java.io.OutputStream;
import java.net.Socket;

/**
 * Created by he.zhanqi on 2019/1/9.
 */
public class RedisCli {

  private static InputStream in;
  private static OutputStream out;

  public RedisCli(String host, int port) throws Exception{
    Socket socket = new Socket(host, port);
    in = socket.getInputStream();
    out = socket.getOutputStream();
  }

  public static String set(String key, String value) throws Exception{
    StringBuffer data = new StringBuffer();
    data.append("*3").append("\r\n");
    data.append("$3").append("\r\n");
    data.append("set").append("\r\n");
    data.append("$").append(key.getBytes().length).append("\r\n");
    data.append(key).append("\r\n");
    data.append("$").append(value.getBytes().length).append("\r\n");
    data.append(value).append("\r\n");
    out.write(data.toString().getBytes());
    byte[] res = new byte[1024];
    in.read(res);
    return new String(res);
  }

  public static void main(String[] args) throws Exception{
    RedisCli redisCli = new RedisCli("127.0.0.1", 6379);
    System.out.println(set("hzqqq", "111"));
  }
}

相关文章

  • 第4章 客户端

    本章了解Redis服务端和客户端的通信协议,以及主流编程语言的Redis客户端使用方法。 1. 客户端通信协议 基...

  • Redis学习--客户端

    客户端通信协议 一,客户端与服务端之间的通信协议是在TCP协议之上构建的。二,Redis制定了RESP(REdis...

  • 第四章:客户端-客户端通信协议

    4.1 客户端通信协议 几乎所有的主流编程语言都有Redis的客户端(http://redis.io/client...

  • redis通信协议、简单客户端

    1,Redis通信协议 1)基本特征client与server使用tcp通信不同数据类型根据请求/响应的第一个字节...

  • Redis 客户端通信协议(RESP)

    Redis 客户端与服务端之间的通信协议是在 TCP 协议上构建的。Redis 定义了 RESP(Redis Se...

  • Redis 5通信协议解析以及手写一个Jedis客户端

    Redis 5通信协议解析以及手写一个Jedis客户端 Redis系统介绍: Redis的基础介绍与安装使用步骤:...

  • jedis原理解析

    1. Redis通信协议 Jedis Client是Redis官网推荐的一个面向java客户端,库文件实现了对re...

  • Jedis原理解析

    1. Redis通信协议 Jedis Client是Redis官网推荐的一个面向java客户端,库文件实现了对re...

  • Redis 协议简单研究

    1.Redis网络通信协议 Redis底层网络通信协议其实是通过TCP来完成的。 2.Redis通信协议 Redi...

  • redis客户端通信协议

    几乎所有的主流编程语言都有Redis的客户端(http://redis.io/clients),不考虑Redis非...

网友评论

      本文标题:redis通信协议、简单客户端

      本文链接:https://www.haomeiwen.com/subject/bgqnrqtx.html