学习复杂系统的重要方法是避免不必要的观察和细节,抓住主要内容。
本章主要介绍了redis几种存储数据结构的操作集、内部编码和主要的应用场景。
redis主要有五种数据结构:string、hash、set、zset、list。
redis的数据结构在适合的场景有适合的内部实现,比如:
image.png
内部编码
ziplist(压缩列表):当元素个数小于 xxx-max-ziplist-entries并且每个元素的大小 xxx-max-ziplist-value(字节)时使用。
批处理有什么好处?
从图中我们可以看到,多次执行命令的主要开销是网络通信的开销,批量命令就是将多个命令打包发送到redis服务器上,再由redis逐个执行,只需要一次网络通信。
缓存失效时间
执行set命令时,可以选择 -ex、px选项设置失效时间(秒、毫秒)。在实际应用中,失效时间通常在一个时间范围内进行随机,比如10min浮动3min。避免多个缓存同时失效,导致数据库压力突增。
阻塞命令
在使用redis命令时,要注意命令的时间复杂度。由于redis是单线程操作,数据量大的时候可能会造成阻塞。
网友评论