启动你的本地Redis 然后我门 把代码放进去直接运行就可以,其实很简单 ,redis只要满足RESP协议就可以 ,我们看一下RESP协议 比如我们需要像 redis存一个key 为redis value为 helloworld 的数据那么你需要拼成字符串 *3 $3 set $5 redis $10 helloworld 这种格式 *3 表示有三组数据 set redis helloworld $3表示长度 set $5表示redis长度 $10表示helloworld 长度 只要按要求拼好redis就识别就这么简单同样 例如 get redis 那么格式就是 *2 $3 get $5 reids 自己分析下就可以 package com.wt.wtphoto.util; import java.io.IOException; import java.net.Socket; public class JxdJedis { // public static void dels(String... keys) { // System.out.println(keys[2]); // } public static String set(Socket socket, String key, String value) throws IOException { StringBuffer str = new StringBuffer(); str.append("*3").append("\r\n"); str.append("$3").append("\r\n"); str.append("set").append("\r\n"); //key str.append("$").append(key.getBytes().length).append("\r\n"); str.append(key).append("\r\n"); //value str.append("$").append(value.getBytes().length).append("\r\n"); str.append(value).append("\r\n"); System.out.println(str.toString()); socket.getOutputStream().write(str.toString().getBytes()); //Redis返回的响应结果 byte[] response = new byte[2048]; socket.getInputStream().read(response); return new String(response); } public static String get(Socket socket, String key) throws IOException { StringBuffer str = new StringBuffer(); str.append("*2").append("\r\n"); str.append("$3").append("\r\n"); str.append("get").append("\r\n"); //key str.append("$").append(key.getBytes().length).append("\r\n"); str.append(key).append("\r\n"); System.out.println(str.toString()); socket.getOutputStream().write(str.toString().getBytes()); //Redis返回的响应结果 byte[] response = new byte[2048]; socket.getInputStream().read(response); return new String(response); } public static void main(String[] args) throws IOException { Socket socket = new Socket("127.0.0.1", 6379); System.out.println(set(socket, "redis", "helloworld")); System.out.println(get(socket, "reids")); } }
手写一个Jedis类实现向Redis存取数据
最新推荐文章于 2022-10-19 09:26:40 发布