天道酬勤

天下事有难易乎?为之,则难者亦易矣;不为,则易者亦难矣。

0%

redis高性能实践

在压测的时候看了一下缓存监控,看到监控上的数字震惊了,单分片每秒的出流量172MB。从来没想到过性能可以这么高。(优化前的)
分享一些高性能的知识点吧。

(1) 大多数情况存储的时候推荐使用byte

redis-data-types
redis-value-as-byte-vs-plain-string
jvm-serializers

string类型 redis底层存储的都是二进制,所以redis是二进制安全的(binary safe)
看代码的话你会发现redis存储的时候用的都是 byte[]
Redis Strings are binary safe, this means that a Redis string can contain any kind of data, for instance a JPEG image or a serialized Ruby object.

对于存取对象,大多数情况建议使用 set(final byte[] key, final byte[] value) get(final byte[] key)
对于直接存储字符串的,建议直接使用 set(final String key, final String value) get(final String key)

(2) 使用mset mget

mset
mget

(3) 批量处理时优化成一次请求

批处理时可以使用 Pipeline 一次处理,减少网络开销