一:管道技术
- 由于 redis 和 客户端是使用 TCP 连接的,那么在使用中就会产生往返耗时。
- 虽然可能单条影响并不大,但是如果执行较多的命令会对性能产生影响。
- 使用管道原理和 keep-alive 类似(简单与原理如下图)
- 通俗的来说就是减少网络请求,减少网络IO造成的性能损耗
-
二:使用批量操作
- 原生命令:例如mget、mset。
- 非原生命令:可以使用pipeline提高效率。
- 两者不同:
- 原生是原子操作,pipeline是非原子操作。
- pipeline可以打包不同的命令,原生做不到
- pipeline需要客户端和服务端同时支持。
二:节省空间
- 在目前的互联网发展中,内存仍旧远远大于硬盘的价值,所以如何尽可能的优化我们的内存,也是非常值得学习的地方。
- 精简键名 【在尽可能表达清楚意思时精简键名的长度】
- 内部编码优化
- 在 Redis 内部,每一个键值都是一个 RedisObject 结构体保存,每个结构体保存了键值具体的数据类型
- 使用 OBJECT ENCODING 键 来查看当前键的类型
- 这里只说明一下大致思路,具体的优化方向及其策略在之后会系统学习。