美文网首页
18 redis 总结

18 redis 总结

作者: 滔滔逐浪 | 来源:发表于2020-07-13 15:38 被阅读0次

1,redis 应用场景:

众多语言都支持Redis,因为Redis 交换数据块,在服务器中常用来储备一些需要频繁调用的数据,节省内存开销,也极大的提升了速度。
将一些热点数据存储到Redis中, 要用的时候,直接从内存中存取,极大的提高了速度和节省了服务器的开销。
   1,会话缓存(最常用)
   2,消息队列(支付)
   3,活动排行榜或者计数
    4, 发布,订阅消息(消息通知)
   5,商品列表,评论列表;

2, 选择配置文件执行server

 执行步骤:
   1, 复制配置文件换一份;
   2, 找到port,将port的值修改为6380
使用命令 redis-server conf-path  启动服务;

image.png
image.png

redis 数据类型以及基本操作:
Redis一共支持五种数据类型: String(字符串),hash,list(列表),set .zset

    String(字符串):Redis最基本的数据类型,一个键对应一个值,一个键值最大存储512MB

    Hash(哈希):hash是一个键值对的集合,是一个String类型的field和value的映射表,适合用于存储对象

    List(列表):是redis的简单的字符串列表,按插入顺序排序

    Set(集合):是String字符串类型的无序集合,也不可重复

    ZSet(sorted  set  有序集合)是String类型的有序集合,也不可重复。有序集合中的每个元素都需要指定一个分数,根据分数对元素进行升序排序。
image.png

jedis 连接:

package com.taotao.lizi.service;

import redis.clients.jedis.Jedis;

/**
 * @author aping
 * @time 2020/7/13 11:15
 */
public class Redis {
    public static void main(String[] args) {
        //连接本地的 Redis 服务
        Jedis jedis = new Jedis("localhost");
        System.out.println("连接成功");
        //设置 redis 字符串数据
        jedis.set("runoobkey", "www.runoob.com");
        // 获取存储的数据并输出
        System.out.println("redis 存储的字符串为: "+ jedis.get("runoobkey"));
    }
}




手写redis 客户端:

package com.taotao.lizi.service;

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

/**
 * @author aping
 * @time 2020/7/13 11:52
 */
public class MyClient {
    Socket socket;
    InputStream reader;
    OutputStream writer;
    public  MyClient() throws IOException{
        socket=new Socket("127.0.0.1",6379);
        reader=socket.getInputStream();
        writer=socket.getOutputStream();
    }

    public  String set(String key,String value) throws IOException {
        StringBuffer command = new StringBuffer();
        command.append("*3").append("\r\n");
        command.append("$3").append("\r\n");
        command.append("SET").append("\r\n");
        command.append("$").append(key.getBytes().length).append("\r\n");
        command.append(key).append("\r\n");
        command.append("$").append(value.getBytes().length).append("\r\n");
        command.append(value).append("\r\n");
        writer.write(command.toString().getBytes());
        byte[] response = new byte[1024];
        reader.read(response);
        return new String(response);
    }
    public String get(String key) throws IOException {
        StringBuffer command = new StringBuffer();
        command.append("*2").append("\r\n");
        command.append("$3").append("\r\n");
        command.append("GET").append("\r\n");
        command.append("$").append(key.getBytes().length).append("\r\n");
        command.append(key).append("\r\n");
        writer.write(command.toString().getBytes());
        byte[] response = new byte[1024];
        reader.read(response);
        return new String(response);
    }
}


测试方法

  @Test
    public  void MyClientTest() throws IOException{
        MyClient client=new MyClient();
        client.set("name","java");
        String name=client.get("name");
        System.out.println(name);
    }

测试输出

$4
java

相关文章

网友评论

      本文标题:18 redis 总结

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