gpt4 book ai didi

java - Redis 键用户定义对象与字符串

转载 作者:IT王子 更新时间:2023-10-29 06:08:20 28 4
gpt4 key购买 nike

我想把 , 以UUID为前缀作为key存储在redis中,但应该占用较少的内存。哪种方法更好。以下是不同的方式:

1) 新对象(前缀,uuid)

2) 连接(前缀+uuid)。

3) 将object转换为protobuff并存储为keyr

最佳答案

Redis keys是二进制安全的。因此,最好存储 UUID 的直接字节而不是 UUID 的字符串表示字节。 UUID 是 16 个字节,假设您的前缀是 4 个字节。这就是您的方法脱颖而出的原因:

1) new object(prefix,uuid) : 这样会创建一个java对象,但是在存储的时候,会存储对象的序列化形式,比UUID+prefix bytes多很多

2) concat(prefix+uuid) :这是理想的方法,但您不必以字符串形式附加 prefix 和 uuid。 取而代之的是一个字节数组,其中前 N 个字节用于您的前缀,接下来的 128 位(16 个字节)用于 UUID。Redis 键是二进制安全的,因此您的字节数组成为键。这是内存效率最高的方法

3) 将对象转换为 protobuff 并将其存储为键:这还将存储序列化格式,并添加 protobuf 中提供的数据类型信息,因此内存效率不如 2。

最好的方法是(2),字节连接并存储为字节数组键。

关于java - Redis 键用户定义对象与字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45369998/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com