天天看点

Redis开发与运维. 1.4 用好Redis的建议

<b>1.4 用好redis的建议</b>

1.?切勿当作黑盒使用,开发与运维同样重要

很多使用redis的开发者认为只要会用api开发相应的功能就可以,更有甚者认为redis就是get、set、del,不需要知道redis的原理。但是在我们实际运维和使用redis的过程中发现,很多线上的故障和问题都是由于完全把redis当做黑盒造成的,如果不了解redis的单线程模型,有些开发者会在有上千万个键的redis上执行keys *操作,如果不了解持久化的相关原理,会在一个写操作量很大的redis上配置自动保存rdb。而且在很多公司内只有专职的关系型数据库dba,并没有nosql的相关运维人员,也就是说开发者很有可能会自己运维redis,对于redis的开发者来说既是好事又是坏事。站在好的方面看,开发人员可以通过运维redis真正了解redis的一些原理,不单纯停留在开发上。站在坏的方面看,redis的开发人员不仅要支持开发,还要承担运维的责任,而且由于运维经验不足可能会造成线上故障。但是从实际经验来看,运维足够规模的redis会对用好redis更加有帮助。

2.?阅读源码

我们在前面提到过,redis是开源项目,由于作者对redis代码的极致追求,redis的代码量相对于许多nosql数据库来说是非常小的,也就意味着作为普通的开发和运维人员也是可以“吃透”redis的。通过阅读优秀的源码,不仅能够加深我们对于redis的理解,而且还能提高自身的编码水平,甚至可以对redis做定制化,也就是说可以修改redis的源码来满足自身的需求,例如新浪微博在redis的早期版本上做了很多的定制化来满足自身的需求,豌豆荚也开源基于proxy的redis分布式实现codis。