Redis键值传入之苦如何突破大限度(redis键值过大)
Redis键值传输是指将数据以键值对的形式存放在Redis服务器中,大多数只考虑应用端传入键值对到Redis服务器中。但是,在传输大量数据时,使用键值传输可能会遇到限制。要传输大量的数据,就需要定义一个大的键值对的数组,这在应用端既耗时又耗力。键值对的大小也是值得考虑的,一个__key__最大只能存2048个字节,___value___最大也只有512M,所以批量传输的键值对的数量受到限制。
那么,Redis如何突破大限度呢?下面介绍几种常见的突破大限度的方法。
第一种方法是采用delimiter分隔传输,一般使用特殊符号,比如“:”等作为分隔符将小量的键值对连接起来,形成一个字符串然后传输。如:
“`
Key1:Value1:Key2:Value2:Key3:Value3
第二种方案是将键值对的内容存储成一个json对象,然后对对象进行序列化、压缩成一个字节数组,转换成String后通过一条指令传输:
``` HSETKey jdata 压缩后的Json字符串
第三种方法是将键值对存储成一个二进制文件,然后将文件分割成一个个小文件,使用多条指令将小文件分别传输到Redis服务器中,如:
“`
HMSET key:part1 binary字节1
HMSET key:part2 binary字节2
Redis键值传输大限度的突破,采用上述三种方法均可解决。当然,应用端在传输键值之前最好先调研市场,找出最优的解决方案,以提升业务的效率。