gpt4 book ai didi

redis - Redis 会自动 "memoize"或 "recognize duplicates"吗?

转载 作者:可可西里 更新时间:2023-11-01 11:12:52 26 4
gpt4 key购买 nike

如果将两个相同值的k,v pair push到Redis中,即

set(k1, v)
set(k2, v)

Redis smarlty 是否在幕后存储过一次 v 并执行如下操作:

set(somereference, v)
set(k1, #somereference)
set(k2, #somereference)

但还是返回(k1, v), (k2, v)的感知?

我问是因为现在,我正在从 Python 中将值推送到以下形式的 redis 中:

pickle({"some sequence number" : xxx, "image-bytes" : some long bytestring})

我想知道如果这些字典中的两个实际上包含相同的图像字节串并且 redis 只能存储一次基础值,是否值得重构我的做法。

最佳答案

不,redis 不会自行删除重复数据:

redis$ du -h dump.rdb
4.0K dump.rdb
redis$ ipython3

In [1]: %paste
import os
from redis import StrictRedis

data = os.urandom(1024)
redis = StrictRedis()

for i in range(1000000):
redis.set(f'key{i}', data)
## -- End pasted text --

In [2]:
Do you really want to exit ([y]/n)?
redis$ du -h dump.rdb
633M dump.rdb

数据库转储是使用 LZW 压缩的,因此它比预期的大小要小一些。

顺便说一句,我找到了msgpack比 pickle 和几乎所有用于打包和解包文字的东西都快得多。

关于redis - Redis 会自动 "memoize"或 "recognize duplicates"吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48587177/

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