[REDIS] UUID 단축
REDISUUID 단축
나는 응용 프로그램의 고유 한 사용자의 일상 수를 계산해야합니다.
나는 사용자를 고유하게 식별 할 수있는 유일한 방법은 (내가 그것을 사용하도록 강요하고 있으므로이 외부에서 공급) 자신의 UUID를 통해입니다.
나는 매일 사용자 수가 백만 사용자의 부부 것을 알고있다.
나는 인구 수를 할 레디 스의 비트 세트를 사용하고 싶습니다하지만 편안하게 긴에 맞게 수 있도록 작업이 위해서는, 내 UUID를 축소하는 방법을 필요 했어. 나는 충돌의 가능성을 알고 있지만 정확한 숫자에 대해 우려하고 있지 않다.
사람이 전에 자바에서 이런 짓을 했습니까? 내가 후 나는 것은 내가 오래에 맞게 수있는 무언가로 내 UUID를 변환 할 수있는 방법이다.
해결법
-
==============================
1.당신이 혜택을 수있는 UUID 개체에 대한 두 가지 방법이 있습니다.
당신이 혜택을 수있는 UUID 개체에 대한 두 가지 방법이 있습니다.
getLeastSignificantBits ()와 getMostSignificateBits (). 둘 다 오래를 반환합니다. 당신의 대답 이러한 갈망 하나 가지고 (또는 조합의 어떤 종류의 당신이 걱정하는 경우입니다.)
-
==============================
2.당신의 int 또는 정수 (Long)를 생성하여 UUID를의 해시를 생성하고 인구 수에 대한 그들을 사용할 수 있습니다.
당신의 int 또는 정수 (Long)를 생성하여 UUID를의 해시를 생성하고 인구 수에 대한 그들을 사용할 수 있습니다.
보고 jedis 레디 스 라이브러리의`redis.clients.util.MurmurHash '를 가지고있다. 당신은 https://github.com/xetorthio/jedis에서 찾을 수 있습니다
* 편집 : 샘플
UUID uuid = UUID.randomUUID(); ByteBuffer buf = ByteBuffer.allocate(16).putLong(uuid.getMostSignificantBits()).putLong(uuid.getLeastSignificantBits()); buf.flip(); int useMe= MurmurHash.hash(buf, 123);
-
==============================
3.이것은 아마도 해시 키로서 전체 UUID를 사용하여 직접 맞는 작은 충분하다. 근사는 또한 사용자의 요구 제품군 경우 적은 메모리를 사용하여 만들 수 있습니다.
이것은 아마도 해시 키로서 전체 UUID를 사용하여 직접 맞는 작은 충분하다. 근사는 또한 사용자의 요구 제품군 경우 적은 메모리를 사용하여 만들 수 있습니다.
from https://stackoverflow.com/questions/11496277/uuid-shortening by cc-by-sa and MIT license
'REDIS' 카테고리의 다른 글
[REDIS] 여러 데이터베이스가있는 인스턴스에서 하나의 레디 스 데이터베이스를 복제 (0) | 2020.01.23 |
---|---|
[REDIS] socket.io는 메모리 누수 레디 스 (0) | 2020.01.23 |
[REDIS] 로컬 호스트에 연결 오류 99 : 6379. 수 할당 요청한 주소 (0) | 2020.01.23 |
[REDIS] 레디 스 지원 마스터 마스터 복제합니까? (0) | 2020.01.23 |
[REDIS] 레디 스 약간의 OS에 버퍼가 아닌 다른 사람과 같은 문자열을 저장? (0) | 2020.01.23 |