복붙노트

[REDIS] 해시 내부 저장 목록 레디 스

REDIS

해시 내부 저장 목록 레디 스

나는 레디 스에서 일부 시스템 정보를 저장해야합니다. 많은 다른 시스템이 있기 때문에 나는 구조 아래를 사용할 계획입니다

server1 => {name => s1, cpu=>80}
server2 => {name => s2, cpu=>40}

나는 키 CPU에 대한 하나 개 이상의 값을 저장해야합니다. 또한 나는 CPU에 대한 값 목록에서 마지막 열 개 값을 유지할 필요

1) 내가 어떻게 해시 내부의 키에 대한 목록을 저장할 수 있습니까?

2) 나는 LTRIM 읽어보십시오. 그러나 키를 받아들입니다. 내가 어떻게 키의 CPU 내부 서버 1에 대한 LTRIM을 할 수 있습니까?

나는 jedis을 사용하고 있습니다.

해결법

  1. ==============================

    1.레디 스의 데이터 구조는 해시 불가능하므로 내부리스트를 저장, 다른 데이터 구조에 중첩 될 수 없다. (: CPU 예를 들어, 서버 1) 대신, 서버의 CPU 값에 대한 서로 다른 키를 사용합니다.

    레디 스의 데이터 구조는 해시 불가능하므로 내부리스트를 저장, 다른 데이터 구조에 중첩 될 수 없다. (: CPU 예를 들어, 서버 1) 대신, 서버의 CPU 값에 대한 서로 다른 키를 사용합니다.

  2. ==============================

    2.그것은 Redisson 프레임 워크와 함께이 작업을 수행 할 수 있습니다. 그것은 Redisson에 의해 처리 특별한 참조 객체하지만 다른 레디 스 오브젝트의 레디 스 개체에 대한 참조를 저장할 수 있습니다.

    그것은 Redisson 프레임 워크와 함께이 작업을 수행 할 수 있습니다. 그것은 Redisson에 의해 처리 특별한 참조 객체하지만 다른 레디 스 오브젝트의 레디 스 개체에 대한 참조를 저장할 수 있습니다.

    그래서 당신의 임무는지도 내에서 목록을 사용하여 해결할 수 :

    RMap<String, RList<Option>> settings = redisson.getMap("settings");
    
    RList<Option> options1 = redisson.getList("settings_server1_option");
    options1.add(new Option("name", "s1"));
    options1.add(new Option("cpu", "80"));
    settings.put("server1", options1);
    
    RList<Option> options2 = redisson.getList("settings_server2_option");
    options2.add(new Option("name", "s2"));
    options2.add(new Option("cpu", "40"));
    settings.put("server2", options2);
    
    // read it
    RList<Option> options2Value = settings.get("server2");
    

    또는지도 내부지도를 사용 :

    RMap<String, RMap<String, String>> settings = redisson.getMap("settings");
    
    RMap<String, String> options1 = redisson.getMap("settings_server1_option");
    options1.put("name", "s1");
    options1.put("cpu", "80");
    settings.put("server1", options1);
    
    RMap<String, String> options2 = redisson.getMap("settings_server2_option");
    options2.put("name", "s2");
    options2.put("cpu", "40");
    settings.put("server2", options1);
    
    // read it
    RMap<String, String> options2Value = settings.get("server2");
    
  3. from https://stackoverflow.com/questions/29203717/redis-storing-list-inside-hash by cc-by-sa and MIT license