现在有一个大map,里面的key有2w多个
怎么把里面的key每5000个一组,拆成多个map呢?
有具体的命令吗?还是说之只能写代码,先读出来,再分开保存?
想知道该运维的
现在有一个大map,里面的key有2w多个
怎么把里面的key每5000个一组,拆成多个map呢?
有具体的命令吗?还是说之只能写代码,先读出来,再分开保存?
想知道该运维的
用Python脚本:
import redis
client = redis.Redis(host='localhost', port=6379, db=0)
keys = client.hkeys('your_big_hash')
for i in range(0, len(keys), 5000):
group_keys = keys[i:i+5000]
values = client.hmget('your_big_hash', group_keys)
new_hash_name = f'new_hash_{i//5000}'
key_value_pairs = dict(zip(group_keys, values))
client.hmset(new_hash_name, key_value_pairs)
print(f'Created new hash: {new_hash_name}')
3 回答4.1k 阅读✓ 已解决
4 回答1.8k 阅读
3 回答630 阅读
redis本身不提供这种命令,根据自身需求去拆解,比如要拆成10个hash,就用原本的key % 10来确定放到哪个hash里,后续查询的时候也使用相同的规则来找到对应的hash