经常听开发说redis,自己也只是知道是一个类似数据库形式的存储方式,一直没有去了解redis到底是怎么工作的,今天跟同事聊到了redis相关的工作原理,收益匪浅,先来总结一下。
redis是一个key-value的存储系统,和memcatched类似,它支持存储的value类型较多,如string、List、Set、hash、zset等,这些数据类型都支持,不想传统数据库会有存储类型的限制int类型的只能输入数字。
redis与其它关系型数据库的不同,redis值的类型支持非常多不仅是字符串类型,还包括很多抽象类型,如不同无序或有序的列表、有序或无序集合间的交集或并集等高级服务器原子操作。
与memcached一样redis为了保证效率,数据都是缓存在内存中,区别是redis会周期性的把更新的数据写入磁盘或修改操作写入追加的记录文件,并且在此基础上实现了主从同步。数据可以从主服务器向任意数量的从服务器上同步,从服务器可以是关联了其它从服务器的主服务器,使得redis可以执行单层树复制,存盘可以有意无意的进行写操作,由于实现了发布/订阅机制,使得从数据库在任意地方同步树时,可以订阅一个频道并接收主服务器完整的消息发布记录,同时对读取操作的可扩展性和数据冗余很有帮助。redis适用于定期执行某些任务,或者读取的数据不会经常发生变化的存储,它的速度非常快,很大程度上提高了用户的体验。
网友评论